/*
- * $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
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)
{
/* 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)
/*
- * $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/
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 *);
/*
- * $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
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
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;
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);
SslStateData *sslState = data;
request_t *request = sslState->request;
peer *g = NULL;
-
if (fs == NULL) {
ErrorState *err;
err = errorCon(ERR_CANNOT_FORWARD, HTTP_SERVICE_UNAVAILABLE);
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;
sslState->delay_id = 0;
}
#endif
+ hierarchyNote(&sslState->request->hier,
+ fs->peer ? fs->code : DIRECT,
+ sslState->host);
commConnectStart(sslState->server.fd,
sslState->host,
sslState->port,
/*
- * $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
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
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;
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);
SslStateData *sslState = data;
request_t *request = sslState->request;
peer *g = NULL;
-
if (fs == NULL) {
ErrorState *err;
err = errorCon(ERR_CANNOT_FORWARD, HTTP_SERVICE_UNAVAILABLE);
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;
sslState->delay_id = 0;
}
#endif
+ hierarchyNote(&sslState->request->hier,
+ fs->peer ? fs->code : DIRECT,
+ sslState->host);
commConnectStart(sslState->server.fd,
sslState->host,
sslState->port,