2#if defined(HAVE_CONFIG_H)
6#if !defined(RESIP_DTLSTRANSPORT_HXX)
7#define RESIP_DTLSTRANSPORT_HXX
11#ifndef RESIP_UDPTRANSPORT_HXX
15#ifndef RESIP_TIMERQUEUE_HXX
19#ifndef RESIP_SENDDATA_HXX
23#ifndef RESIP_HEAPINSTANCECOUNTER_HXX
28#include <unordered_map>
29#include <openssl/ssl.h>
39class TransactionMessage;
47 size_t operator()(
const struct sockaddr_in sock )
const
49 return sock.sin_addr.s_addr ;
55 bool operator()(
const struct sockaddr_in& s1,
56 const struct sockaddr_in& s2)
const
58 if ( ( s1.sin_addr.s_addr == s2.sin_addr.s_addr ) &&
59 ( s1.sin_port == s2.sin_port) )
78 const Data& interfaceObj,
80 const Data& sipDomain,
83 const Data& certificateFilename =
"",
84 const Data& privateKeyFilename =
"",
85 const Data& privateKeyPassPhrase =
"");
99 DtlsTransport::addr_hash,
100 DtlsTransport::addr_cmp> DtlsConnectionMap ;
108 DtlsConnectionMap mDtlsConnections ;
119 void _doHandshake() ;
122 void _mapDebug(
const char *
where,
const char *action,
SSL *ssl ) ;
125 std::array<char, MaxMessageSize> mRxSslBuffer{};
struct ssl_ctx_st SSL_CTX
static Compression Disabled
Represents a compression configuration object with compression disabled.
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
RESIP_HeapCount(DtlsTransport)
static const unsigned long DtlsReceiveTimeout
virtual void buildFdSet(FdSet &fdset)
Adds the Transport's socket FD to the appropriate read or write sets as applicable.
Object-oriented wrapper for your platform's file-descriptor set.
A templated, threadsafe message-queue class.
A Transport based on UDP.
virtual void process()
Called after a message is added.
dcm! – add UnusedChecking(_enum) below;
void(* AfterSocketCreationFuncPtr)(Socket s, int transportType, const char *file, int line)
IpVersion
An enumeration of IP versions.