]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Cleanup: remove several HTTPMSGLOCK/HTTPMSGUNLOCK
authorAmos Jeffries <squid3@treenet.co.nz>
Sat, 1 Jun 2013 15:20:56 +0000 (09:20 -0600)
committerAmos Jeffries <squid3@treenet.co.nz>
Sat, 1 Jun 2013 15:20:56 +0000 (09:20 -0600)
Convert the TunnelStateData and UrnStateData HttpRequest* to Pointer.

src/tunnel.cc
src/urn.cc

index ec050ac2995199296fe1c789ade27d52ae053f23..80029cd4ee9320e7a60787ab6fc45629d7ddffef 100644 (file)
@@ -93,7 +93,7 @@ public:
 
     bool noConnections() const;
     char *url;
-    HttpRequest *request;
+    HttpRequest::Pointer request;
     Comm::ConnectionList serverDestinations;
 
     const char * getHost() const {
@@ -207,7 +207,6 @@ TunnelStateData::~TunnelStateData()
     assert(noConnections());
     xfree(url);
     serverDestinations.clean();
-    HTTPMSGUNLOCK(request);
 }
 
 TunnelStateData::Connection::~Connection()
@@ -553,7 +552,7 @@ tunnelConnected(const Comm::ConnectionPointer &server, void *data)
     TunnelStateData *tunnelState = (TunnelStateData *)data;
     debugs(26, 3, HERE << server << ", tunnelState=" << tunnelState);
 
-    if (tunnelState->request && (tunnelState->request->flags.interceptTproxy || tunnelState->request->flags.intercepted))
+    if (tunnelState->request != NULL && (tunnelState->request->flags.interceptTproxy || tunnelState->request->flags.intercepted))
         tunnelStartShoveling(tunnelState); // ssl-bumped connection, be quiet
     else {
         AsyncCall::Pointer call = commCbCall(5,5, "tunnelConnectedWriteDone",
@@ -593,11 +592,11 @@ tunnelConnectDone(const Comm::ConnectionPointer &conn, comm_err_t status, int xe
             /* Try another IP of this destination host */
 
             if (Ip::Qos::TheConfig.isAclTosActive()) {
-                tunnelState->serverDestinations[0]->tos = GetTosToServer(tunnelState->request);
+                tunnelState->serverDestinations[0]->tos = GetTosToServer(tunnelState->request.getRaw());
             }
 
 #if SO_MARK && USE_LIBCAP
-            tunnelState->serverDestinations[0]->nfmark = GetNfmarkToServer(tunnelState->request);
+            tunnelState->serverDestinations[0]->nfmark = GetNfmarkToServer(tunnelState->request.getRaw());
 #endif
 
             debugs(26, 4, HERE << "retry with : " << tunnelState->serverDestinations[0]);
@@ -607,7 +606,7 @@ tunnelConnectDone(const Comm::ConnectionPointer &conn, comm_err_t status, int xe
             AsyncJob::Start(cs);
         } else {
             debugs(26, 4, HERE << "terminate with error.");
-            ErrorState *err = new ErrorState(ERR_CONNECT_FAIL, Http::scServiceUnavailable, tunnelState->request);
+            ErrorState *err = new ErrorState(ERR_CONNECT_FAIL, Http::scServiceUnavailable, tunnelState->request.getRaw());
             *tunnelState->status_ptr = Http::scServiceUnavailable;
             err->xerrno = xerrno;
             // on timeout is this still:    err->xerrno = ETIMEDOUT;
@@ -697,7 +696,6 @@ tunnelStart(ClientHttpRequest * http, int64_t * size_ptr, int *status_ptr)
 #endif
     tunnelState->url = xstrdup(url);
     tunnelState->request = request;
-    HTTPMSGLOCK(tunnelState->request);
     tunnelState->server.size_ptr = size_ptr;
     tunnelState->status_ptr = status_ptr;
     tunnelState->client.conn = http->getConn()->clientConnection;
@@ -729,7 +727,7 @@ tunnelRelayConnectRequest(const Comm::ConnectionPointer &srv, void *data)
     MemBuf mb;
     mb.init();
     mb.Printf("CONNECT %s HTTP/1.1\r\n", tunnelState->url);
-    HttpStateData::httpBuildRequestHeader(tunnelState->request,
+    HttpStateData::httpBuildRequestHeader(tunnelState->request.getRaw(),
                                           NULL,                        /* StoreEntry */
                                           NULL,                        /* AccessLogEntry */
                                           &hdr_out,
@@ -757,7 +755,7 @@ tunnelPeerSelectComplete(Comm::ConnectionList *peer_paths, ErrorState *err, void
     if (peer_paths == NULL || peer_paths->size() < 1) {
         debugs(26, 3, HERE << "No paths found. Aborting CONNECT");
         if (!err) {
-            err = new ErrorState(ERR_CANNOT_FORWARD, Http::scServiceUnavailable, tunnelState->request);
+            err = new ErrorState(ERR_CANNOT_FORWARD, Http::scServiceUnavailable, tunnelState->request.getRaw());
         }
         *tunnelState->status_ptr = err->httpStatus;
         err->callback = tunnelErrorComplete;
@@ -768,11 +766,11 @@ tunnelPeerSelectComplete(Comm::ConnectionList *peer_paths, ErrorState *err, void
     delete err;
 
     if (Ip::Qos::TheConfig.isAclTosActive()) {
-        tunnelState->serverDestinations[0]->tos = GetTosToServer(tunnelState->request);
+        tunnelState->serverDestinations[0]->tos = GetTosToServer(tunnelState->request.getRaw());
     }
 
 #if SO_MARK && USE_LIBCAP
-    tunnelState->serverDestinations[0]->nfmark = GetNfmarkToServer(tunnelState->request);
+    tunnelState->serverDestinations[0]->nfmark = GetNfmarkToServer(tunnelState->request.getRaw());
 #endif
 
     debugs(26, 3, HERE << "paths=" << peer_paths->size() << ", p[0]={" << (*peer_paths)[0] << "}, serverDest[0]={" <<
index 28dfa1e5a33f68ba090a6e4a6630565a1dcb5504..1b9d45b4fb377ce828f31ed82b3425a94e3c32a2 100644 (file)
@@ -68,8 +68,8 @@ public:
     StoreEntry *entry;
     store_client *sc;
     StoreEntry *urlres_e;
-    HttpRequest *request;
-    HttpRequest *urlres_r;
+    HttpRequest::Pointer request;
+    HttpRequest::Pointer urlres_r;
 
     struct {
         bool force_menu;
@@ -230,7 +230,6 @@ UrnState::setUriResFromRequest(HttpRequest *r)
         return;
     }
 
-    HTTPMSGLOCK(urlres_r);
     urlres_r->header.putStr(HDR_ACCEPT, "text/plain");
 }
 
@@ -240,7 +239,6 @@ UrnState::start(HttpRequest * r, StoreEntry * e)
     debugs(52, 3, "urnStart: '" << e->url() << "'" );
     entry = e;
     request = r;
-    HTTPMSGLOCK(request);
 
     entry->lock();
     setUriResFromRequest(r);
@@ -259,9 +257,8 @@ UrnState::created(StoreEntry *newEntry)
     if (urlres_e->isNull()) {
         urlres_e = storeCreateEntry(urlres, urlres, RequestFlags(), Http::METHOD_GET);
         sc = storeClientListAdd(urlres_e, this);
-        FwdState::fwdStart(Comm::ConnectionPointer(), urlres_e, urlres_r);
+        FwdState::fwdStart(Comm::ConnectionPointer(), urlres_e, urlres_r.getRaw());
     } else {
-
         urlres_e->lock();
         sc = storeClientListAdd(urlres_e, this);
     }
@@ -305,8 +302,6 @@ urnHandleReplyError(UrnState *urnState, StoreEntry *urlres_e)
 {
     urlres_e->unlock();
     urnState->entry->unlock();
-    HTTPMSGUNLOCK(urnState->request);
-    HTTPMSGUNLOCK(urnState->urlres_r);
     delete urnState;
 }
 
@@ -376,7 +371,7 @@ urnHandleReply(void *data, StoreIOBuffer result)
 
     if (rep->sline.status() != Http::scOkay) {
         debugs(52, 3, "urnHandleReply: failed.");
-        err = new ErrorState(ERR_URN_RESOLVE, Http::scNotFound, urnState->request);
+        err = new ErrorState(ERR_URN_RESOLVE, Http::scNotFound, urnState->request.getRaw());
         err->url = xstrdup(e->url());
         errorAppendEntry(e, err);
         delete rep;
@@ -397,8 +392,8 @@ urnHandleReply(void *data, StoreIOBuffer result)
     debugs(53, 3, "urnFindMinRtt: Counted " << i << " URLs");
 
     if (urls == NULL) {                /* unkown URN error */
-        debugs(52, 3, "urnTranslateDone: unknown URN " << e->url()  );
-        err = new ErrorState(ERR_URN_RESOLVE, Http::scNotFound, urnState->request);
+        debugs(52, 3, "urnTranslateDone: unknown URN " << e->url());
+        err = new ErrorState(ERR_URN_RESOLVE, Http::scNotFound, urnState->request.getRaw());
         err->url = xstrdup(e->url());
         errorAppendEntry(e, err);
         urnHandleReplyError(urnState, urlres_e);