src/server/daemon/httprequest.c

branch
webdav
changeset 272
f210681d9dd0
parent 261
f2c772336ecd
child 332
6f82ede01e1c
--- a/src/server/daemon/httprequest.c	Tue Jan 25 17:45:56 2022 +0100
+++ b/src/server/daemon/httprequest.c	Thu Jan 27 15:47:18 2022 +0100
@@ -566,6 +566,8 @@
 }
 
 int nsapi_finish_request(NSAPISession *sn, NSAPIRequest *rq) {
+    request_free_resources(sn, rq);
+    
     if(rq->rq.rq_attr.keep_alive) {
         SessionHandler *sh = sn->connection->session_handler;
         sh->keep_alive(sh, sn->connection);
@@ -588,6 +590,16 @@
     return 0;
 }
 
+void request_free_resources(NSAPISession *sn, NSAPIRequest *rq) {
+    if(!rq->resources) return;
+    
+    UcxMapIterator i = ucx_map_iterator(rq->resources);
+    ResourceData *resource;
+    UCX_MAP_FOREACH(key, resource, i) {
+        resourcepool_free(&sn->sn, &rq->rq, resource);
+    }
+}
+
 int nsapi_authtrans(NSAPISession *sn, NSAPIRequest *rq) {
     HTTPObjectConfig *objconf = rq->vs->objects;
     httpd_object *obj = objconf->objects[0];

mercurial