+ close (msock);
+}
+
+
+static void SimpleBlobTestFunc(int sock)
+{
+ StrBuf *ReadBuffer;
+ StrBuf *Blob;
+ const char *Pos = NULL;
+ const char *err = NULL;
+
+ ReadBuffer = NewStrBuf();
+ Blob = NewStrBuf();
+
+ StrBufReadBLOBBuffered(Blob,
+ ReadBuffer,
+ &Pos,
+ &sock,
+ 0,
+ blobsize,
+ 0,
+ &err);
+ TestRevalidateStrBuf(Blob);
+ if (err != NULL)
+ printf("%s", err);
+ CU_ASSERT(blobsize == StrLength(Blob));
+ CU_ASSERT_PTR_NULL(err);
+ CU_ASSERT_NOT_EQUAL(sock, -1);
+ if (sock == -1)
+ printf("BLOB: >%s<\n", ChrPtr(Blob));
+
+ FreeStrBuf(&ReadBuffer);
+ FreeStrBuf(&Blob);
+ time_to_die = 1;
+}
+
+
+static void SimpleHttpPostTestFunc(int sock)
+{
+ StrBuf *ReadBuffer;
+ StrBuf *Blob;
+ StrBuf *Line;
+ const char *Pos = NULL;
+ const char *err = NULL;
+ int blobsize = 0;
+ int i;
+ const char *pch;
+
+ ReadBuffer = NewStrBuf();
+ Blob = NewStrBuf();
+ Line = NewStrBuf();
+
+ for (i = 0; 1; i++) {
+ StrBufTCP_read_buffered_line_fast(Line,
+ ReadBuffer,
+ &Pos,
+ &sock,
+ timeout,
+ selres,
+ &err);
+ TestRevalidateStrBuf(Line);
+ if (err != NULL)
+ printf("%s", err);
+ CU_ASSERT_PTR_NULL(err);
+ CU_ASSERT_NOT_EQUAL(sock, -1);
+ if (sock == -1)
+ break;
+ printf("LINE: >%s<\n", ChrPtr(Line));
+ pch = strstr(ChrPtr(Line), "Content-Length");
+ if (pch != NULL) {
+ blobsize = atol(ChrPtr(Line) +
+ sizeof("Content-Length:"));
+
+ }
+ if (StrLength(Line) == 0)
+ break;
+ FlushStrBuf(Line);
+ }
+
+ StrBufReadBLOBBuffered(Blob,
+ ReadBuffer,
+ &Pos,
+ &sock,
+ 0,
+ blobsize,
+ 0,
+ &err);
+ TestRevalidateStrBuf(Blob);
+ if (err != NULL)
+ printf("%s", err);
+ printf("Blob said/read: %d / %d\n", blobsize, StrLength(Blob));
+ CU_ASSERT(blobsize != 0);
+ CU_ASSERT(blobsize == StrLength(Blob));
+ CU_ASSERT_PTR_NULL(err);
+ CU_ASSERT_NOT_EQUAL(sock, -1);
+ if (sock == -1)
+ printf("BLOB: >%s<\n", ChrPtr(Blob));
+
+ FreeStrBuf(&ReadBuffer);
+ FreeStrBuf(&Blob);
+ FreeStrBuf(&Line);
+ time_to_die = 1;