Changed session logging in order to determine why some sessions are not timing out.
[citadel.git] / webcit / tcp_sockets.c
index f03e003016df5b1fe935d3f07a0c8ff014a65b8a..687580e2de359c8b790e0c61cc0ca54a2ca65ed8 100644 (file)
@@ -226,7 +226,7 @@ int StrBuf_ServGetBLOBBuffered(StrBuf *buf, long BlobSize)
        }
 #ifdef SERV_TRACE
         else
-                syslog(9, "%3d<<<BLOB: %ld bytes\n", WC->serv_sock, StrLength(buf));
+                syslog(9, "%3d<<<BLOB: %d bytes\n", WC->serv_sock, StrLength(buf));
 #endif
 
        return rc;
@@ -251,7 +251,7 @@ int StrBuf_ServGetBLOB(StrBuf *buf, long BlobSize)
        }
 #ifdef SERV_TRACE
         else
-                syslog(9, "%3d<<<BLOB: %ld bytes\n", WC->serv_sock, StrLength(buf));
+                syslog(9, "%3d<<<BLOB: %d bytes\n", WC->serv_sock, StrLength(buf));
 #endif
 
        return rc;
@@ -651,19 +651,23 @@ int client_read_to(ParsedHttpHdrs *Hdr, StrBuf *Target, int bytes, int timeout)
 
 #ifdef HAVE_OPENSSL
        if (is_https) {
-               long bufremain;
+               long bufremain = 0;
                long baselen;
 
                baselen = StrLength(Target);
 
                if (Hdr->Pos == NULL)
                        Hdr->Pos = ChrPtr(Hdr->ReadBuf);
-               bufremain = StrLength(Hdr->ReadBuf) - (Hdr->Pos - ChrPtr(Hdr->ReadBuf));
 
-               if (bytes < bufremain)
-                       bufremain = bytes;
-               StrBufAppendBufPlain(Target, Hdr->Pos, bufremain, 0);
-               StrBufCutLeft(Hdr->ReadBuf, bufremain);
+               if (StrLength(Hdr->ReadBuf) > 0)
+               {
+                       bufremain = StrLength(Hdr->ReadBuf) - (Hdr->Pos - ChrPtr(Hdr->ReadBuf));
+                       
+                       if (bytes < bufremain)
+                               bufremain = bytes;
+                       StrBufAppendBufPlain(Target, Hdr->Pos, bufremain, 0);
+                       StrBufCutLeft(Hdr->ReadBuf, bufremain);
+               }
 
                if (bytes > bufremain) 
                {
@@ -917,6 +921,8 @@ SessionDestroyModule_TCPSOCKETS
        FreeStrBuf(&sess->ReadBuf);
        sess->ReadPos = NULL;
        FreeStrBuf(&sess->MigrateReadLineBuf);
-       if (sess->serv_sock > 0)
+       if (sess->serv_sock > 0) {
+               syslog(LOG_DEBUG, "Closing socket %d", sess->serv_sock);
                close(sess->serv_sock);
+       }
 }