Mercurial > pidgin.yaz
comparison src/protocols/msn/servconn.h @ 8808:bbd8cdaf0ad5
[gaim-migrate @ 9570]
A massive patch by shx to reorganize MSN some more and add command
processor support. This allows us to do cool things like produce more
detailed error messages. For example, the Invalid Username dialog now
shows the username of the invalid user.
I modified the aforementioned dialog so it'll look a little nicer looking,
and also mention the account this happened on. It also removes the user
from your blist, as there's no point to keeping the user on there.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Sun, 25 Apr 2004 22:02:06 +0000 |
parents | 1e211dde3cae |
children | c30d81b4dd22 |
comparison
equal
deleted
inserted
replaced
8807:482fc53c969d | 8808:bbd8cdaf0ad5 |
---|---|
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
21 */ | 21 */ |
22 #ifndef _MSN_SERVCONN_H_ | 22 #ifndef _MSN_SERVCONN_H_ |
23 #define _MSN_SERVCONN_H_ | 23 #define _MSN_SERVCONN_H_ |
24 | 24 |
25 typedef struct _MsnServConn MsnServConn; | |
26 | |
27 #include "cmdproc.h" | |
25 #include "proxy.h" | 28 #include "proxy.h" |
26 | |
27 typedef struct _MsnServConn MsnServConn; | |
28 | 29 |
29 #include "msg.h" | 30 #include "msg.h" |
30 #include "httpmethod.h" | 31 #include "httpmethod.h" |
31 | 32 |
32 typedef gboolean (*MsnServConnCommandCb)(MsnServConn *servconn, | 33 #include "session.h" |
33 const char *cmd, const char **params, | |
34 size_t param_count); | |
35 | 34 |
36 typedef gboolean (*MsnServConnMsgCb)(MsnServConn *servconn, MsnMessage *msg); | 35 typedef enum |
36 { | |
37 MSN_SERVER_NS, | |
38 MSN_SERVER_SB, | |
39 MSN_SERVER_NX, | |
40 MSN_SERVER_DC, | |
41 MSN_SERVER_HT | |
37 | 42 |
38 typedef void (*MsnPayloadCb)(MsnServConn *servconn, char *payload, | 43 } MsnServerType; |
39 size_t len); | |
40 | |
41 #include "session.h" | |
42 | 44 |
43 struct _MsnServConn | 45 struct _MsnServConn |
44 { | 46 { |
47 MsnServerType type; | |
45 MsnSession *session; | 48 MsnSession *session; |
49 MsnCmdProc *cmdproc; | |
46 | 50 |
47 gboolean connected; | 51 gboolean connected; |
52 gboolean processing; | |
48 gboolean wasted; | 53 gboolean wasted; |
49 | 54 |
55 int num; | |
56 | |
50 MsnHttpMethodData *http_data; | 57 MsnHttpMethodData *http_data; |
51 | |
52 #if 0 | |
53 /* shx: not used */ | |
54 char *host; | |
55 int port; | |
56 #endif | |
57 | 58 |
58 int fd; | 59 int fd; |
59 int inpa; | 60 int inpa; |
60 | 61 |
61 char *rx_buf; | 62 char *rx_buf; |
62 int rx_len; | 63 int rx_len; |
63 | 64 |
64 MsnPayloadCb payload_cb; | |
65 int payload_len; | 65 int payload_len; |
66 | |
67 GSList *msg_queue; | |
68 | |
69 GSList *txqueue; | |
70 | |
71 char *msg_passport; | |
72 | |
73 GHashTable *commands; | |
74 GHashTable *msg_types; | |
75 | 66 |
76 gboolean (*connect_cb)(MsnServConn *servconn); | 67 gboolean (*connect_cb)(MsnServConn *servconn); |
77 void (*disconnect_cb)(MsnServConn *servconn); | 68 void (*disconnect_cb)(MsnServConn *servconn); |
78 | 69 |
79 void *data; | 70 void *data; |
80 }; | 71 }; |
81 | 72 |
82 MsnServConn *msn_servconn_new(MsnSession *session); | 73 MsnServConn *msn_servconn_new(MsnSession *session, MsnServerType type); |
83 | 74 |
84 void msn_servconn_destroy(MsnServConn *servconn); | 75 void msn_servconn_destroy(MsnServConn *servconn); |
85 | 76 |
86 gboolean msn_servconn_connect(MsnServConn *servconn, const char *host, | 77 gboolean msn_servconn_connect(MsnServConn *servconn, const char *host, |
87 int port); | 78 int port); |
88 void msn_servconn_disconnect(MsnServConn *servconn); | 79 void msn_servconn_disconnect(MsnServConn *servconn); |
89 | |
90 #if 0 | |
91 /* shx: not used */ | |
92 void msn_servconn_set_server(MsnServConn *servconn, const char *server, | |
93 int port); | |
94 | |
95 const char *msn_servconn_get_server(const MsnServConn *servconn); | |
96 int msn_servconn_get_port(const MsnServConn *servconn); | |
97 #endif | |
98 | 80 |
99 void msn_servconn_set_connect_cb(MsnServConn *servconn, | 81 void msn_servconn_set_connect_cb(MsnServConn *servconn, |
100 gboolean (*connect_cb)(MsnServConn *servconn)); | 82 gboolean (*connect_cb)(MsnServConn *servconn)); |
101 | 83 |
102 void msn_servconn_set_disconnect_cb(MsnServConn *servconn, | 84 void msn_servconn_set_disconnect_cb(MsnServConn *servconn, |
103 void (*disconnect_cb)(MsnServConn *servconn)); | 85 void (*disconnect_cb)(MsnServConn *servconn)); |
104 | 86 |
105 size_t msn_servconn_write(MsnServConn *servconn, const char *buf, | 87 size_t msn_servconn_write(MsnServConn *servconn, const char *buf, |
106 size_t size); | 88 size_t size); |
107 | 89 |
108 gboolean msn_servconn_send_command(MsnServConn *servconn, const char *command, | |
109 const char *params); | |
110 | |
111 void msn_servconn_queue_message(MsnServConn *servconn, const char *command, | |
112 MsnMessage *msg); | |
113 | |
114 void msn_servconn_unqueue_message(MsnServConn *servconn, MsnMessage *msg); | |
115 | |
116 void msn_servconn_register_command(MsnServConn *servconn, | |
117 const char *command, | |
118 MsnServConnCommandCb cb); | |
119 | |
120 void msn_servconn_register_msg_type(MsnServConn *servconn, | |
121 const char *content_type, | |
122 MsnServConnMsgCb cb); | |
123 | |
124 gboolean msn_servconn_process_message(MsnServConn *servconn, | |
125 MsnMessage *msg); | |
126 | |
127 #endif /* _MSN_SERVCONN_H_ */ | 90 #endif /* _MSN_SERVCONN_H_ */ |