src/server/proxy/httpclient.h

changeset 671
879005903b2b
parent 669
ccdc97fd8204
--- a/src/server/proxy/httpclient.h	Fri Feb 13 12:18:12 2026 +0100
+++ b/src/server/proxy/httpclient.h	Sat Feb 14 18:08:24 2026 +0100
@@ -39,6 +39,11 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
+    
+#define HTTP_CLIENT_BUFFER_SIZE 4096
+    
+#define HTTP_CLIENT_CALLBACK_WOULD_BLOCK -1
+#define HTTP_CLIENT_CALLBACK_ERROR       -2
 
 typedef struct HttpClient HttpClient;
 struct HttpClient {
@@ -76,8 +81,11 @@
      * Response body write function
      * 
      * int response_body_write(HttpClient *client, void *buf, size_t size, void *userdata)
+     * 
+     * Return: number of processed bytes,
+     *         HTTP_CLIENT_CALLBACK_WOULD_BLOCK or HTTP_CLIENT_CALLBACK_ERROR.
      */
-    int (*response_body_write)(HttpClient *, void *, size_t, void *);
+    ssize_t (*response_body_write)(HttpClient *, void *, size_t, void *);
     void *response_body_write_userdata;
     
     /*
@@ -90,9 +98,15 @@
     
     
     // internals
+    HttpParser *parser;
+    netbuf buffer;
     
     char *req_buffer;
     size_t req_buffer_len;
+    size_t req_buffer_pos;
+    
+    int error;
+    int header_complete;
     
     Event readev;
     Event writeev;

mercurial