]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Make CNCB use const conn
authorAmos Jeffries <squid3@treenet.co.nz>
Sat, 28 Aug 2010 13:39:09 +0000 (01:39 +1200)
committerAmos Jeffries <squid3@treenet.co.nz>
Sat, 28 Aug 2010 13:39:09 +0000 (01:39 +1200)
src/CommCalls.cc
src/CommCalls.h
src/dns_internal.cc
src/forward.cc
src/forward.h
src/ftp.cc
src/ident/Ident.cc
src/neighbors.cc
src/tunnel.cc

index 859b1c915b801b7e4044d4c24073b0543333a6dc..63d51750fbaf8b27e4b443bea88a4f301107a3b0 100644 (file)
@@ -47,7 +47,7 @@ CommAcceptCbParams::print(std::ostream &os) const
     if (nfd >= 0)
         os << ", newFD " << nfd;
     if (details != NULL)
-      os << ", conn.FD " << details->fd << ", conn.local=" << details->local << ", conn.remote=" << details->remote;
+        os << ", " << details;
 }
 
 
@@ -75,7 +75,7 @@ CommConnectCbParams::print(std::ostream &os) const
 {
     CommCommonCbParams::print(os);
     if (conn != NULL)
-      os << ", conn.FD " << conn->fd << ", conn.local=" << conn->local << ", conn.remote=" << conn->remote;
+        os << ", " << conn;
 }
 
 /* CommIoCbParams */
index 067e7eb113b9ad81d1518be54190a2835101bf09..b67b59b2cb645bba15ef92b0c9bf2dd9170b98b2 100644 (file)
@@ -22,7 +22,7 @@
  */
 
 typedef void IOACB(int fd, int nfd, Comm::ConnectionPointer &details, comm_err_t flag, int xerrno, void *data);
-typedef void CNCB(Comm::ConnectionPointer &conn, comm_err_t status, int xerrno, void *data);
+typedef void CNCB(const Comm::ConnectionPointer &conn, comm_err_t status, int xerrno, void *data);
 typedef void IOCB(int fd, char *, size_t size, comm_err_t flag, int xerrno, void *data);
 
 /*
index 39cfc4c7cb69199a26b49b9f99548195c00547d5..d021190b2e83b797359812ba8dff112d459b3183 100644 (file)
@@ -705,14 +705,13 @@ idnsDoSendQueryVC(nsvc *vc)
 }
 
 static void
-idnsInitVCConnected(Comm::ConnectionPointer &conn, comm_err_t status, int xerrno, void *data)
+idnsInitVCConnected(const Comm::ConnectionPointer &conn, comm_err_t status, int xerrno, void *data)
 {
     nsvc * vc = (nsvc *)data;
 
     if (status != COMM_OK || !conn) {
         char buf[MAX_IPSTRLEN];
         debugs(78, DBG_IMPORTANT, "Failed to connect to nameserver " << nameservers[vc->ns].S.NtoA(buf,MAX_IPSTRLEN) << " using TCP!");
-        conn = NULL;
         return;
     }
 
index 3c4fbccafc1e2643d794a6501301d729743bdd9f..0552a970257738d06b17b363e8a59c8b36f432f2 100644 (file)
@@ -395,7 +395,7 @@ fwdNegotiateSSLWrapper(int fd, void *data)
 #endif
 
 void
-fwdConnectDoneWrapper(Comm::ConnectionPointer &conn, comm_err_t status, int xerrno, void *data)
+fwdConnectDoneWrapper(const Comm::ConnectionPointer &conn, comm_err_t status, int xerrno, void *data)
 {
     FwdState *fwd = (FwdState *) data;
     fwd->connectDone(conn, status, xerrno);
@@ -519,10 +519,13 @@ FwdState::retryOrBail()
             return;
         }
         // else bail. no more serverDestinations possible to try.
+
+        // AYJ: cannot-forward error ??
     }
 
     if (!err && shutting_down) {
-        errorCon(ERR_SHUTTING_DOWN, HTTP_SERVICE_UNAVAILABLE, request);
+        ErrorState *anErr = errorCon(ERR_SHUTTING_DOWN, HTTP_SERVICE_UNAVAILABLE, request);
+        errorAppendEntry(entry, anErr);
     }
 
     self = NULL;       // refcounted
@@ -657,7 +660,7 @@ FwdState::initiateSSL()
 #endif
 
 void
-FwdState::connectDone(Comm::ConnectionPointer &conn, comm_err_t status, int xerrno)
+FwdState::connectDone(const Comm::ConnectionPointer &conn, comm_err_t status, int xerrno)
 {
     if (status != COMM_OK) {
         ErrorState *anErr = errorCon(ERR_CONNECT_FAIL, HTTP_SERVICE_UNAVAILABLE, request);
@@ -669,7 +672,8 @@ FwdState::connectDone(Comm::ConnectionPointer &conn, comm_err_t status, int xerr
             if (conn->getPeer())
                 peerConnectFailed(conn->getPeer());
 
-            conn->close();
+            Comm::ConnectionPointer nonConst = conn;
+            nonConst->close();
         }
         retryOrBail();
         return;
@@ -682,7 +686,7 @@ FwdState::connectDone(Comm::ConnectionPointer &conn, comm_err_t status, int xerr
         updateHierarchyInfo();
 #endif
 
-    debugs(17, 3, "FD " << serverConnection()->fd << ": '" << entry->url() << "'" );
+    debugs(17, 3, HERE << serverConnection() << ": '" << entry->url() << "'" );
 
     comm_add_close_handler(serverConnection()->fd, fwdServerClosedWrapper, this);
 
index 34eb3d0030440f19e899b5b384eb9201a97cb6f0..597d0d90073b44a853b0fdd1c86ded0f71b95047 100644 (file)
@@ -30,7 +30,7 @@ public:
     bool reforwardableStatus(http_status s);
     void serverClosed(int fd);
     void connectStart();
-    void connectDone(Comm::ConnectionPointer & conn, comm_err_t status, int xerrno);
+    void connectDone(const Comm::ConnectionPointer & conn, comm_err_t status, int xerrno);
     void connectTimeout(int fd);
     void initiateSSL();
     void negotiateSSL(int fd);
index 4ef57178e9d34ce88977a17107809a1b909f387c..cb608e796c50c45a92560b8ce776ca9a38b3b8d1 100644 (file)
@@ -2680,7 +2680,7 @@ ftpReadPasv(FtpStateData * ftpState)
 }
 
 void
-FtpStateData::ftpPasvCallback(Comm::ConnectionPointer &conn, comm_err_t status, int xerrno, void *data)
+FtpStateData::ftpPasvCallback(const Comm::ConnectionPointer &conn, comm_err_t status, int xerrno, void *data)
 {
     FtpStateData *ftpState = (FtpStateData *)data;
     debugs(9, 3, HERE);
index ae1ef2b0ca6da764dee836afb4ab6348b4765066..e47c13ddbb336bef895b55fe54b2417747451265 100644 (file)
@@ -118,7 +118,7 @@ Ident::Timeout(int fd, void *data)
 }
 
 void
-Ident::ConnectDone(Comm::ConnectionPointer &conn, comm_err_t status, int xerrno, void *data)
+Ident::ConnectDone(const Comm::ConnectionPointer &conn, comm_err_t status, int xerrno, void *data)
 {
     IdentStateData *state = (IdentStateData *)data;
 
@@ -142,7 +142,8 @@ Ident::ConnectDone(Comm::ConnectionPointer &conn, comm_err_t status, int xerrno,
 
     if (c == NULL) {
         /* no clients care */
-        conn->close();
+        Comm::ConnectionPointer nonConst = conn;
+        nonConst->close();
         return;
     }
 
index ef797ad55411b399b1a53ffdf74633880c613aa5..b2f4f577d122bef3837424f3e365030136e06aeb 100644 (file)
@@ -1381,7 +1381,7 @@ peerProbeConnect(peer * p)
 }
 
 static void
-peerProbeConnectDone(Comm::ConnectionPointer &conn, comm_err_t status, int xerrno, void *data)
+peerProbeConnectDone(const Comm::ConnectionPointer &conn, comm_err_t status, int xerrno, void *data)
 {
     peer *p = (peer*)data;
 
@@ -1391,7 +1391,6 @@ peerProbeConnectDone(Comm::ConnectionPointer &conn, comm_err_t status, int xerrn
         peerConnectFailedSilent(p);
     }
 
-    conn->close();
     p->testing_now--;
     return;
 }
index 7db4a76c44f261548f874a3c2b1acf9a3381422d..3461045d34f02f40539a303f5e106d0ef62bcaa2 100644 (file)
@@ -127,8 +127,8 @@ static PF tunnelClientClosed;
 static PF tunnelTimeout;
 static PSC tunnelPeerSelectComplete;
 static void tunnelStateFree(TunnelStateData * tunnelState);
-static void tunnelConnected(Comm::ConnectionPointer &server, void *);
-static void tunnelRelayConnectRequest(Comm::ConnectionPointer &server, void *);
+static void tunnelConnected(const Comm::ConnectionPointer &server, void *);
+static void tunnelRelayConnectRequest(const Comm::ConnectionPointer &server, void *);
 
 static void
 tunnelServerClosed(int fd, void *data)
@@ -475,10 +475,10 @@ tunnelConnectedWriteDone(int fd, char *buf, size_t size, comm_err_t flag, int xe
 }
 
 static void
-tunnelConnected(Comm::ConnectionPointer &server, void *data)
+tunnelConnected(const Comm::ConnectionPointer &server, void *data)
 {
     TunnelStateData *tunnelState = (TunnelStateData *)data;
-    debugs(26, 3, HERE << "FD " << server->fd << " tunnelState=" << tunnelState);
+    debugs(26, 3, HERE << server << ", tunnelState=" << tunnelState);
     *tunnelState->status_ptr = HTTP_OK;
     comm_write(tunnelState->client.conn->fd, conn_established, strlen(conn_established),
                tunnelConnectedWriteDone, tunnelState, NULL);
@@ -503,7 +503,7 @@ tunnelErrorComplete(int fdnotused, void *data, size_t sizenotused)
 
 
 static void
-tunnelConnectDone(Comm::ConnectionPointer &conn, comm_err_t status, int xerrno, void *data)
+tunnelConnectDone(const Comm::ConnectionPointer &conn, comm_err_t status, int xerrno, void *data)
 {
     TunnelStateData *tunnelState = (TunnelStateData *)data;
     HttpRequest *request = tunnelState->request;
@@ -633,13 +633,13 @@ tunnelStart(ClientHttpRequest * http, int64_t * size_ptr, int *status_ptr)
 }
 
 static void
-tunnelRelayConnectRequest(Comm::ConnectionPointer &server, void *data)
+tunnelRelayConnectRequest(const Comm::ConnectionPointer &server, void *data)
 {
     TunnelStateData *tunnelState = (TunnelStateData *)data;
     HttpHeader hdr_out(hoRequest);
     Packer p;
     http_state_flags flags;
-    debugs(26, 3, HERE << "FD " << server->fd << " tunnelState=" << tunnelState);
+    debugs(26, 3, HERE << server << ", tunnelState=" << tunnelState);
     memset(&flags, '\0', sizeof(flags));
     flags.proxying = tunnelState->request->flags.proxying;
     MemBuf mb;
@@ -656,8 +656,8 @@ tunnelRelayConnectRequest(Comm::ConnectionPointer &server, void *data)
     packerClean(&p);
     mb.append("\r\n", 2);
 
-    comm_write_mbuf(tunnelState->server.conn->fd, &mb, tunnelConnectedWriteDone, tunnelState);
-    commSetTimeout(tunnelState->server.conn->fd, Config.Timeout.read, tunnelTimeout, tunnelState);
+    comm_write_mbuf(server->fd, &mb, tunnelConnectedWriteDone, tunnelState);
+    commSetTimeout(server->fd, Config.Timeout.read, tunnelTimeout, tunnelState);
 }
 
 static void