Mercurial > pidgin
comparison src/protocols/toc/toc.c @ 9058:cde9fb3546ed
[gaim-migrate @ 9834]
Removed OPT_PROTO_CORRECT_TIME and moved some functionality
out of the core and into oscar.c and toc.c
committer: Tailor Script <tailor@pidgin.im>
| author | Mark Doliner <mark@kingant.net> |
|---|---|
| date | Tue, 25 May 2004 03:54:12 +0000 |
| parents | 7ab20f829190 |
| children | 6d7bb1274755 |
comparison
equal
deleted
inserted
replaced
| 9057:c55aa23bf56e | 9058:cde9fb3546ed |
|---|---|
| 22 | 22 |
| 23 #include "account.h" | 23 #include "account.h" |
| 24 #include "accountopt.h" | 24 #include "accountopt.h" |
| 25 #include "conversation.h" | 25 #include "conversation.h" |
| 26 #include "debug.h" | 26 #include "debug.h" |
| 27 #include "prpl.h" | 27 #include "multi.h" |
| 28 #include "notify.h" | 28 #include "notify.h" |
| 29 #include "proxy.h" | 29 #include "proxy.h" |
| 30 #include "prpl.h" | |
| 30 #include "request.h" | 31 #include "request.h" |
| 31 #include "util.h" | 32 #include "util.h" |
| 32 | 33 |
| 33 static GaimPlugin *my_protocol = NULL; | 34 static GaimPlugin *my_protocol = NULL; |
| 34 | 35 |
| 588 } | 589 } |
| 589 | 590 |
| 590 static void toc_callback(gpointer data, gint source, GaimInputCondition condition) | 591 static void toc_callback(gpointer data, gint source, GaimInputCondition condition) |
| 591 { | 592 { |
| 592 GaimConnection *gc = (GaimConnection *)data; | 593 GaimConnection *gc = (GaimConnection *)data; |
| 594 GaimAccount *account = gaim_connection_get_account(gc); | |
| 593 struct toc_data *tdt = (struct toc_data *)gc->proto_data; | 595 struct toc_data *tdt = (struct toc_data *)gc->proto_data; |
| 594 struct sflap_hdr *hdr; | 596 struct sflap_hdr *hdr; |
| 595 struct signon so; | 597 struct signon so; |
| 596 char buf[8 * 1024], *c; | 598 char buf[8 * 1024], *c; |
| 597 char snd[BUF_LEN * 2]; | 599 char snd[BUF_LEN * 2]; |
| 598 | 600 |
| 599 const char *username = gaim_account_get_username(gc->account); | 601 const char *username = gaim_account_get_username(account); |
| 600 char *password; | 602 char *password; |
| 601 | 603 |
| 602 /* there's data waiting to be read, so read it. */ | 604 /* there's data waiting to be read, so read it. */ |
| 603 if (wait_reply(gc, buf, 8 * 1024) <= 0) { | 605 if (wait_reply(gc, buf, 8 * 1024) <= 0) { |
| 604 gaim_connection_error(gc, _("Connection Closed")); | 606 gaim_connection_error(gc, _("Connection Closed")); |
| 668 | 670 |
| 669 tdt->state = STATE_ONLINE; | 671 tdt->state = STATE_ONLINE; |
| 670 | 672 |
| 671 gaim_connection_set_state(gc, GAIM_CONNECTED); | 673 gaim_connection_set_state(gc, GAIM_CONNECTED); |
| 672 serv_finish_login(gc); | 674 serv_finish_login(gc); |
| 675 | |
| 676 /* | |
| 677 * Add me to my buddy list so that we know the time when | |
| 678 * the server thinks I signed on. | |
| 679 */ | |
| 680 serv_add_buddy(gc, username, NULL); | |
| 673 | 681 |
| 674 /* Client sends TOC toc_init_done message */ | 682 /* Client sends TOC toc_init_done message */ |
| 675 gaim_debug(GAIM_DEBUG_INFO, "toc", | 683 gaim_debug(GAIM_DEBUG_INFO, "toc", |
| 676 "Client sends TOC toc_init_done message\n"); | 684 "Client sends TOC toc_init_done message\n"); |
| 677 g_snprintf(snd, sizeof snd, "toc_init_done"); | 685 g_snprintf(snd, sizeof snd, "toc_init_done"); |
| 776 time(&time_idle); | 784 time(&time_idle); |
| 777 time_idle -= idle * 60; | 785 time_idle -= idle * 60; |
| 778 } else | 786 } else |
| 779 time_idle = 0; | 787 time_idle = 0; |
| 780 | 788 |
| 789 /* | |
| 790 * If we have info for ourselves then set our display name, warning | |
| 791 * level and official time of login. | |
| 792 */ | |
| 781 tmp = g_strdup(gaim_normalize(gc->account, gaim_account_get_username(gc->account))); | 793 tmp = g_strdup(gaim_normalize(gc->account, gaim_account_get_username(gc->account))); |
| 782 if (!strcmp(tmp, gaim_normalize(gc->account, c))) | 794 if (!strcmp(tmp, gaim_normalize(gc->account, c))) { |
| 783 gaim_connection_set_display_name(gc, c); | 795 gaim_connection_set_display_name(gc, c); |
| 796 gc->evil = evil; | |
| 797 gc->login_time_official = signon; | |
| 798 } | |
| 784 g_free(tmp); | 799 g_free(tmp); |
| 785 | 800 |
| 786 serv_got_update(gc, c, logged, evil, signon, time_idle, type); | 801 serv_got_update(gc, c, logged, evil, signon, time_idle, type); |
| 787 } else if (!g_ascii_strcasecmp(c, "ERROR")) { | 802 } else if (!g_ascii_strcasecmp(c, "ERROR")) { |
| 788 gaim_notify_error(gc, NULL, show_error_message(), NULL); | 803 gaim_notify_error(gc, NULL, show_error_message(), NULL); |
| 1125 char buf[BUF_LEN * 2]; | 1140 char buf[BUF_LEN * 2]; |
| 1126 | 1141 |
| 1127 g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(node)); | 1142 g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(node)); |
| 1128 | 1143 |
| 1129 buddy = (GaimBuddy *) node; | 1144 buddy = (GaimBuddy *) node; |
| 1130 gc = gaim_acount_get_connection(buddy->account); | 1145 gc = gaim_account_get_connection(buddy->account); |
| 1131 | 1146 |
| 1132 g_snprintf(buf, MSG_LEN, "toc_get_dir %s", | 1147 g_snprintf(buf, MSG_LEN, "toc_get_dir %s", |
| 1133 gaim_normalize(buddy->account, buddy->name)); | 1148 gaim_normalize(buddy->account, buddy->name)); |
| 1134 sflap_send(gc, buf, -1, TYPE_DATA); | 1149 sflap_send(gc, buf, -1, TYPE_DATA); |
| 1135 } | 1150 } |
| 2101 #endif | 2116 #endif |
| 2102 | 2117 |
| 2103 static GaimPluginProtocolInfo prpl_info = | 2118 static GaimPluginProtocolInfo prpl_info = |
| 2104 { | 2119 { |
| 2105 GAIM_PRPL_API_VERSION, | 2120 GAIM_PRPL_API_VERSION, |
| 2106 OPT_PROTO_CORRECT_TIME, | 2121 0, |
| 2107 NULL, | 2122 NULL, |
| 2108 NULL, | 2123 NULL, |
| 2109 toc_list_icon, | 2124 toc_list_icon, |
| 2110 toc_list_emblems, | 2125 toc_list_emblems, |
| 2111 NULL, | 2126 NULL, |
