From 64d8034ed54ca8c2becba5ba06f03777c24218dd Mon Sep 17 00:00:00 2001 From: wessels <> Date: Fri, 11 Jun 1999 03:06:23 +0000 Subject: [PATCH] hierarchy logging was broken for SSL --- src/forward.cc | 22 +++++++++++----------- src/protos.h | 3 ++- src/ssl.cc | 13 ++++++++----- src/tunnel.cc | 13 ++++++++----- 4 files changed, 29 insertions(+), 22 deletions(-) diff --git a/src/forward.cc b/src/forward.cc index 705d294aac..c08895c2e9 100644 --- a/src/forward.cc +++ b/src/forward.cc @@ -1,6 +1,6 @@ /* - * $Id: forward.cc,v 1.60 1999/05/19 19:57:43 wessels Exp $ + * $Id: forward.cc,v 1.61 1999/06/10 21:06:23 wessels Exp $ * * DEBUG: section 17 Request Forwarding * AUTHOR: Duane Wessels @@ -61,16 +61,6 @@ fwdServerFree(FwdServer * fs) memFree(fs, MEM_FWD_SERVER); } -static void -fwdServersFree(FwdServer ** FS) -{ - FwdServer *fs; - while ((fs = *FS)) { - *FS = fs->next; - fwdServerFree(fs); - } -} - static void fwdStateFree(FwdState * fwdState) { @@ -385,6 +375,16 @@ fwdReforward(FwdState * fwdState) /* PUBLIC FUNCTIONS */ +void +fwdServersFree(FwdServer ** FS) +{ + FwdServer *fs; + while ((fs = *FS)) { + *FS = fs->next; + fwdServerFree(fs); + } +} + void fwdStart(int fd, StoreEntry * e, request_t * r, struct in_addr client_addr, struct in_addr my_addr) diff --git a/src/protos.h b/src/protos.h index 3e0c4237fc..afe2a881c1 100644 --- a/src/protos.h +++ b/src/protos.h @@ -1,6 +1,6 @@ /* - * $Id: protos.h,v 1.338 1999/06/10 06:10:32 wessels Exp $ + * $Id: protos.h,v 1.339 1999/06/10 21:06:24 wessels Exp $ * * * SQUID Internet Object Cache http://squid.nlanr.net/Squid/ @@ -683,6 +683,7 @@ extern void fwdUnregister(int fd, FwdState *); extern void fwdComplete(FwdState * fwdState); extern void fwdInit(void); extern int fwdReforwardableStatus(http_status s); +extern void fwdServersFree(FwdServer ** FS); extern void urnStart(request_t *, StoreEntry *); diff --git a/src/ssl.cc b/src/ssl.cc index ae11bd9077..9dad0e1c0c 100644 --- a/src/ssl.cc +++ b/src/ssl.cc @@ -1,6 +1,6 @@ /* - * $Id: ssl.cc,v 1.96 1999/05/19 19:57:50 wessels Exp $ + * $Id: ssl.cc,v 1.97 1999/06/10 21:06:26 wessels Exp $ * * DEBUG: section 26 Secure Sockets Layer Proxy * AUTHOR: Duane Wessels @@ -40,13 +40,13 @@ typedef struct { char *host; /* either request->host or proxy host */ u_short port; request_t *request; + FwdServer *servers; struct { int fd; int len; char *buf; } client, server; size_t *size_ptr; /* pointer to size in an ConnStateData for logging */ - int proxying; #if DELAY_POOLS delay_id delay_id; #endif @@ -104,6 +104,7 @@ sslStateFree(SslStateData * sslState) safe_free(sslState->server.buf); safe_free(sslState->client.buf); safe_free(sslState->url); + fwdServersFree(&sslState->servers); sslState->host = NULL; requestUnlink(sslState->request); sslState->request = NULL; @@ -388,7 +389,7 @@ sslConnectDone(int fdnotused, int status, void *data) err->callback_data = sslState; errorSend(sslState->client.fd, err); } else { - if (sslState->proxying) + if (sslState->servers->peer) sslProxyConnected(sslState->server.fd, sslState); else sslConnected(sslState->server.fd, sslState); @@ -506,7 +507,6 @@ sslPeerSelectComplete(FwdServer * fs, void *data) SslStateData *sslState = data; request_t *request = sslState->request; peer *g = NULL; - if (fs == NULL) { ErrorState *err; err = errorCon(ERR_CANNOT_FORWARD, HTTP_SERVICE_UNAVAILABLE); @@ -516,7 +516,7 @@ sslPeerSelectComplete(FwdServer * fs, void *data) errorSend(sslState->client.fd, err); return; } - sslState->proxying = fs->peer ? 1 : 0; + sslState->servers = fs; sslState->host = fs->peer ? fs->peer->host : request->host; if (fs->peer == NULL) { sslState->port = request->port; @@ -534,6 +534,9 @@ sslPeerSelectComplete(FwdServer * fs, void *data) sslState->delay_id = 0; } #endif + hierarchyNote(&sslState->request->hier, + fs->peer ? fs->code : DIRECT, + sslState->host); commConnectStart(sslState->server.fd, sslState->host, sslState->port, diff --git a/src/tunnel.cc b/src/tunnel.cc index c30077f29c..1e587be50a 100644 --- a/src/tunnel.cc +++ b/src/tunnel.cc @@ -1,6 +1,6 @@ /* - * $Id: tunnel.cc,v 1.96 1999/05/19 19:57:50 wessels Exp $ + * $Id: tunnel.cc,v 1.97 1999/06/10 21:06:26 wessels Exp $ * * DEBUG: section 26 Secure Sockets Layer Proxy * AUTHOR: Duane Wessels @@ -40,13 +40,13 @@ typedef struct { char *host; /* either request->host or proxy host */ u_short port; request_t *request; + FwdServer *servers; struct { int fd; int len; char *buf; } client, server; size_t *size_ptr; /* pointer to size in an ConnStateData for logging */ - int proxying; #if DELAY_POOLS delay_id delay_id; #endif @@ -104,6 +104,7 @@ sslStateFree(SslStateData * sslState) safe_free(sslState->server.buf); safe_free(sslState->client.buf); safe_free(sslState->url); + fwdServersFree(&sslState->servers); sslState->host = NULL; requestUnlink(sslState->request); sslState->request = NULL; @@ -388,7 +389,7 @@ sslConnectDone(int fdnotused, int status, void *data) err->callback_data = sslState; errorSend(sslState->client.fd, err); } else { - if (sslState->proxying) + if (sslState->servers->peer) sslProxyConnected(sslState->server.fd, sslState); else sslConnected(sslState->server.fd, sslState); @@ -506,7 +507,6 @@ sslPeerSelectComplete(FwdServer * fs, void *data) SslStateData *sslState = data; request_t *request = sslState->request; peer *g = NULL; - if (fs == NULL) { ErrorState *err; err = errorCon(ERR_CANNOT_FORWARD, HTTP_SERVICE_UNAVAILABLE); @@ -516,7 +516,7 @@ sslPeerSelectComplete(FwdServer * fs, void *data) errorSend(sslState->client.fd, err); return; } - sslState->proxying = fs->peer ? 1 : 0; + sslState->servers = fs; sslState->host = fs->peer ? fs->peer->host : request->host; if (fs->peer == NULL) { sslState->port = request->port; @@ -534,6 +534,9 @@ sslPeerSelectComplete(FwdServer * fs, void *data) sslState->delay_id = 0; } #endif + hierarchyNote(&sslState->request->hier, + fs->peer ? fs->code : DIRECT, + sslState->host); commConnectStart(sslState->server.fd, sslState->host, sslState->port, -- 2.47.2