Mercurial > hg
comparison mcabber/src/main.c @ 112:edb5591e2e64
[/trunk] Changeset 126 by mikael
* Fix keepalive.
author | mikael |
---|---|
date | Sun, 24 Apr 2005 17:38:48 +0000 |
parents | 2b4cc6bc5bf2 |
children | 8ac67e951eab |
comparison
equal
deleted
inserted
replaced
111:d896962c16fa | 112:edb5591e2e64 |
---|---|
16 #include "harddefines.h" | 16 #include "harddefines.h" |
17 | 17 |
18 | 18 |
19 void sig_handler(int signum) | 19 void sig_handler(int signum) |
20 { | 20 { |
21 switch (signum) { | 21 if (signum == SIGTERM) { |
22 case SIGALRM: | |
23 jb_keepalive(); | |
24 break; | |
25 | |
26 case SIGTERM: | |
27 // bud_TerminateBuddies(); | 22 // bud_TerminateBuddies(); |
28 scr_TerminateCurses(); | 23 scr_TerminateCurses(); |
29 jb_disconnect(); | 24 jb_disconnect(); |
30 printf("Killed by SIGTERM\nBye!\n"); | 25 printf("Killed by SIGTERM\nBye!\n"); |
31 exit(EXIT_SUCCESS); | 26 exit(EXIT_SUCCESS); |
32 break; | 27 } |
33 | 28 ut_WriteLog("Caught signal: %d\n", signum); |
34 } | |
35 signal(SIGALRM, sig_handler); | |
36 } | 29 } |
37 | 30 |
38 ssize_t my_getpass (char **passstr, size_t *n) | 31 ssize_t my_getpass (char **passstr, size_t *n) |
39 { | 32 { |
40 struct termios orig, new; | 33 struct termios orig, new; |
175 fprintf(stderr, "Error connecting to (%s)\n", servername); | 168 fprintf(stderr, "Error connecting to (%s)\n", servername); |
176 scr_TerminateCurses(); | 169 scr_TerminateCurses(); |
177 return -2; | 170 return -2; |
178 } | 171 } |
179 | 172 |
180 ping = 20; | 173 ping = 40; |
181 if (cfg_read("pinginterval")) | 174 if (cfg_read("pinginterval")) |
182 ping = (unsigned int) atoi(cfg_read("pinginterval")); | 175 ping = (unsigned int) atoi(cfg_read("pinginterval")); |
183 | 176 jb_set_keepalive_delay(ping); |
184 ut_WriteLog("Ping interval stablished: %d secs\n", ping); | 177 ut_WriteLog("Ping interval stablished: %d secs\n", ping); |
185 | |
186 ut_WriteLog("Entering into main loop...\n\n"); | |
187 ut_WriteLog("Ready to send/receive messages...\n"); | |
188 | 178 |
189 optstring = cfg_read("hide_offline_buddies"); | 179 optstring = cfg_read("hide_offline_buddies"); |
190 if (optstring && (atoi(optstring) > 0)) | 180 if (optstring && (atoi(optstring) > 0)) |
191 buddylist_hide_offline_buddies(TRUE); | 181 buddylist_hide_offline_buddies(TRUE); |
192 | 182 |
193 /* Initialize commands system */ | 183 /* Initialize commands system */ |
194 cmd_init(); | 184 cmd_init(); |
195 | 185 |
186 ut_WriteLog("Entering into main loop...\n\n"); | |
187 ut_WriteLog("Ready to send/receive messages...\n"); | |
188 | |
189 jb_reset_keepalive(); | |
196 keypad(scr_GetInputWindow(), TRUE); | 190 keypad(scr_GetInputWindow(), TRUE); |
197 while (ret != 255) { | 191 while (ret != 255) { |
198 alarm(ping); | |
199 key = scr_Getch(); | 192 key = scr_Getch(); |
200 if (key != ERR) | 193 if (key != ERR) |
201 ret = process_key(key); | 194 ret = process_key(key); |
202 jb_main(); | 195 jb_main(); |
203 if (update_roster) | 196 if (update_roster) |