tunnel.cc File Reference
#include "squid.h"
#include "acl/FilledChecklist.h"
#include "base/CbcPointer.h"
#include "CachePeer.h"
#include "cbdata.h"
#include "client_side.h"
#include "client_side_request.h"
#include "comm.h"
#include "comm/Connection.h"
#include "comm/ConnOpener.h"
#include "comm/Read.h"
#include "comm/Write.h"
#include "errorpage.h"
#include "fd.h"
#include "fde.h"
#include "FwdState.h"
#include "globals.h"
#include "http.h"
#include "http/Stream.h"
#include "HttpRequest.h"
#include "ip/QosConfig.h"
#include "LogTags.h"
#include "MemBuf.h"
#include "neighbors.h"
#include "PeerSelectState.h"
#include "sbuf/SBuf.h"
#include "security/BlindPeerConnector.h"
#include "SquidConfig.h"
#include "SquidTime.h"
#include "StatCounters.h"
#include "ssl/bio.h"
#include "ssl/ServerBump.h"
#include "tools.h"
#include "DelayId.h"
#include <climits>
#include <cerrno>
Include dependency graph for tunnel.cc:

Go to the source code of this file.

Classes

class  TunnelStateData
 
class  TunnelStateData::Connection
 
class  TunnelStateData::MyAnswerDialer
 Gives Security::PeerConnector access to Answer in the TunnelStateData callback dialer. More...
 

Functions

static void tunnelConnected (const Comm::ConnectionPointer &server, void *)
 
static void tunnelRelayConnectRequest (const Comm::ConnectionPointer &server, void *)
 
static void tunnelServerClosed (const CommCloseCbParams &params)
 
static void tunnelClientClosed (const CommCloseCbParams &params)
 
static void tunnelTimeout (const CommTimeoutCbParams &io)
 
static void tunnelDelayedClientRead (void *data)
 
static void tunnelDelayedServerRead (void *data)
 
static void tunnelStartShoveling (TunnelStateData *tunnelState)
 
static void tunnelConnectedWriteDone (const Comm::ConnectionPointer &conn, char *, size_t len, Comm::Flag flag, int, void *data)
 
static void tunnelConnectReqWriteDone (const Comm::ConnectionPointer &conn, char *, size_t ioSize, Comm::Flag flag, int, void *data)
 Called when we are done writing CONNECT request to a peer. More...
 
static void tunnelErrorComplete (int fd, void *data, size_t)
 
static void tunnelConnectDone (const Comm::ConnectionPointer &conn, Comm::Flag status, int xerrno, void *data)
 
void tunnelStart (ClientHttpRequest *http)
 
static Comm::ConnectionPointer borrowPinnedConnection (HttpRequest *request, Comm::ConnectionPointer &serverDestination)
 
void switchToTunnel (HttpRequest *request, Comm::ConnectionPointer &clientConn, Comm::ConnectionPointer &srvConn)
 

Variables

static const char *const conn_established = "HTTP/1.1 200 Connection established\r\n\r\n"
 
static CNCB tunnelConnectDone
 
static ERCB tunnelErrorComplete
 
static CLCB tunnelServerClosed
 
static CLCB tunnelClientClosed
 
static CTCB tunnelTimeout
 
static EVH tunnelDelayedClientRead
 
static EVH tunnelDelayedServerRead
 

Function Documentation

static Comm::ConnectionPointer borrowPinnedConnection ( HttpRequest request,
Comm::ConnectionPointer serverDestination 
)
static
static void tunnelConnectedWriteDone ( const Comm::ConnectionPointer conn,
char *  ,
size_t  len,
Comm::Flag  flag,
int  ,
void *  data 
)
static
static void tunnelDelayedClientRead ( void *  data)
static
static void tunnelDelayedServerRead ( void *  data)
static
static void tunnelErrorComplete ( int  fd,
void *  data,
size_t   
)
static

Variable Documentation

const char* const conn_established = "HTTP/1.1 200 Connection established\r\n\r\n"
static

Definition at line 240 of file tunnel.cc.

Referenced by ClientHttpRequest::sslBumpStart(), and tunnelConnected().

CLCB tunnelClientClosed
static

Definition at line 245 of file tunnel.cc.

Referenced by TunnelStateData::TunnelStateData().

CNCB tunnelConnectDone
static

Definition at line 242 of file tunnel.cc.

Referenced by TunnelStateData::startConnecting().

EVH tunnelDelayedClientRead
static

Definition at line 247 of file tunnel.cc.

Referenced by TunnelStateData::TunnelStateData().

EVH tunnelDelayedServerRead
static

Definition at line 248 of file tunnel.cc.

Referenced by TunnelStateData::TunnelStateData().

ERCB tunnelErrorComplete
static
CLCB tunnelServerClosed
static

Definition at line 244 of file tunnel.cc.

Referenced by switchToTunnel(), and tunnelConnectDone().

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors