comparison src/protocols/msn/session.h @ 10481:bcfea6c3d5c9

[gaim-migrate @ 11769] Patch 1093958 from Felipe Contreras. It fixes stuff. I also made some tweaks to make valgrind a bit happier. committer: Tailor Script <tailor@pidgin.im>
author Stu Tomlinson <stu@nosnilmot.com>
date Fri, 07 Jan 2005 02:48:33 +0000
parents 9bed28273ec7
children 8f1316d77315
comparison
equal deleted inserted replaced
10480:8e0a91d11362 10481:bcfea6c3d5c9
38 #include "httpconn.h" 38 #include "httpconn.h"
39 39
40 #include "userlist.h" 40 #include "userlist.h"
41 #include "sync.h" 41 #include "sync.h"
42 42
43 /**
44 * Types of errors.
45 */
46 typedef enum
47 {
48 MSN_ERROR_SERVCONN,
49 MSN_ERROR_UNSUPORTED_PROTOCOL,
50 MSN_ERROR_HTTP_MALFORMED,
51 MSN_ERROR_AUTH,
52 MSN_ERROR_BAD_BLIST,
53 MSN_ERROR_SIGN_OTHER,
54 MSN_ERROR_SERV_DOWN
55
56 } MsnErrorType;
57
58 /**
59 * Login steps.
60 */
61 typedef enum
62 {
63 MSN_LOGIN_STEP_START,
64 MSN_LOGIN_STEP_HANDSHAKE,
65 MSN_LOGIN_STEP_TRANSFER,
66 MSN_LOGIN_STEP_AUTH_START,
67 MSN_LOGIN_STEP_AUTH,
68 MSN_LOGIN_STEP_GET_COOKIE,
69 MSN_LOGIN_STEP_AUTH_END,
70 MSN_LOGIN_STEP_SYN,
71 MSN_LOGIN_STEP_END
72
73 } MsnLoginStep;
74
75 #define MSN_LOGIN_STEPS MSN_LOGIN_STEP_END
76
43 struct _MsnSession 77 struct _MsnSession
44 { 78 {
45 GaimAccount *account; 79 GaimAccount *account;
46 MsnUser *user; 80 MsnUser *user;
47 int state; 81 int state;
48 82
49 guint protocol_ver; 83 guint protocol_ver;
50 84
51 char *dispatch_host; 85 MsnLoginStep login_step; /**< The current step in the login process. */
52 int dispatch_port;
53 86
54 gboolean connected; 87 gboolean connected;
55 gboolean logged_in; /**< A temporal flag to ignore local buddy list adds. */ 88 gboolean logged_in; /**< A temporal flag to ignore local buddy list adds. */
56 gboolean destroying; /**< A flag that states if the session is being destroyed. */ 89 gboolean destroying; /**< A flag that states if the session is being destroyed. */
90 gboolean http_method;
57 91
58 MsnNotification *notification; 92 MsnNotification *notification;
59 MsnNexus *nexus; 93 MsnNexus *nexus;
60 94 MsnSync *sync;
61 gboolean http_method;
62 gint http_poll_timer;
63 95
64 MsnUserList *userlist; 96 MsnUserList *userlist;
65 MsnUserList *sync_userlist; 97 MsnUserList *sync_userlist;
66 98
67 int servconns_count; /**< The count of server connections. */ 99 int servconns_count; /**< The count of server connections. */
68 GList *switches; /**< The list of all the switchboards. */ 100 GList *switches; /**< The list of all the switchboards. */
69 GList *directconns; /**< The list of all the directconnections. */ 101 GList *directconns; /**< The list of all the directconnections. */
102 GList *slplinks; /**< The list of all the slplinks. */
70 103
71 int conv_seq; 104 int conv_seq; /**< The current conversation sequence number. */
72 105
73 struct 106 struct
74 { 107 {
75 char *kv; 108 char *kv;
76 char *sid; 109 char *sid;
79 char *file; 112 char *file;
80 char *client_ip; 113 char *client_ip;
81 int client_port; 114 int client_port;
82 115
83 } passport_info; 116 } passport_info;
84
85 /* You have no idea how much I hate all that is below. */
86 /* shx: What? ;) */
87
88 MsnSync *sync;
89
90 GList *slplinks;
91 }; 117 };
92 118
93 /** 119 /**
94 * Creates an MSN session. 120 * Creates an MSN session.
95 * 121 *
96 * @param account The account. 122 * @param account The account.
97 * @param host The dispatch server host.
98 * @param port The dispatch server port.
99 * 123 *
100 * @return The new MSN session. 124 * @return The new MSN session.
101 */ 125 */
102 MsnSession *msn_session_new(GaimAccount *account, 126 MsnSession *msn_session_new(GaimAccount *account);
103 const char *host, int port,
104 gboolean http_method);
105 127
106 /** 128 /**
107 * Destroys an MSN session. 129 * Destroys an MSN session.
108 * 130 *
109 * @param session The MSN session to destroy. 131 * @param session The MSN session to destroy.
111 void msn_session_destroy(MsnSession *session); 133 void msn_session_destroy(MsnSession *session);
112 134
113 /** 135 /**
114 * Connects to and initiates an MSN session. 136 * Connects to and initiates an MSN session.
115 * 137 *
116 * @param session The MSN session. 138 * @param session The MSN session.
139 * @param host The dispatch server host.
140 * @param port The dispatch server port.
141 * @param http_method Whether to use or not http_method.
117 * 142 *
118 * @return @c TRUE on success, @c FALSE on failure. 143 * @return @c TRUE on success, @c FALSE on failure.
119 */ 144 */
120 gboolean msn_session_connect(MsnSession *session); 145 gboolean msn_session_connect(MsnSession *session,
146 const char *host, int port,
147 gboolean http_method);
121 148
122 /** 149 /**
123 * Disconnects from an MSN session. 150 * Disconnects from an MSN session.
124 * 151 *
125 * @param session The MSN session. 152 * @param session The MSN session.
140 MsnSwitchBoard *msn_session_find_swboard(MsnSession *session, 167 MsnSwitchBoard *msn_session_find_swboard(MsnSession *session,
141 const char *username); 168 const char *username);
142 MsnSwitchBoard *msn_session_get_swboard(MsnSession *session, 169 MsnSwitchBoard *msn_session_get_swboard(MsnSession *session,
143 const char *username); 170 const char *username);
144 171
172 /**
173 * Sets an error for the MSN session.
174 *
175 * @param session The MSN session.
176 * @param error The error.
177 * @param info Extra information.
178 */
179 void msn_session_set_error(MsnSession *session, MsnErrorType error,
180 const char *info);
181
182 /**
183 * Sets the current step in the login proccess.
184 *
185 * @param session The MSN session.
186 * @param step The current step.
187 */
188 void msn_session_set_login_step(MsnSession *session, MsnLoginStep step);
189
190 /**
191 * Finish the login proccess.
192 *
193 * @param session The MSN session.
194 */
145 void msn_session_finish_login(MsnSession *session); 195 void msn_session_finish_login(MsnSession *session);
146 196
147 #endif /* _MSN_SESSION_H_ */ 197 #endif /* _MSN_SESSION_H_ */