From: Wilfried Göesgens Date: Sun, 21 Feb 2010 19:37:28 +0000 (+0000) Subject: * fix endless loop; respect kill_me X-Git-Tag: v7.86~395 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;h=f4c63245bf9a2ce365fbd3b977f3f7f50086fbb3;p=citadel.git * fix endless loop; respect kill_me --- diff --git a/citadel/sysdep.c b/citadel/sysdep.c index 28104218c..459b44ab2 100644 --- a/citadel/sysdep.c +++ b/citadel/sysdep.c @@ -632,7 +632,10 @@ int client_read_to(char *buf, int bytes, int timeout) int HaveMoreLinesWaiting(CitContext *CCC) { - if ((CCC->Pos == NULL) && (StrLength(CCC->ReadBuf) == 0)) + if ((CCC->kill_me == 1) && + (CCC->Pos == NULL) && + (StrLength(CCC->ReadBuf) == 0) && + (CCC->client_socket != -1)) return 0; else return 1; @@ -732,6 +735,9 @@ int client_getln(char *buf, int bufsize) const char *pCh; retval = CtdlClientGetLine(CCC->MigrateBuf); + if (retval < 0) + return(retval >= 0); + i = StrLength(CCC->MigrateBuf); pCh = ChrPtr(CCC->MigrateBuf);