comparison src/protocols/oscar/service.c @ 4871:0b64f386a7b8

[gaim-migrate @ 5201] Nathan is SO the man. He pointed out that oscar was leaking about 500k per IM. No, just kidding. But this should help Gaim leak a little less. It was all Nathan. He is so S-M-R-T. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Sun, 23 Mar 2003 07:59:17 +0000
parents 051265d35a36
children ad589b887af9
comparison
equal deleted inserted replaced
4870:773135edda4a 4871:0b64f386a7b8
390 } 390 }
391 391
392 /* Subtype 0x000a - Rate Change */ 392 /* Subtype 0x000a - Rate Change */
393 static int ratechange(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) 393 static int ratechange(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs)
394 { 394 {
395 int ret = 0;
395 aim_rxcallback_t userfunc; 396 aim_rxcallback_t userfunc;
396 fu16_t code, rateclass; 397 fu16_t code, rateclass;
397 fu32_t currentavg, maxavg, windowsize, clear, alert, limit, disconnect; 398 fu32_t currentavg, maxavg, windowsize, clear, alert, limit, disconnect;
398 399
399 code = aimbs_get16(bs); 400 code = aimbs_get16(bs);
406 disconnect = aimbs_get32(bs); 407 disconnect = aimbs_get32(bs);
407 currentavg = aimbs_get32(bs); 408 currentavg = aimbs_get32(bs);
408 maxavg = aimbs_get32(bs); 409 maxavg = aimbs_get32(bs);
409 410
410 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) 411 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
411 return userfunc(sess, rx, code, rateclass, windowsize, clear, alert, limit, disconnect, currentavg, maxavg); 412 ret = userfunc(sess, rx, code, rateclass, windowsize, clear, alert, limit, disconnect, currentavg, maxavg);
412 413
413 return 0; 414 return ret;
414 } 415 }
415 416
416 /* 417 /*
417 * How Migrations work. 418 * How Migrations work.
418 * 419 *
427 */ 428 */
428 429
429 /* Subtype 0x000b - Service Pause */ 430 /* Subtype 0x000b - Service Pause */
430 static int serverpause(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) 431 static int serverpause(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs)
431 { 432 {
433 int ret = 0;
432 aim_rxcallback_t userfunc; 434 aim_rxcallback_t userfunc;
433 435
434 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) 436 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
435 return userfunc(sess, rx); 437 ret = userfunc(sess, rx);
436 438
437 return 0; 439 return ret;
438 } 440 }
439 441
440 /* 442 /*
441 * Subtype 0x000c - Service Pause Acknowledgement 443 * Subtype 0x000c - Service Pause Acknowledgement
442 * 444 *
475 } 477 }
476 478
477 /* Subtype 0x000d - Service Resume */ 479 /* Subtype 0x000d - Service Resume */
478 static int serverresume(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) 480 static int serverresume(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs)
479 { 481 {
482 int ret = 0;
480 aim_rxcallback_t userfunc; 483 aim_rxcallback_t userfunc;
481 484
482 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) 485 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
483 return userfunc(sess, rx); 486 ret = userfunc(sess, rx);
484 487
485 return 0; 488 return ret;
486 } 489 }
487 490
488 /* Subtype 0x000e - Request self-info */ 491 /* Subtype 0x000e - Request self-info */
489 faim_export int aim_reqpersonalinfo(aim_session_t *sess, aim_conn_t *conn) 492 faim_export int aim_reqpersonalinfo(aim_session_t *sess, aim_conn_t *conn)
490 { 493 {
492 } 495 }
493 496
494 /* Subtype 0x000f - Self User Info */ 497 /* Subtype 0x000f - Self User Info */
495 static int selfinfo(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) 498 static int selfinfo(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs)
496 { 499 {
500 int ret = 0;
497 aim_rxcallback_t userfunc; 501 aim_rxcallback_t userfunc;
498 aim_userinfo_t userinfo; 502 aim_userinfo_t userinfo;
499 503
500 aim_extractuserinfo(sess, bs, &userinfo); 504 aim_extractuserinfo(sess, bs, &userinfo);
501 505
502 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) 506 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
503 return userfunc(sess, rx, &userinfo); 507 ret = userfunc(sess, rx, &userinfo);
504 508
505 return 0; 509 return ret;
506 } 510 }
507 511
508 /* Subtype 0x0010 - Evil Notification */ 512 /* Subtype 0x0010 - Evil Notification */
509 static int evilnotify(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) 513 static int evilnotify(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs)
510 { 514 {
515 int ret = 0;
511 aim_rxcallback_t userfunc; 516 aim_rxcallback_t userfunc;
512 fu16_t newevil; 517 fu16_t newevil;
513 aim_userinfo_t userinfo; 518 aim_userinfo_t userinfo;
514 519
515 memset(&userinfo, 0, sizeof(aim_userinfo_t)); 520 memset(&userinfo, 0, sizeof(aim_userinfo_t));
518 523
519 if (aim_bstream_empty(bs)) 524 if (aim_bstream_empty(bs))
520 aim_extractuserinfo(sess, bs, &userinfo); 525 aim_extractuserinfo(sess, bs, &userinfo);
521 526
522 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) 527 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
523 return userfunc(sess, rx, newevil, &userinfo); 528 ret = userfunc(sess, rx, newevil, &userinfo);
524 529
525 return 0; 530 return ret;
526 } 531 }
527 532
528 /* 533 /*
529 * Subtype 0x0011 - Idle Notification 534 * Subtype 0x0011 - Idle Notification
530 * 535 *
794 * 799 *
795 */ 800 */
796 /* Subtype 0x001f - Client verification */ 801 /* Subtype 0x001f - Client verification */
797 static int memrequest(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) 802 static int memrequest(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs)
798 { 803 {
804 int ret = 0;
799 aim_rxcallback_t userfunc; 805 aim_rxcallback_t userfunc;
800 fu32_t offset, len; 806 fu32_t offset, len;
801 aim_tlvlist_t *list; 807 aim_tlvlist_t *list;
802 char *modname; 808 char *modname;
803 809
808 modname = aim_gettlv_str(list, 0x0001, 1); 814 modname = aim_gettlv_str(list, 0x0001, 1);
809 815
810 faimdprintf(sess, 1, "data at 0x%08lx (%d bytes) of requested\n", offset, len, modname ? modname : "aim.exe"); 816 faimdprintf(sess, 1, "data at 0x%08lx (%d bytes) of requested\n", offset, len, modname ? modname : "aim.exe");
811 817
812 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) 818 if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
813 return userfunc(sess, rx, offset, len, modname); 819 ret = userfunc(sess, rx, offset, len, modname);
814 820
815 free(modname); 821 free(modname);
816 aim_freetlvchain(&list); 822 aim_freetlvchain(&list);
817 823
818 return 0; 824 return ret;
819 } 825 }
820 826
821 #if 0 827 #if 0
822 static void dumpbox(aim_session_t *sess, unsigned char *buf, int len) 828 static void dumpbox(aim_session_t *sess, unsigned char *buf, int len)
823 { 829 {