36 #ifndef _CONNECTION_ENDPOINT_HPP_INCLUDED
37 #define _CONNECTION_ENDPOINT_HPP_INCLUDED
43 #include <boost/algorithm/string.hpp>
44 #include <boost/shared_ptr.hpp>
60 static const char* ar[] = {
"UDP",
"TCP",
"SSL"};
103 static const char* ar[] = {0,
"PasswordChange",
"Request"};
135 for (; ci != ce; ++ci)
137 if (boost::algorithm::iequals( *ci, c))
return true;
177 class LocalSSLendpoint :
public LocalEndpoint
181 LocalSSLendpoint(
const std::string& Host,
unsigned short Port,
const LocalEndpointConfig& Config=LocalEndpointConfig())
182 : LocalEndpoint( Host, Port, Config ) {}
184 ConnectionType type()
const {
return SSL; }
222 class SSLcertificateInfo;
226 class RemoteSSLendpoint :
public RemoteEndpoint
229 RemoteSSLendpoint(
const std::string& Host,
unsigned short Port )
230 : RemoteEndpoint( Host, Port ), m_SSLinfo( NULL ) {}
232 RemoteSSLendpoint(
const std::string& Host,
unsigned short Port,
233 const SSLcertificateInfo *SSLinfo )
234 : RemoteEndpoint( Host, Port ), m_SSLinfo( SSLinfo ) {}
236 ConnectionType type()
const {
return SSL; }
239 const SSLcertificateInfo* SSLcertInfo()
const {
return m_SSLinfo; }
242 const SSLcertificateInfo *m_SSLinfo;
248 #endif // _CONNECTION_ENDPOINT_HPP_INCLUDED
std::string protocol
Definition: connectionEndpoint.hpp:109
LocalEndpoint(const std::string &Host, unsigned short Port, const LocalEndpointConfig &Config=LocalEndpointConfig())
Definition: connectionEndpoint.hpp:147
Definition: connectionEndpoint.hpp:55
void setCapability(const std::string &c)
Set a capability for this local endpoint configuration.
Definition: connectionEndpoint.hpp:127
the user is allowed make requests
Definition: connectionEndpoint.hpp:99
unsigned short m_port
Definition: connectionEndpoint.hpp:90
LocalEndpointConfig(const LocalEndpointConfig &o)
Copy constructor.
Definition: connectionEndpoint.hpp:115
time_t m_creationTime
time when object has been constructed
Definition: connectionEndpoint.hpp:160
the user is allowed to change his password
Definition: connectionEndpoint.hpp:98
LocalTCPendpoint(const std::string &Host, unsigned short Port, const LocalEndpointConfig &Config=LocalEndpointConfig())
Definition: connectionEndpoint.hpp:170
time_t m_connectionTime
Definition: connectionEndpoint.hpp:205
Definition: connectionEndpoint.hpp:54
EndPoint endpoint() const
Definition: connectionEndpoint.hpp:200
LocalEndpointConfig()
Default constructor.
Definition: connectionEndpoint.hpp:112
ConnectionType type() const
Definition: connectionEndpoint.hpp:173
virtual ConnectionType type() const =0
LocalEndpointConfig m_config
configuration for authorization checks
Definition: connectionEndpoint.hpp:159
ConnectionEndpoint(const std::string &Host, unsigned short Port)
Definition: connectionEndpoint.hpp:69
Base class for network endpoints.
Definition: connectionEndpoint.hpp:50
Definition: connectionEndpoint.hpp:66
Local connection endpoint configuration for authorization, connection based timeout, etc.
Definition: connectionEndpoint.hpp:94
std::vector< std::string > capabilities
Definition: connectionEndpoint.hpp:107
time_t connectionTime() const
Definition: connectionEndpoint.hpp:202
void operator=(const ConnectionEndpoint &)
Definition: connectionEndpoint.hpp:87
EndPoint
Definition: connectionEndpoint.hpp:64
Definition: connectionEndpoint.hpp:56
virtual EndPoint endpoint() const =0
boost::shared_ptr< LocalEndpoint > LocalEndpointR
Definition: connectionEndpoint.hpp:163
ProtocolCapability
Definition: connectionEndpoint.hpp:96
Remote unencrypted endpoint.
Definition: connectionEndpoint.hpp:212
virtual ConnectionType type() const =0
bool hasCapability(const std::string &c) const
Ask for a capability for this local endpoint configuration.
Definition: connectionEndpoint.hpp:132
time_t creationTime() const
Definition: connectionEndpoint.hpp:155
std::string socketIdentifier
Definition: connectionEndpoint.hpp:108
std::string m_host
Definition: connectionEndpoint.hpp:89
static const char * connectionTypeName(ConnectionType t)
Definition: connectionEndpoint.hpp:58
RemoteEndpoint(const std::string &Host, unsigned short Port)
Definition: connectionEndpoint.hpp:193
virtual ConnectionType type() const =0
LocalEndpointConfig(const std::string &socketIdentifier_)
Constructor.
Definition: connectionEndpoint.hpp:118
const std::string & host() const
Definition: connectionEndpoint.hpp:74
std::string toString() const
Definition: connectionEndpoint.hpp:79
static const char * protocolCapabilityName(ProtocolCapability c)
Definition: connectionEndpoint.hpp:101
Local unencrypted endpoint.
Definition: connectionEndpoint.hpp:167
boost::shared_ptr< RemoteEndpoint > RemoteEndpointR
Definition: connectionEndpoint.hpp:208
Definition: connectionEndpoint.hpp:65
Remote connection endpoint.
Definition: connectionEndpoint.hpp:190
virtual ~ConnectionEndpoint()
Definition: connectionEndpoint.hpp:72
void resetCapabilities()
Reset capabilities.
Definition: connectionEndpoint.hpp:122
ConnectionType
Definition: connectionEndpoint.hpp:53
ConnectionType type() const
Definition: connectionEndpoint.hpp:218
const LocalEndpointConfig & config() const
Definition: connectionEndpoint.hpp:156
EndPoint endpoint() const
Definition: connectionEndpoint.hpp:154
RemoteTCPendpoint(const std::string &Host, unsigned short Port)
Definition: connectionEndpoint.hpp:215
unsigned short port() const
Definition: connectionEndpoint.hpp:75
Local connection endpoints.
Definition: connectionEndpoint.hpp:144