| 63 |
63 |
| 64 /* Define to cause init_plugin() to run some tests and print |
64 /* Define to cause init_plugin() to run some tests and print |
| 65 * the results to the Purple debug log, then exit. Useful to |
65 * the results to the Purple debug log, then exit. Useful to |
| 66 * run with 'pidgin -d' to see the output. Don't define if |
66 * run with 'pidgin -d' to see the output. Don't define if |
| 67 * you want to actually use the plugin! */ |
67 * you want to actually use the plugin! */ |
| 68 /*#define MSIM_SELF_TEST */ |
68 #define MSIM_SELF_TEST |
| 69 |
69 |
| 70 /* Constants */ |
70 /* Constants */ |
| 71 |
71 |
| 72 /* Maximum length of a password that is acceptable. This is the limit |
72 /* Maximum length of a password that is acceptable. This is the limit |
| 73 * on the official client (build 679) and on the 'new password' field at |
73 * on the official client (build 679) and on the 'new password' field at |
| 173 #define MSIM_INBOX_BLOG_COMMENT (1 << 1) |
173 #define MSIM_INBOX_BLOG_COMMENT (1 << 1) |
| 174 #define MSIM_INBOX_PROFILE_COMMENT (1 << 2) |
174 #define MSIM_INBOX_PROFILE_COMMENT (1 << 2) |
| 175 #define MSIM_INBOX_FRIEND_REQUEST (1 << 3) |
175 #define MSIM_INBOX_FRIEND_REQUEST (1 << 3) |
| 176 #define MSIM_INBOX_PICTURE_COMMENT (1 << 4) |
176 #define MSIM_INBOX_PICTURE_COMMENT (1 << 4) |
| 177 |
177 |
| 178 /* Everything needed to keep track of a session. */ |
178 /* Everything needed to keep track of a session (proto_data field in PurpleConnection) */ |
| 179 typedef struct _MsimSession |
179 typedef struct _MsimSession |
| 180 { |
180 { |
| 181 guint magic; /**< MSIM_SESSION_STRUCT_MAGIC */ |
181 guint magic; /**< MSIM_SESSION_STRUCT_MAGIC */ |
| 182 PurpleAccount *account; |
182 PurpleAccount *account; |
| 183 PurpleConnection *gc; |
183 PurpleConnection *gc; |
| 197 guint next_rid; /**< Next request/response ID */ |
197 guint next_rid; /**< Next request/response ID */ |
| 198 time_t last_comm; /**< Time received last communication */ |
198 time_t last_comm; /**< Time received last communication */ |
| 199 guint inbox_status; /**< Bit field of inbox notifications */ |
199 guint inbox_status; /**< Bit field of inbox notifications */ |
| 200 } MsimSession; |
200 } MsimSession; |
| 201 |
201 |
| |
202 #if 0 |
| |
203 /* Hold ephemeral information about buddies, for proto_data of PurpleBuddy. */ |
| |
204 /* GHashTable? */ |
| |
205 typedef struct _MsimBuddy |
| |
206 { |
| |
207 guint client_cv; |
| |
208 gchar *client_info; |
| |
209 guint age; |
| |
210 guint total_friends; |
| |
211 gchar *headline; |
| |
212 gchar *display_name; |
| |
213 gchar *username; |
| |
214 } MsimBuddy; |
| |
215 #endif |
| |
216 |
| 202 /* Check if an MsimSession is valid */ |
217 /* Check if an MsimSession is valid */ |
| 203 #define MSIM_SESSION_VALID(s) (session != NULL && session->magic == MSIM_SESSION_STRUCT_MAGIC) |
218 #define MSIM_SESSION_VALID(s) (session != NULL && session->magic == MSIM_SESSION_STRUCT_MAGIC) |
| 204 |
219 |
| 205 gchar *str_replace(const gchar *str, const gchar *old, const gchar *new); |
220 gchar *str_replace(const gchar *str, const gchar *old, const gchar *new); |
| 206 |
221 |