Mercurial > ~mikael > mcabber > hg
comparison mcabber/src/main.c @ 165:b4921dbf8709
[/trunk] Changeset 177 by mikael
* Maybe fix a segfault when receiving a message.
* Try to have a less intrusive signal handler function.
* TODO update
author | mikael |
---|---|
date | Wed, 04 May 2005 09:07:49 +0000 |
parents | a8f7dc0a56cb |
children | 0ed6099b5a54 |
comparison
equal
deleted
inserted
replaced
164:faf534be8ff0 | 165:b4921dbf8709 |
---|---|
26 int status; | 26 int status; |
27 pid_t pid; | 27 pid_t pid; |
28 do { | 28 do { |
29 pid = waitpid (WAIT_ANY, &status, WNOHANG); | 29 pid = waitpid (WAIT_ANY, &status, WNOHANG); |
30 } while (pid > 0); | 30 } while (pid > 0); |
31 if (pid < 0) | 31 //if (pid < 0) |
32 ut_WriteLog("Error in waitpid: errno=%d\n", errno); | 32 // ut_WriteLog("Error in waitpid: errno=%d\n", errno); |
33 signal(SIGCHLD, sig_handler); | 33 signal(SIGCHLD, sig_handler); |
34 } else if (signum == SIGTERM) { | 34 } else if (signum == SIGTERM) { |
35 // bud_TerminateBuddies(); | 35 // bud_TerminateBuddies(); |
36 scr_TerminateCurses(); | 36 scr_TerminateCurses(); |
37 jb_disconnect(); | 37 jb_disconnect(); |
38 printf("Killed by SIGTERM\nBye!\n"); | 38 printf("Killed by SIGTERM\nBye!\n"); |
39 exit(EXIT_SUCCESS); | 39 exit(EXIT_SUCCESS); |
40 } | 40 } else { |
41 ut_WriteLog("Caught signal: %d\n", signum); | 41 ut_WriteLog("Caught signal: %d\n", signum); |
42 } | |
42 } | 43 } |
43 | 44 |
44 ssize_t my_getpass (char **passstr, size_t *n) | 45 ssize_t my_getpass (char **passstr, size_t *n) |
45 { | 46 { |
46 struct termios orig, new; | 47 struct termios orig, new; |