]> code.citadel.org Git - citadel.git/blobdiff - webcit/context_loop.c
New listdeliver module (skeleton)
[citadel.git] / webcit / context_loop.c
index bf3ac7def2171edb0ee1a074978670aaa492ff9e..5a0730297d3b23255c04c99c8a35a0ce378f6a67 100644 (file)
@@ -24,7 +24,6 @@ pthread_mutex_t SessionListMutex;
 
 wcsession *SessionList = NULL; /* Linked list of all webcit sessions */
 
-pthread_key_t MyConKey;         /* TSD key for MySession() */
 HashList *HttpReqTypes = NULL;
 HashList *HttpHeaderHandler = NULL;
 extern HashList *HandlerHash;
@@ -397,7 +396,11 @@ int ReadHTTPRequest (ParsedHttpHdrs *Hdr)
                nLine ++;
                Line = NewStrBufPlain(NULL, SIZ / 4);
 
-               if (ClientGetLine(Hdr, Line) < 0) return 1;
+               if (ClientGetLine(Hdr, Line) < 0) {
+                       FreeStrBuf(&Line);
+                       isbogus = 1;
+                       break;
+               }
 
                if (StrLength(Line) == 0) {
                        FreeStrBuf(&Line);
@@ -603,6 +606,7 @@ void context_loop(ParsedHttpHdrs *Hdr)
        pthread_setspecific(MyConKey, (void *)TheSession);
        
        TheSession->inuse = 1;                          /* mark the session as bound */
+       TheSession->isFailure = 0;                      /* reset evntually existing error flags */
        TheSession->lastreq = now;                      /* log */
        TheSession->Hdr = Hdr;