diff 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
line wrap: on
line diff
--- a/mcabber/src/main.c	Sat Apr 23 21:12:36 2005 +0000
+++ b/mcabber/src/main.c	Sun Apr 24 17:38:48 2005 +0000
@@ -18,21 +18,14 @@
 
 void sig_handler(int signum)
 {
-  switch (signum) {
-  case SIGALRM:
-    jb_keepalive();
-    break;
-
-  case SIGTERM:
+  if (signum == SIGTERM) {
     // bud_TerminateBuddies();
     scr_TerminateCurses();
     jb_disconnect();
     printf("Killed by SIGTERM\nBye!\n");
     exit(EXIT_SUCCESS);
-    break;
-
   }
-  signal(SIGALRM, sig_handler);
+  ut_WriteLog("Caught signal: %d\n", signum);
 }
 
 ssize_t my_getpass (char **passstr, size_t *n)
@@ -177,15 +170,12 @@
     return -2;
   }
 
-  ping = 20;
+  ping = 40;
   if (cfg_read("pinginterval"))
     ping = (unsigned int) atoi(cfg_read("pinginterval"));
-
+  jb_set_keepalive_delay(ping);
   ut_WriteLog("Ping interval stablished: %d secs\n", ping);
 
-  ut_WriteLog("Entering into main loop...\n\n");
-  ut_WriteLog("Ready to send/receive messages...\n");
-
   optstring = cfg_read("hide_offline_buddies");
   if (optstring && (atoi(optstring) > 0))
     buddylist_hide_offline_buddies(TRUE);
@@ -193,9 +183,12 @@
   /* Initialize commands system */
   cmd_init();
 
+  ut_WriteLog("Entering into main loop...\n\n");
+  ut_WriteLog("Ready to send/receive messages...\n");
+
+  jb_reset_keepalive();
   keypad(scr_GetInputWindow(), TRUE);
   while (ret != 255) {
-    alarm(ping);
     key = scr_Getch();
     if (key != ERR)
       ret = process_key(key);