--- 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; }