From: Amos Jeffries Date: Sat, 1 Jun 2013 15:20:56 +0000 (-0600) Subject: Cleanup: remove several HTTPMSGLOCK/HTTPMSGUNLOCK X-Git-Tag: SQUID_3_4_0_1~83 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8a70cdbb9d82bd3a55c9c8036eabbf0eb522725e;p=thirdparty%2Fsquid.git Cleanup: remove several HTTPMSGLOCK/HTTPMSGUNLOCK Convert the TunnelStateData and UrnStateData HttpRequest* to Pointer. --- diff --git a/src/tunnel.cc b/src/tunnel.cc index ec050ac299..80029cd4ee 100644 --- a/src/tunnel.cc +++ b/src/tunnel.cc @@ -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]={" << diff --git a/src/urn.cc b/src/urn.cc index 28dfa1e5a3..1b9d45b4fb 100644 --- a/src/urn.cc +++ b/src/urn.cc @@ -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);