Merge fix for #25193 (#29737) -- always close proxy connection
authorAleš Křenek <ljocha@ics.muni.cz>
Wed, 10 Oct 2007 16:57:06 +0000 (16:57 +0000)
committerAleš Křenek <ljocha@ics.muni.cz>
Wed, 10 Oct 2007 16:57:06 +0000 (16:57 +0000)
org.glite.lb.client/src/connection.c

index 35fb63c..da587cd 100644 (file)
@@ -472,6 +472,9 @@ int edg_wll_http_send_recv_proxy(
        char ***resp_head,
        char **resp_body)
 {
+       int     err;
+       char    *et = NULL;
+
        if (edg_wll_open_proxy(ctx)) return edg_wll_Error(ctx,NULL,NULL);
        
        switch (edg_wll_http_send_proxy(ctx,request,req_head,req_body)) {
@@ -491,6 +494,18 @@ int edg_wll_http_send_recv_proxy(
                        || edg_wll_http_send_proxy(ctx,request,req_head,req_body)
                        || edg_wll_http_recv_proxy(ctx,response,resp_head,resp_body));
        }
+
+       /* XXX: workaround for bug #25153, don't keep proxy connection at all
+        * May have slight performance impact, it would be nice to cover proxy
+        * connections in the pool too.
+        */
+
+       err = edg_wll_Error(ctx,NULL,&et);
+       edg_wll_close_proxy(ctx);
+       if (err) {
+               edg_wll_SetError(ctx,err,et);
+               free(et);
+       }
        
        return edg_wll_Error(ctx,NULL,NULL);
 }