if (nfd >= 0)
os << ", newFD " << nfd;
if (details != NULL)
- os << ", conn.FD " << details->fd << ", conn.local=" << details->local << ", conn.remote=" << details->remote;
+ os << ", " << details;
}
{
CommCommonCbParams::print(os);
if (conn != NULL)
- os << ", conn.FD " << conn->fd << ", conn.local=" << conn->local << ", conn.remote=" << conn->remote;
+ os << ", " << conn;
}
/* CommIoCbParams */
*/
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);
/*
}
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;
}
#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);
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
#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);
if (conn->getPeer())
peerConnectFailed(conn->getPeer());
- conn->close();
+ Comm::ConnectionPointer nonConst = conn;
+ nonConst->close();
}
retryOrBail();
return;
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);
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);
}
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);
}
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;
if (c == NULL) {
/* no clients care */
- conn->close();
+ Comm::ConnectionPointer nonConst = conn;
+ nonConst->close();
return;
}
}
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;
peerConnectFailedSilent(p);
}
- conn->close();
p->testing_now--;
return;
}
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)
}
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);
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;
}
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;
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