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)