Changeset 104
- Timestamp:
- 02/22/02 17:20:33 (7 years ago)
- Files:
-
- trunk/jggtrans.xml (modified) (1 diff)
- trunk/jggtrans.xml.Pl (modified) (1 diff)
- trunk/src/sessions.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/jggtrans.xml
r102 r104 111 111 So let's give it a year :-) --> 112 112 <pong_timeout>31536000</pong_timeout> 113 113 114 <!-- this time after disconnection from gg server the transport 115 will try to connect again --> 116 <reconnect>300</reconnect> 114 117 115 118 <!-- Spool directory. This is the place, where user info will be stored. --> trunk/jggtrans.xml.Pl
r102 r104 120 120 <pong_timeout>31536000</pong_timeout> 121 121 122 <!-- jak szybko ma transport spróbować się połączyć po rozłączeniu --> 123 <reconnect>300</reconnect> 124 122 125 <!-- Katalog z danymi użytkowników. --> 123 126 <!-- Proszę uważać na uprawnienie - hasła użytkowników (do GG) będą tam przechowywane --> trunk/src/sessions.c
r96 r104 1 /* $Id: sessions.c,v 1.2 4 2002/02/06 17:23:37jajcus Exp $ */1 /* $Id: sessions.c,v 1.25 2002/02/22 16:20:33 jajcus Exp $ */ 2 2 3 3 /* … … 36 36 static int pong_timeout=30; 37 37 static int ping_interval=10; 38 static int reconnect=0; 38 39 GHashTable *sessions_jid; 39 40 … … 55 56 i=config_load_int("ping_interval"); 56 57 if (i>0) ping_interval=i; 58 i=config_load_int("reconnect"); 59 if (i>0) reconnect=i; 57 60 58 61 proxy_ip=config_load_string("proxy/ip"); … … 78 81 79 82 int sessions_done(){ 83 guint s; 84 85 s=g_hash_table_size(sessions_jid); 86 debug("%u sessions in hash table",s); 80 87 81 88 g_hash_table_foreach_remove(sessions_jid,sessions_hash_remove_func,NULL); 82 return 0; 89 g_hash_table_destroy(sessions_jid); 90 return 0; 91 } 92 93 gboolean sessions_reconnect(gpointer data){ 94 char *jid; 95 96 jid=(char *)data; 97 presence_send_probe(jabber_stream(),jid); 98 g_free(jid); 99 return FALSE; 100 } 101 102 void session_schedule_reconnect(Session *s){ 103 int t; 104 105 if (!reconnect) return; 106 t=(int)((reconnect*9.0/10.0)+(2.0*reconnect/10.0*rand()/(RAND_MAX+1.0))); 107 debug("Sheduling reconnect in reconnect %u seconds",t); 108 g_timeout_add(t*1000,sessions_reconnect,g_strdup(s->jid)); 83 109 } 84 110 … … 196 222 s->connected=0; 197 223 s->io_watch=0; 224 session_schedule_reconnect(s); 198 225 session_remove(s); 199 226 return FALSE; … … 212 239 s->connected=0; 213 240 s->io_watch=0; 241 session_schedule_reconnect(s); 214 242 session_remove(s); 215 243 return FALSE; … … 223 251 else presence_send(s->s,NULL,s->user->jid,0,NULL,"Login failed",0); 224 252 s->io_watch=0; 253 if (!s->req_id) 254 session_schedule_reconnect(s); 225 255 session_remove(s); 226 256 return FALSE;
