]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Fix HelperReply(const HelperReply&) is private
authorAmos Jeffries <squid3@treenet.co.nz>
Tue, 30 Oct 2012 09:16:33 +0000 (22:16 +1300)
committerAmos Jeffries <squid3@treenet.co.nz>
Tue, 30 Oct 2012 09:16:33 +0000 (22:16 +1300)
GCC 4.1 and possibly others use copy-constructor when an instance is
created in a function parameter list using copy by reference.
We must create such objects as loal variables and pass to the function
for best efficiency.

src/dns.cc
src/helper.cc
src/redirect.cc
src/ssl/helper.cc

index f1194339456ee14ac2335b6c0ef4cb06f9131830..8fcf3d6f769ae53c782afd4648b329cd45f2924d 100644 (file)
@@ -131,7 +131,8 @@ dnsSubmit(const char *lookup, HLPCB * callback, void *data)
         debugs(34, DBG_IMPORTANT, "dnsSubmit: queue overload, rejecting " << lookup);
 
         const char *t = "$fail Temporary network problem, please retry later";
-        callback(data, HelperReply(t, strlen(t)));
+        HelperReply failReply(t, strlen(t));
+        callback(data, failReply);
         return;
     }
 
index 4be084bdb157375d5cc73e2e2bffb7d6c70b1b59..0656f4aac02499cf3437997bb9c332d7467f8bbc 100644 (file)
@@ -398,7 +398,8 @@ helperSubmit(helper * hlp, const char *buf, HLPCB * callback, void *data)
 {
     if (hlp == NULL) {
         debugs(84, 3, "helperSubmit: hlp == NULL");
-        callback(data, HelperReply(NULL,0));
+        HelperReply nilReply(NULL, 0);
+        callback(data, nilReply);
         return;
     }
 
@@ -423,7 +424,8 @@ helperStatefulSubmit(statefulhelper * hlp, const char *buf, HLPCB * callback, vo
 {
     if (hlp == NULL) {
         debugs(84, 3, "helperStatefulSubmit: hlp == NULL");
-        callback(data, HelperReply(NULL,0));
+        HelperReply nilReply(NULL, 0);
+        callback(data, nilReply);
         return;
     }
 
@@ -755,8 +757,10 @@ helperServerFree(helper_server *srv)
         if ((r = srv->requests[i])) {
             void *cbdata;
 
-            if (cbdataReferenceValidDone(r->data, &cbdata))
-                r->callback(cbdata, HelperReply(NULL,0));
+            if (cbdataReferenceValidDone(r->data, &cbdata)) {
+                HelperReply nilReply(NULL, 0);
+                r->callback(cbdata, nilReply);
+            }
 
             helperRequestFree(r);
 
@@ -854,8 +858,10 @@ helperReturnBuffer(int request_number, helper_server * srv, helper * hlp, char *
         r->callback = NULL;
 
         void *cbdata = NULL;
-        if (cbdataReferenceValidDone(r->data, &cbdata))
-            callback(cbdata, HelperReply(msg, (msg_end-msg)));
+        if (cbdataReferenceValidDone(r->data, &cbdata)) {
+            HelperReply response(msg, (msg_end-msg));
+            callback(cbdata, response);
+        }
 
         -- srv->stats.pending;
         ++ srv->stats.replies;
index 0e3aee5c0ff933a06609785870d1a211a192a21c..e4d57becdbdbcdb8fc088eb5fb1a4f92e98bcd00 100644 (file)
@@ -151,7 +151,8 @@ redirectStart(ClientHttpRequest * http, HLPCB * handler, void *data)
     if (Config.onoff.redirector_bypass && redirectors->stats.queue_size) {
         /* Skip redirector if there is one request queued */
         ++n_bypassed;
-        handler(data, HelperReply(NULL,0));
+        HelperReply nilReply(NULL,0);
+        handler(data, nilReply);
         return;
     }
 
index d3792f819f28b906d224fa184cfda6e29e5fc768..dd6b00b90f1bcb04d6f6d58b0fcdfc36cd1ad513 100644 (file)
@@ -94,7 +94,8 @@ void Ssl::Helper::sslSubmit(CrtdMessage const & message, HLPCB * callback, void
             fatal("SSL servers not responding for 3 minutes");
         debugs(34, DBG_IMPORTANT, HERE << "Queue overload, rejecting");
         const char *errMsg = "BH error 45 Temporary network problem, please retry later"; // XXX: upgrade to message=""
-        callback(data, HelperReply(errMsg,strlen(errMsg)));
+        HelperReply failReply(errMsg,strlen(errMsg));
+        callback(data, failReply);
         return;
     }