# HG changeset patch # User Eric Warmenhoven # Date 1006855068 0 # Node ID 0ad63a625eec55275030bbe7992f6848de8be55c # Parent 72357bddb0f358285bb5a13bbce2370ef7710ebf [gaim-migrate @ 2813] hm committer: Tailor Script diff -r 72357bddb0f3 -r 0ad63a625eec src/protocols/jabber/jabber.c --- a/src/protocols/jabber/jabber.c Tue Nov 27 03:30:41 2001 +0000 +++ b/src/protocols/jabber/jabber.c Tue Nov 27 09:57:48 2001 +0000 @@ -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; } }