src/server/safs/proxy.c

changeset 694
a5aa94800b59
parent 675
edacba8beedb
--- a/src/server/safs/proxy.c	Sat Feb 21 19:36:15 2026 +0100
+++ b/src/server/safs/proxy.c	Sat Feb 21 21:52:08 2026 +0100
@@ -168,6 +168,12 @@
     return ret;
 }
 
+static void proxy_request_finished(HttpClient *client, void *userdata) {
+    ProxyRequest *proxy = userdata;
+    net_setnonblock(proxy->sn->csd, 0);
+    nsapi_saf_return(proxy->sn, proxy->rq, REQ_PROCEED);
+}
+
 int http_reverse_proxy_service(pblock *param, Session *sn, Request *rq) {
     EventHandler *ev = sn->ev;
     const char *method = pblock_findkeyval(pb_key_method, rq->reqpb);
@@ -274,10 +280,12 @@
     client->response_start_userdata = proxy;
     client->response_body_write = proxy_response_write;
     client->response_body_write_userdata = proxy;
+    client->response_finished = proxy_request_finished;
+    client->response_finished_userdata = proxy;
     
-    //net_setnonblock(sn->csd, 1);
+    net_setnonblock(sn->csd, 1);
     if(http_client_start(client)) {
-        //net_setnonblock(sn->csd, 0);
+        net_setnonblock(sn->csd, 0);
         http_client_free(client);
         return REQ_ABORTED;
     }

mercurial