Mercurial > hg
changeset 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 | faf534be8ff0 |
children | aa5b635520ef |
files | mcabber/src/TODO mcabber/src/jabglue.c mcabber/src/main.c |
diffstat | 3 files changed, 12 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/src/TODO Mon May 02 20:31:01 2005 +0000 +++ b/mcabber/src/TODO Wed May 04 09:07:49 2005 +0000 @@ -2,6 +2,7 @@ BUGS: * Check if it crashes when resized too small... Can we have a minimum size? +* Colors are misnamed TODO:
--- a/mcabber/src/jabglue.c Mon May 02 20:31:01 2005 +0000 +++ b/mcabber/src/jabglue.c Wed May 04 09:07:49 2005 +0000 @@ -97,7 +97,11 @@ char *jidtodisp(const char *jid) { char *ptr; - char *alias = g_strdup(jid); + char *alias; + + while ((alias = g_strdup(jid)) == NULL) + usleep(100); + if ((ptr = strchr(alias, '/')) != NULL) { *ptr = 0; } @@ -486,7 +490,6 @@ { char *p, *r; xmlnode x, y; - // string from, type, body, enc, ns, id, u, h, s; char *from=NULL, *type=NULL, *body=NULL, *enc=NULL; char *ns=NULL; char *id=NULL; @@ -508,7 +511,7 @@ if ((x = xmlnode_get_tag(packet->x, "subject")) != NULL) if ((p = xmlnode_get_data(x)) != NULL) { - tmp = g_new(char, strlen(body)+strlen(p)+3); + tmp = g_new(char, strlen(body)+strlen(p)+4); *tmp = '['; strcpy(tmp+1, p); strcat(tmp, "]\n"); @@ -529,7 +532,7 @@ } } - if (body) + if (from && body) gotmessage(type, from, body, enc); if (tmp) g_free(tmp);
--- a/mcabber/src/main.c Mon May 02 20:31:01 2005 +0000 +++ b/mcabber/src/main.c Wed May 04 09:07:49 2005 +0000 @@ -28,8 +28,8 @@ do { pid = waitpid (WAIT_ANY, &status, WNOHANG); } while (pid > 0); - if (pid < 0) - ut_WriteLog("Error in waitpid: errno=%d\n", errno); + //if (pid < 0) + // ut_WriteLog("Error in waitpid: errno=%d\n", errno); signal(SIGCHLD, sig_handler); } else if (signum == SIGTERM) { // bud_TerminateBuddies(); @@ -37,8 +37,9 @@ jb_disconnect(); printf("Killed by SIGTERM\nBye!\n"); exit(EXIT_SUCCESS); + } else { + ut_WriteLog("Caught signal: %d\n", signum); } - ut_WriteLog("Caught signal: %d\n", signum); } ssize_t my_getpass (char **passstr, size_t *n)