11#ifndef SQUID_SRC_COMM_CONNECTION_H
12#define SQUID_SRC_COMM_CONNECTION_H
25#include "mem/forward.h"
45#define COMM_UNSET 0x00
46#define COMM_NONBLOCKING 0x01
47#define COMM_NOCLOEXEC 0x02
48#define COMM_REUSEADDR 0x04
49#define COMM_DOBIND 0x08
50#define COMM_TRANSPARENT 0x10
51#define COMM_INTERCEPTION 0x20
52#define COMM_REUSEPORT 0x40
54#define COMM_ORPHANED 0x80
56#define COMM_DOBIND_PORT_LATER 0x100
129 time_t
timeLeft(
const time_t idleTimeout)
const;
#define COMM_ORPHANED
not registered with Comm and not owned by any connection-closing code
InstanceId< Connection, uint64_t > id
const Security::NegotiationHistory * hasTlsNegotiations() const
time_t timeLeft(const time_t idleTimeout) const
CachePeer * getPeer() const
void setAddrs(const Ip::Address &aLocal, const Ip::Address &aRemote)
std::ostream & detailCodeContext(std::ostream &os) const override
appends human-friendly context description line(s) to a cache.log record
void leaveOrphanage()
resume relying on owner(s) to initiate an explicit connection closure
Security::NegotiationHistory * tlsHistory
void enterOrphanage()
close the still-open connection when its last reference is gone
Connection(const Connection &&)=delete
bool toGoneCachePeer() const
whether this is a connection to a cache_peer that was removed during reconfiguration
MEMPROXY_CLASS(Comm::Connection)
time_t connectTimeout(const time_t fwdStart) const
Security::NegotiationHistory * tlsNegotiations()
ConnectionPointer cloneProfile() const
Create a new closed Connection with the same configuration as this one.
ScopedId codeContextGist() const override
void setPeer(CachePeer *p)
Abstraction layer for TCP, UDP, TLS, UDS and filedescriptor sockets.
std::ostream & operator<<(std::ostream &, const Connection &)
Network/connection security abstraction layer.