FwdState.cc File Reference
#include "squid.h"
#include "AccessLogEntry.h"
#include "acl/Address.h"
#include "acl/FilledChecklist.h"
#include "acl/Gadgets.h"
#include "anyp/PortCfg.h"
#include "CacheManager.h"
#include "CachePeer.h"
#include "client_side.h"
#include "clients/forward.h"
#include "clients/HttpTunneler.h"
#include "comm/Connection.h"
#include "comm/ConnOpener.h"
#include "comm/Loops.h"
#include "CommCalls.h"
#include "errorpage.h"
#include "event.h"
#include "fd.h"
#include "fde.h"
#include "FwdState.h"
#include "globals.h"
#include "gopher.h"
#include "HappyConnOpener.h"
#include "hier_code.h"
#include "http.h"
#include "http/Stream.h"
#include "HttpReply.h"
#include "HttpRequest.h"
#include "icmp/net_db.h"
#include "internal.h"
#include "ip/Intercept.h"
#include "ip/NfMarkConfig.h"
#include "ip/QosConfig.h"
#include "ip/tools.h"
#include "MemObject.h"
#include "mgr/Registration.h"
#include "neighbors.h"
#include "pconn.h"
#include "PeerPoolMgr.h"
#include "ResolvedPeers.h"
#include "security/BlindPeerConnector.h"
#include "SquidConfig.h"
#include "SquidTime.h"
#include "ssl/PeekingPeerConnector.h"
#include "Store.h"
#include "StoreClient.h"
#include "urn.h"
#include "whois.h"
#include "ssl/cert_validate_message.h"
#include "ssl/Config.h"
#include "ssl/ErrorDetail.h"
#include "ssl/helper.h"
#include "ssl/ServerBump.h"
#include "ssl/support.h"
#include <cerrno>

Go to the source code of this file.

Classes

class  FwdStatePeerAnswerDialer
 

Macros

#define MAX_FWD_STATS_IDX   9
 

Functions

static time_t diffOrZero (const time_t larger, const time_t smaller)
 
static void fwdServerClosedWrapper (const CommCloseCbParams &params)
 
static void fwdStats (StoreEntry *s)
 
tos_t aclMapTOS (acl_tos *head, ACLChecklist *ch)
 Checks for a TOS value to apply depending on the ACL. More...
 
Ip::NfMarkConfig aclFindNfMarkConfig (acl_nfmark *head, ACLChecklist *ch)
 Checks for a netfilter mark value to apply depending on the ACL. More...
 
void getOutgoingAddress (HttpRequest *request, Comm::ConnectionPointer conn)
 
static tos_t GetTosToServer (HttpRequest *request, Comm::Connection &conn)
 
static nfmark_t GetNfmarkToServer (HttpRequest *request, Comm::Connection &conn)
 
void GetMarkingsToServer (HttpRequest *request, Comm::Connection &conn)
 
void ResetMarkingsToServer (HttpRequest *request, Comm::Connection &conn)
 

Variables

static CLCB fwdServerClosedWrapper
 
static OBJH fwdStats
 
static int FwdReplyCodes [MAX_FWD_STATS_IDX+1][Http::scInvalidHeader+1]
 
PconnPoolfwdPconnPool = new PconnPool("server-peers", nullptr)
 a collection of previously used persistent Squid-to-peer HTTP(S) connections More...
 

Macro Definition Documentation

◆ MAX_FWD_STATS_IDX

#define MAX_FWD_STATS_IDX   9

Definition at line 76 of file FwdState.cc.

Referenced by fwdStats(), and FwdState::logReplyStatus().

Function Documentation

◆ aclFindNfMarkConfig()

◆ aclMapTOS()

◆ diffOrZero()

static time_t diffOrZero ( const time_t  larger,
const time_t  smaller 
)
inlinestatic

subtracts time_t values, returning zero if smaller exceeds the larger value time_t might be unsigned so we need to be careful when subtracting times...

Definition at line 415 of file FwdState.cc.

Referenced by FwdState::ForwardTimeout().

◆ fwdServerClosedWrapper()

static void fwdServerClosedWrapper ( const CommCloseCbParams params)
static

◆ fwdStats()

static void fwdStats ( StoreEntry s)
static

◆ GetMarkingsToServer()

void GetMarkingsToServer ( HttpRequest request,
Comm::Connection conn 
)

Sets initial TOS value and Netfilter for the future outgoing connection. Updates the given Connection object, not the future transport connection.

Definition at line 1434 of file FwdState.cc.

References debugs, GetNfmarkToServer(), GetTosToServer(), Comm::Connection::local, Comm::Connection::nfmark, and Comm::Connection::tos.

Referenced by HappyConnOpener::openFreshConnection(), PeerPoolMgr::openNewConnection(), and ResetMarkingsToServer().

◆ GetNfmarkToServer()

static nfmark_t GetNfmarkToServer ( HttpRequest request,
Comm::Connection conn 
)
static
Returns
the Netfilter mark that should be set on the to-peer connection

Definition at line 1421 of file FwdState.cc.

References aclFindNfMarkConfig(), ACLFilledChecklist::dst_addr, ACLFilledChecklist::dst_peer_name, Comm::Connection::getPeer(), CachePeer::name, NULL, Comm::Connection::remote, and Ip::Qos::TheConfig.

Referenced by GetMarkingsToServer().

◆ getOutgoingAddress()

◆ GetTosToServer()

static tos_t GetTosToServer ( HttpRequest request,
Comm::Connection conn 
)
static
Returns
the TOS value that should be set on the to-peer connection

Definition at line 1408 of file FwdState.cc.

References aclMapTOS(), ACLFilledChecklist::dst_addr, ACLFilledChecklist::dst_peer_name, Comm::Connection::getPeer(), CachePeer::name, NULL, Comm::Connection::remote, and Ip::Qos::TheConfig.

Referenced by GetMarkingsToServer().

◆ ResetMarkingsToServer()

void ResetMarkingsToServer ( HttpRequest ,
Comm::Connection  
)

Recomputes and applies TOS value and Netfilter to the outgoing connection. Updates both the given Connection object and the transport connection.

Definition at line 1443 of file FwdState.cc.

References GetMarkingsToServer(), Comm::Connection::nfmark, Ip::Qos::setSockNfmark(), Ip::Qos::setSockTos(), and Comm::Connection::tos.

Referenced by TunnelStateData::connectDone(), and FwdState::syncWithServerConn().

Variable Documentation

◆ fwdPconnPool

PconnPool* fwdPconnPool = new PconnPool("server-peers", nullptr)

◆ FwdReplyCodes

int FwdReplyCodes[MAX_FWD_STATS_IDX+1][Http::scInvalidHeader+1]
static

Definition at line 77 of file FwdState.cc.

Referenced by fwdStats(), and FwdState::logReplyStatus().

◆ fwdServerClosedWrapper

CLCB fwdServerClosedWrapper
static

Definition at line 72 of file FwdState.cc.

Referenced by FwdState::syncWithServerConn().

◆ fwdStats

OBJH fwdStats
static

Definition at line 74 of file FwdState.cc.

Referenced by FwdState::RegisterWithCacheManager().

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors