comparison src/protocols/yahoo/yahoo.c @ 2771:450f4f9d2f23

[gaim-migrate @ 2784] maybe this is better? committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Mon, 19 Nov 2001 22:25:40 +0000
parents 38cb5fa48bec
children f9227268db25
comparison
equal deleted inserted replaced
2770:24ebd5e321e4 2771:450f4f9d2f23
396 buddy->name = g_strdup(name); 396 buddy->name = g_strdup(name);
397 buddy->state = state; 397 buddy->state = state;
398 buddy->msg = msg ? g_strdup(msg) : NULL; 398 buddy->msg = msg ? g_strdup(msg) : NULL;
399 yd->login = g_slist_append(yd->login, buddy); 399 yd->login = g_slist_append(yd->login, buddy);
400 break; 400 break;
401 case 60: /* uh */
402 while (yd->login) {
403 buddy = yd->login->data;
404 state = buddy->state;
405 yd->login = g_slist_remove(yd->login, buddy);
406 if (state == YAHOO_STATUS_AVAILABLE)
407 serv_got_update(gc, buddy->name, 1, 0, 0, 0, 0, 0);
408 else if (state == YAHOO_STATUS_IDLE)
409 serv_got_update(gc, buddy->name, 1, 0, 0, time(NULL) - 600,
410 (state << 1), 0);
411 else
412 serv_got_update(gc, buddy->name, 1, 0, 0, 0,
413 (state << 1) | UC_UNAVAILABLE, 0);
414 if (state == YAHOO_STATUS_CUSTOM) {
415 gpointer val = g_hash_table_lookup(yd->hash, buddy->name);
416 if (val) {
417 g_free(val);
418 g_hash_table_insert(yd->hash, buddy->name,
419 g_strdup(buddy->msg));
420 } else
421 g_hash_table_insert(yd->hash, g_strdup(buddy->name),
422 g_strdup(buddy->msg));
423 }
424 g_free(buddy->msg);
425 g_free(buddy->name);
426 g_free(buddy);
427 }
428 break;
401 default: 429 default:
402 debug_printf("unknown login key %d\n", pair->key); 430 debug_printf("unknown login key %d\n", pair->key);
403 break; 431 break;
404 } 432 }
405 433
639 switch (pkt->service) 667 switch (pkt->service)
640 { 668 {
641 case YAHOO_SERVICE_LOGON: 669 case YAHOO_SERVICE_LOGON:
642 yahoo_process_logon(gc, pkt); 670 yahoo_process_logon(gc, pkt);
643 break; 671 break;
672 case YAHOO_SERVICE_LOGOFF:
644 case YAHOO_SERVICE_ISAWAY: 673 case YAHOO_SERVICE_ISAWAY:
645 case YAHOO_SERVICE_ISBACK: 674 case YAHOO_SERVICE_ISBACK:
646 yahoo_process_status(gc, pkt); 675 yahoo_process_status(gc, pkt);
647 break; 676 break;
648 case YAHOO_SERVICE_MESSAGE: 677 case YAHOO_SERVICE_MESSAGE: