diff options
Diffstat (limited to 'src/Net/ServerConnection.h')
-rw-r--r-- | src/Net/ServerConnection.h | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/Net/ServerConnection.h b/src/Net/ServerConnection.h index 0fd5f0b..ff88ad3 100644 --- a/src/Net/ServerConnection.h +++ b/src/Net/ServerConnection.h @@ -27,38 +27,32 @@ namespace Mad { namespace Net { +class Listener; + class ServerConnection : public Connection { + friend class Listener; + private: IPAddress *peer; bool daemon; gnutls_anon_server_credentials_t anoncred; - gnutls_dh_params_t dh_params; void connectionHeaderReceiveHandler(const void *data, unsigned long length); protected: + ServerConnection(int sock0, const IPAddress &address, gnutls_dh_params_t dh_params); + virtual void connectionHeader() { rawReceive(sizeof(ConnectionHeader), sigc::mem_fun(this, &ServerConnection::connectionHeaderReceiveHandler)); } public: - ServerConnection() : daemon(false) { - gnutls_anon_allocate_server_credentials(&anoncred); - - gnutls_dh_params_init(&dh_params); - gnutls_dh_params_generate2(dh_params, 768); - gnutls_anon_set_server_dh_params(anoncred, dh_params); - } - virtual ~ServerConnection() { - gnutls_dh_params_deinit(dh_params); gnutls_anon_free_server_credentials(anoncred); } - void listen(const IPAddress &address) throw(ConnectionException); - bool isDaemonConnection() const {return daemon;} }; |