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 "base/AsyncCallbacks.h"
#include "base/AsyncCbdataCalls.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 "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 "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/helper.h"
#include "ssl/ServerBump.h"
#include "ssl/support.h"
#include <cerrno>

Go to the source code of this file.

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, const 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 75 of file FwdState.cc.

Function Documentation

◆ aclFindNfMarkConfig()

Ip::NfMarkConfig aclFindNfMarkConfig ( acl_nfmark head,
ACLChecklist ch 
)

◆ aclMapTOS()

tos_t aclMapTOS ( acl_tos head,
ACLChecklist ch 
)

◆ 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 421 of file FwdState.cc.

Referenced by FwdState::ForwardTimeout().

◆ fwdServerClosedWrapper()

static void fwdServerClosedWrapper ( const CommCloseCbParams params)
static

Definition at line 674 of file FwdState.cc.

References CommCommonCbParams::data, and FwdState::serverClosed().

◆ 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 1555 of file FwdState.cc.

References conn, debugs, GetNfmarkToServer(), and GetTosToServer().

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 1542 of file FwdState.cc.

References aclFindNfMarkConfig(), conn, ACLFilledChecklist::dst_addr, ACLFilledChecklist::dst_peer_name, 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 1529 of file FwdState.cc.

References aclMapTOS(), conn, ACLFilledChecklist::dst_addr, ACLFilledChecklist::dst_peer_name, and Ip::Qos::TheConfig.

Referenced by GetMarkingsToServer().

◆ ResetMarkingsToServer()

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

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

Definition at line 1564 of file FwdState.cc.

References conn, GetMarkingsToServer(), Ip::Qos::setSockNfmark(), and Ip::Qos::setSockTos().

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

Variable Documentation

◆ fwdPconnPool

◆ FwdReplyCodes

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

Definition at line 76 of file FwdState.cc.

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

◆ fwdServerClosedWrapper

CLCB fwdServerClosedWrapper
static

Definition at line 71 of file FwdState.cc.

Referenced by FwdState::syncWithServerConn().

◆ fwdStats

OBJH fwdStats
static

Definition at line 73 of file FwdState.cc.

Referenced by FwdState::RegisterWithCacheManager().

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors