* use strbuffer as wprintf backend
[citadel.git] / webcit / tcp_sockets.c
index 4b0e51c1f38a2303a60c82217c5ba41bb5380f58..fa5429d32b8099f4381af5d51e4863fe9b5ece04 100644 (file)
@@ -12,6 +12,7 @@
 #define SERV_TRACE 1
  */
 
+
 #include "webcit.h"
 #include "webserver.h"
 
@@ -176,7 +177,41 @@ int serv_getln(char *strbuf, int bufsize)
        return len;
 }
 
+int StrBuf_ServGetln(StrBuf *buf)
+{
+       const char *ErrStr;
+       int rc;
+
+       rc = StrBufTCP_read_line(buf, &WC->serv_sock, 0, &ErrStr);
+       if (rc < 0)
+       {
+               lprintf(1, "Server connection broken: %s\n",
+                       ErrStr);
+               wc_backtrace();
+               WC->serv_sock = (-1);
+               WC->connected = 0;
+               WC->logged_in = 0;
+       }
+       return rc;
+}
 
+int StrBuf_ServGetBLOB(StrBuf *buf, long BlobSize)
+{
+       const char *Err;
+       int rc;
+       
+       rc = StrBufReadBLOB(buf, &WC->serv_sock, 1, BlobSize, &Err);
+       if (rc < 0)
+       {
+               lprintf(1, "Server connection broken: %s\n",
+                       Err);
+               wc_backtrace();
+               WC->serv_sock = (-1);
+               WC->connected = 0;
+               WC->logged_in = 0;
+       }
+       return rc;
+}
 
 /**
  * \brief send binary to server