Mercurial > pidgin
comparison src/server.c @ 10745:ca69d597a5e2
[gaim-migrate @ 12347]
Get rid of serv_close (I got rid of serv_login earlier today).
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sun, 27 Mar 2005 01:59:39 +0000 |
parents | 94cc67130789 |
children | bf5e48215158 |
comparison
equal
deleted
inserted
replaced
10744:1b927566fcc4 | 10745:ca69d597a5e2 |
---|---|
42 #include "gtkutils.h" | 42 #include "gtkutils.h" |
43 | 43 |
44 #define SECS_BEFORE_RESENDING_AUTORESPONSE 600 | 44 #define SECS_BEFORE_RESENDING_AUTORESPONSE 600 |
45 #define SEX_BEFORE_RESENDING_AUTORESPONSE "Only after you're married" | 45 #define SEX_BEFORE_RESENDING_AUTORESPONSE "Only after you're married" |
46 | 46 |
47 static gboolean send_keepalive(gpointer d) | |
48 { | |
49 GaimConnection *gc = d; | |
50 GaimPluginProtocolInfo *prpl_info = NULL; | |
51 | |
52 if (gc != NULL && gc->prpl != NULL) | |
53 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); | |
54 | |
55 if (prpl_info && prpl_info->keepalive) | |
56 prpl_info->keepalive(gc); | |
57 | |
58 return TRUE; | |
59 } | |
60 | |
61 static void update_keepalive(GaimConnection *gc, gboolean on) | |
62 { | |
63 if (on && !gc->keep_alive) { | |
64 gaim_debug(GAIM_DEBUG_INFO, "server", "allowing NOP\n"); | |
65 gc->keep_alive = gaim_timeout_add(60000, send_keepalive, gc); | |
66 } else if (!on && gc->keep_alive > 0) { | |
67 gaim_debug(GAIM_DEBUG_INFO, "server", "removing NOP\n"); | |
68 gaim_timeout_remove(gc->keep_alive); | |
69 gc->keep_alive = 0; | |
70 } | |
71 } | |
72 | |
73 void serv_close(GaimConnection *gc) | |
74 { | |
75 GaimPluginProtocolInfo *prpl_info = NULL; | |
76 | |
77 while (gc->buddy_chats) { | |
78 GaimConversation *b = gc->buddy_chats->data; | |
79 | |
80 gc->buddy_chats = g_slist_remove(gc->buddy_chats, b); | |
81 gaim_conv_chat_left(GAIM_CONV_CHAT(b)); | |
82 } | |
83 | |
84 if (gc->idle_timer > 0) | |
85 gaim_timeout_remove(gc->idle_timer); | |
86 gc->idle_timer = 0; | |
87 | |
88 update_keepalive(gc, FALSE); | |
89 | |
90 if (gc->prpl != NULL) { | |
91 prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(gc->prpl); | |
92 | |
93 if (prpl_info->close) | |
94 (prpl_info->close)(gc); | |
95 } | |
96 } | |
97 | |
98 void serv_touch_idle(GaimConnection *gc) | 47 void serv_touch_idle(GaimConnection *gc) |
99 { | 48 { |
100 /* Are we idle? If so, not anymore */ | 49 /* Are we idle? If so, not anymore */ |
101 if (gc->is_idle > 0) { | 50 if (gc->is_idle > 0) { |
102 gc->is_idle = 0; | 51 gc->is_idle = 0; |
123 if (gc->idle_timer > 0) | 72 if (gc->idle_timer > 0) |
124 gaim_timeout_remove(gc->idle_timer); | 73 gaim_timeout_remove(gc->idle_timer); |
125 | 74 |
126 gc->idle_timer = gaim_timeout_add(20000, check_idle, gc); | 75 gc->idle_timer = gaim_timeout_add(20000, check_idle, gc); |
127 serv_touch_idle(gc); | 76 serv_touch_idle(gc); |
128 | |
129 update_keepalive(gc, TRUE); | |
130 } | 77 } |
131 | 78 |
132 /* This should return the elapsed time in seconds in which Gaim will not send | 79 /* This should return the elapsed time in seconds in which Gaim will not send |
133 * typing notifications. | 80 * typing notifications. |
134 * if it returns zero, it will not send any more typing notifications | 81 * if it returns zero, it will not send any more typing notifications |