| 227 static int gaim_parse_ratechange (aim_session_t *, aim_frame_t *, ...); |
227 static int gaim_parse_ratechange (aim_session_t *, aim_frame_t *, ...); |
| 228 static int gaim_parse_evilnotify (aim_session_t *, aim_frame_t *, ...); |
228 static int gaim_parse_evilnotify (aim_session_t *, aim_frame_t *, ...); |
| 229 static int gaim_parse_searcherror(aim_session_t *, aim_frame_t *, ...); |
229 static int gaim_parse_searcherror(aim_session_t *, aim_frame_t *, ...); |
| 230 static int gaim_parse_searchreply(aim_session_t *, aim_frame_t *, ...); |
230 static int gaim_parse_searchreply(aim_session_t *, aim_frame_t *, ...); |
| 231 static int gaim_bosrights (aim_session_t *, aim_frame_t *, ...); |
231 static int gaim_bosrights (aim_session_t *, aim_frame_t *, ...); |
| 232 static int conninitdone_bos (aim_session_t *sess, aim_frame_t *fr, ...); |
232 static int conninitdone_bos (aim_session_t *, aim_frame_t *, ...); |
| 233 static int conninitdone_admin (aim_session_t *sess, aim_frame_t *fr, ...); |
233 static int conninitdone_admin (aim_session_t *, aim_frame_t *, ...); |
| 234 static int conninitdone_chat (aim_session_t *sess, aim_frame_t *fr, ...); |
234 static int conninitdone_chat (aim_session_t *, aim_frame_t *, ...); |
| 235 static int conninitdone_chatnav (aim_session_t *sess, aim_frame_t *fr, ...); |
235 static int conninitdone_chatnav (aim_session_t *, aim_frame_t *, ...); |
| 236 static int gaim_parse_msgerr (aim_session_t *, aim_frame_t *, ...); |
236 static int gaim_parse_msgerr (aim_session_t *, aim_frame_t *, ...); |
| 237 static int gaim_parse_buddyrights(aim_session_t *, aim_frame_t *, ...); |
237 static int gaim_parse_buddyrights(aim_session_t *, aim_frame_t *, ...); |
| 238 static int gaim_parse_locerr (aim_session_t *, aim_frame_t *, ...); |
238 static int gaim_parse_locerr (aim_session_t *, aim_frame_t *, ...); |
| 239 static int gaim_icbm_param_info (aim_session_t *, aim_frame_t *, ...); |
239 static int gaim_icbm_param_info (aim_session_t *, aim_frame_t *, ...); |
| 240 static int gaim_parse_genericerr (aim_session_t *, aim_frame_t *, ...); |
240 static int gaim_parse_genericerr (aim_session_t *, aim_frame_t *, ...); |
| 241 static int gaim_memrequest (aim_session_t *, aim_frame_t*, ...); |
241 static int gaim_memrequest (aim_session_t *, aim_frame_t *, ...); |
| 242 static int gaim_selfinfo (aim_session_t *, aim_frame_t*, ...); |
242 static int gaim_selfinfo (aim_session_t *, aim_frame_t *, ...); |
| 243 static int gaim_offlinemsg (aim_session_t *, aim_frame_t*, ...); |
243 static int gaim_offlinemsg (aim_session_t *, aim_frame_t *, ...); |
| 244 static int gaim_offlinemsgdone (aim_session_t *, aim_frame_t*, ...); |
244 static int gaim_offlinemsgdone (aim_session_t *, aim_frame_t *, ...); |
| 245 |
245 static int gaim_simpleinfo (aim_session_t *, aim_frame_t *, ...); |
| 246 static int gaim_directim_initiate (aim_session_t *, aim_frame_t *, ...); |
246 |
| 247 static int gaim_directim_incoming (aim_session_t *, aim_frame_t *, ...); |
247 static int gaim_directim_initiate(aim_session_t *, aim_frame_t *, ...); |
| 248 static int gaim_directim_typing (aim_session_t *, aim_frame_t *, ...); |
248 static int gaim_directim_incoming(aim_session_t *, aim_frame_t *, ...); |
| |
249 static int gaim_directim_typing (aim_session_t *, aim_frame_t *, ...); |
| 249 |
250 |
| 250 static char *msgerrreason[] = { |
251 static char *msgerrreason[] = { |
| 251 "Invalid error", |
252 "Invalid error", |
| 252 "Invalid SNAC", |
253 "Invalid SNAC", |
| 253 "Rate to host", |
254 "Rate to host", |
| 650 aim_conn_addhandler(sess, bosconn, 0x0009, 0x0001, gaim_parse_genericerr, 0); |
651 aim_conn_addhandler(sess, bosconn, 0x0009, 0x0001, gaim_parse_genericerr, 0); |
| 651 aim_conn_addhandler(sess, bosconn, 0x0001, 0x001f, gaim_memrequest, 0); |
652 aim_conn_addhandler(sess, bosconn, 0x0001, 0x001f, gaim_memrequest, 0); |
| 652 aim_conn_addhandler(sess, bosconn, 0x0001, 0x000f, gaim_selfinfo, 0); |
653 aim_conn_addhandler(sess, bosconn, 0x0001, 0x000f, gaim_selfinfo, 0); |
| 653 aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_ICQ, AIM_CB_ICQ_OFFLINEMSG, gaim_offlinemsg, 0); |
654 aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_ICQ, AIM_CB_ICQ_OFFLINEMSG, gaim_offlinemsg, 0); |
| 654 aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_ICQ, AIM_CB_ICQ_OFFLINEMSGCOMPLETE, gaim_offlinemsgdone, 0); |
655 aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_ICQ, AIM_CB_ICQ_OFFLINEMSGCOMPLETE, gaim_offlinemsgdone, 0); |
| |
656 aim_conn_addhandler(sess, bosconn, AIM_CB_FAM_ICQ, AIM_CB_ICQ_SIMPLEINFO, gaim_simpleinfo, 0); |
| 655 |
657 |
| 656 ((struct oscar_data *)gc->proto_data)->conn = bosconn; |
658 ((struct oscar_data *)gc->proto_data)->conn = bosconn; |
| 657 for (i = 0; i < (int)strlen(info->bosip); i++) { |
659 for (i = 0; i < (int)strlen(info->bosip); i++) { |
| 658 if (info->bosip[i] == ':') { |
660 if (info->bosip[i] == ':') { |
| 659 port = atoi(&(info->bosip[i+1])); |
661 port = atoi(&(info->bosip[i+1])); |
| 2023 { |
2025 { |
| 2024 aim_icq_ackofflinemsgs(sess); |
2026 aim_icq_ackofflinemsgs(sess); |
| 2025 return 1; |
2027 return 1; |
| 2026 } |
2028 } |
| 2027 |
2029 |
| |
2030 static int gaim_simpleinfo(aim_session_t *sess, aim_frame_t *fr, ...) |
| |
2031 { |
| |
2032 va_list ap; |
| |
2033 struct aim_icq_simpleinfo *info; |
| |
2034 char buf[16 * 1024]; |
| |
2035 |
| |
2036 va_start(ap, fr); |
| |
2037 info = va_arg(ap, struct aim_icq_simpleinfo *); |
| |
2038 va_end(ap); |
| |
2039 |
| |
2040 g_snprintf(buf, sizeof buf, |
| |
2041 "<B>UIN:</B> %lu<BR>" |
| |
2042 "<B>Nick:</B> %s<BR>" |
| |
2043 "<B>Name:</B> %s %s<BR>" |
| |
2044 "<B>Email:</B> %s\n", |
| |
2045 info->uin, |
| |
2046 info->nick, |
| |
2047 info->first, info->last, |
| |
2048 info->email); |
| |
2049 |
| |
2050 g_show_info_text(buf, NULL); |
| |
2051 |
| |
2052 return 1; |
| |
2053 } |
| |
2054 |
| 2028 static int gaim_parse_searchreply(aim_session_t *sess, aim_frame_t *fr, ...) { |
2055 static int gaim_parse_searchreply(aim_session_t *sess, aim_frame_t *fr, ...) { |
| 2029 va_list ap; |
2056 va_list ap; |
| 2030 char *address, *SNs; |
2057 char *address, *SNs; |
| 2031 int i, num; |
2058 int i, num; |
| 2032 char *buf; |
2059 char *buf; |
| 2187 return ret; |
2214 return ret; |
| 2188 } |
2215 } |
| 2189 |
2216 |
| 2190 static void oscar_get_info(struct gaim_connection *g, char *name) { |
2217 static void oscar_get_info(struct gaim_connection *g, char *name) { |
| 2191 struct oscar_data *odata = (struct oscar_data *)g->proto_data; |
2218 struct oscar_data *odata = (struct oscar_data *)g->proto_data; |
| 2192 aim_getinfo(odata->sess, odata->conn, name, AIM_GETINFO_GENERALINFO); |
2219 if (odata->icq) |
| |
2220 aim_icq_getsimpleinfo(odata->sess, name); |
| |
2221 else |
| |
2222 aim_getinfo(odata->sess, odata->conn, name, AIM_GETINFO_GENERALINFO); |
| 2193 } |
2223 } |
| 2194 |
2224 |
| 2195 static void oscar_get_away_msg(struct gaim_connection *g, char *name) { |
2225 static void oscar_get_away_msg(struct gaim_connection *g, char *name) { |
| 2196 struct oscar_data *odata = (struct oscar_data *)g->proto_data; |
2226 struct oscar_data *odata = (struct oscar_data *)g->proto_data; |
| 2197 aim_getinfo(odata->sess, odata->conn, name, AIM_GETINFO_AWAYMESSAGE); |
2227 aim_getinfo(odata->sess, odata->conn, name, AIM_GETINFO_AWAYMESSAGE); |