15#ifndef OPENVPN_TRANSPORT_SERVER_TRANSBASE_H
16#define OPENVPN_TRANSPORT_SERVER_TRANSBASE_H
38namespace TunClientInstance {
45struct ovpn_tun_head_ipma;
68namespace TransportClientInstance {
72struct Send :
public virtual RC<thread_unsafe_refcount>
93struct Recv :
public virtual RC<thread_unsafe_refcount>
103 const int local_peer_id,
116 unsigned int &keepalive_timeout) = 0;
131 virtual void ipma_notify(
const struct ovpn_tun_head_ipma &ipma) = 0;
141 const std::string &reason,
142 const std::string &client_reason) = 0;
Reference count base class for objects tracked by RCPtr. Disallows copying and assignment.
virtual Recv::Ptr new_client_instance()=0
virtual bool validate_initial_packet(const BufferAllocated &net_buf)=0
virtual void start(const Send::Ptr &parent, const PeerAddr::Ptr &addr, const int local_peer_id, const ProtoSessionID cookie_psid=ProtoSessionID())=0
virtual void push_halt_restart_msg(const HaltRestart::Type type, const std::string &reason, const std::string &client_reason)=0
virtual bool transport_recv(BufferAllocated &buf)=0
virtual void override_dc_factory(const CryptoDCFactory::Ptr &dc_factory)=0
virtual void ipma_notify(const struct ovpn_tun_head_ipma &ipma)=0
virtual void data_limit_notify(const int key_id, const DataLimit::Mode cdl_mode, const DataLimit::State cdl_status)=0
virtual void disable_keepalive(unsigned int &keepalive_ping, unsigned int &keepalive_timeout)=0
virtual void float_notify(const PeerAddr::Ptr &addr)=0
virtual TunClientInstance::Recv * override_tun(TunClientInstance::Send *tun)=0
virtual bool is_keepalive_enabled() const =0
virtual bool defined() const =0
virtual void stats_notify(const PeerStats &ps, const bool final)=0
virtual bool defined() const =0
virtual bool transport_send_const(const Buffer &buf)=0
virtual bool stats_pending() const =0
virtual bool transport_send(BufferAllocated &buf)=0
virtual const std::string & transport_info() const =0
virtual PeerStats stats_poll()=0
RCPtr< TransportServerFactory > Ptr
virtual TransportServer::Ptr new_server_obj(openvpn_io::io_context &io_context)=0
virtual IP::Addr local_endpoint_addr() const =0
RCPtr< TransportServer > Ptr
virtual std::string local_endpoint_info() const =0