From: Eric W. <war...@us...> - 2001-11-27 09:57:51
|
Update of /cvsroot/gaim/gaim/src/protocols/jabber In directory usw-pr-cvs1:/tmp/cvs-serv16654/protocols/jabber Modified Files: jabber.c Log Message: hm Index: jabber.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/jabber/jabber.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- jabber.c 2001/11/26 20:39:53 1.28 +++ jabber.c 2001/11/27 09:57:48 1.29 @@ -126,6 +126,7 @@ GSList *existing_chats; GHashTable *hash; time_t idle; + gboolean die; }; struct jabber_chat { @@ -332,9 +333,12 @@ return; if ((len = read(j->fd, buf, sizeof(buf) - 1))) { + struct jabber_data *jd = GJ_GC(j)->proto_data; buf[len] = '\0'; debug_printf("input (len %d): %s\n", len, buf); XML_Parse(j->parser, buf, len, 0); + if (jd->die) + signoff(GJ_GC(j)); } else if (len <= 0) { STATE_EVT(JCONN_STATE_OFF) } @@ -983,6 +987,7 @@ xmlnode xerr; char *errmsg = NULL; int errcode = 0; + struct jabber_data *jd = GJ_GC(j)->proto_data; debug_printf("auth failed\n"); xerr = xmlnode_get_tag(p->x, "error"); @@ -999,7 +1004,7 @@ hide_login_progress(GJ_GC(j), "Unknown login error"); } - signoff(GJ_GC(j)); + jd->die = TRUE; } } |