HelperReply &operator =(const HelperReply &r);
public:
+ HelperReply() : result(HelperReply::Unknown), responseKeys(), whichServer(NULL) {
+ other_.init(1,1);
+ other_.terminate();
+ }
+
// create/parse details from the msg buffer provided
// XXX: buf should be const but parse() needs non-const for now
HelperReply(char *buf, size_t len, bool urlQuoting = false);
if (answer == ACCESS_ALLOWED)
redirectStart(http, clientRedirectDoneWrapper, context);
else {
- HelperReply nilReply(NULL,0);
+ HelperReply nilReply;
context->clientRedirectDone(nilReply);
}
}
debugs(34, DBG_IMPORTANT, "dnsSubmit: queue overload, rejecting " << lookup);
const char *t = "$fail Temporary network problem, please retry later";
- HelperReply failReply(t, strlen(t));
+ HelperReply failReply;
+ /* XXX: upgrade the ipcache and fqdn cache handlers to new syntax
+ failReply.result= HelperReply::BrokenHelper;
+ failReply.responseKeys.add("message","Temporary network problem, please retry later");
+ failReply.responseKeys.add("message","DNS lookup queue overloaded");
+ */
+ failReply.modifiableOther().append(t, strlen(t));
callback(data, failReply);
return;
}
{
if (hlp == NULL) {
debugs(84, 3, "helperSubmit: hlp == NULL");
- HelperReply nilReply(NULL, 0);
+ HelperReply nilReply;
callback(data, nilReply);
return;
}
{
if (hlp == NULL) {
debugs(84, 3, "helperStatefulSubmit: hlp == NULL");
- HelperReply nilReply(NULL, 0);
+ HelperReply nilReply;
callback(data, nilReply);
return;
}
void *cbdata;
if (cbdataReferenceValidDone(r->data, &cbdata)) {
- HelperReply nilReply(NULL, 0);
+ HelperReply nilReply;
r->callback(cbdata, nilReply);
}
void *cbdata;
if (cbdataReferenceValidDone(r->data, &cbdata)) {
- HelperReply nilReply(NULL,0);
+ HelperReply nilReply;
nilReply.whichServer = srv;
r->callback(cbdata, nilReply);
}
/* a callback is needed before this request can _use_ a helper. */
/* we don't care about releasing this helper. The request NEVER
* gets to the helper. So we throw away the return code */
- HelperReply nilReply(NULL,0);
+ HelperReply nilReply;
nilReply.whichServer = srv;
r->callback(r->data, nilReply);
/* throw away the placeholder */
if (Config.onoff.redirector_bypass && redirectors->stats.queue_size) {
/* Skip redirector if there is one request queued */
++n_bypassed;
- HelperReply nilReply(NULL,0);
- handler(data, nilReply);
+ HelperReply bypassReply;
+ bypassReply.result = HelperReply::Okay;
+ bypassReply.responseKeys.add("message","URL rewrite/redirect queue too long. Bypassed.");
+ handler(data, bypassReply);
return;
}
if (squid_curtime - first_warn > 3 * 60)
fatal("SSL servers not responding for 3 minutes");
debugs(34, DBG_IMPORTANT, HERE << "Queue overload, rejecting");
- const char *errMsg = "BH message=\"error 45 Temporary network problem, please retry later\"";
- HelperReply failReply(errMsg,strlen(errMsg));
+ HelperReply failReply;
+ failReply.result = HelperReply::BrokenHelper;
+ failReply.responseKeys.add("message", "error 45 Temporary network problem, please retry later");
callback(data, failReply);
return;
}