diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2008-09-05 05:06:25 +0200 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2008-09-05 05:06:25 +0200 |
commit | b961ec7011bb50785dbbc271592b84f3ebae6432 (patch) | |
tree | a3623e83d5e65aa771cb9385d918589955a4886a /src/Net | |
parent | a3a41c71c50f95f95965165eff28d24a1be24453 (diff) | |
download | mad-b961ec7011bb50785dbbc271592b84f3ebae6432.tar mad-b961ec7011bb50785dbbc271592b84f3ebae6432.zip |
CertificateRequest angefangen (GSSAPI-Authentifikation)
Diffstat (limited to 'src/Net')
-rw-r--r-- | src/Net/ClientConnection.cpp | 1 | ||||
-rw-r--r-- | src/Net/ServerConnection.cpp | 35 |
2 files changed, 17 insertions, 19 deletions
diff --git a/src/Net/ClientConnection.cpp b/src/Net/ClientConnection.cpp index a3447a0..8705795 100644 --- a/src/Net/ClientConnection.cpp +++ b/src/Net/ClientConnection.cpp @@ -95,7 +95,6 @@ void ClientConnection::connect(const IPAddress &address, bool daemon0) throw(Con gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred); - gnutls_transport_set_lowat(session, 0); gnutls_transport_set_ptr(session, reinterpret_cast<gnutls_transport_ptr_t>(sock)); handshake(); diff --git a/src/Net/ServerConnection.cpp b/src/Net/ServerConnection.cpp index 4f1c78c..c011f66 100644 --- a/src/Net/ServerConnection.cpp +++ b/src/Net/ServerConnection.cpp @@ -31,17 +31,17 @@ void ServerConnection::connectionHeaderReceiveHandler(const void *data, unsigned if(length != sizeof(ConnectionHeader)) // Error... disconnect return; - + const ConnectionHeader *header = reinterpret_cast<const ConnectionHeader*>(data); - + if(header->m != 'M' || header->a != 'A' || header->d != 'D') // Error... disconnect return; - + if(header->protVerMin > 1 || header->protVerMax < 1) // Unsupported protocol... disconnect return; - + if(header->type == 'C') daemon = false; else if(header->type == 'D') @@ -49,37 +49,36 @@ void ServerConnection::connectionHeaderReceiveHandler(const void *data, unsigned else // Error... disconnect return; - + ConnectionHeader header2 = {'M', 'A', 'D', 0, 0, 1, 1, 0}; - + rawSend(reinterpret_cast<unsigned char*>(&header2), sizeof(header2)); - + enterReceiveLoop(); } ServerConnection::ServerConnection(int sock0, const IPAddress &address, gnutls_dh_params_t dh_params) : daemon(false) { sock = sock0; - + gnutls_anon_allocate_server_credentials(&anoncred); - - + + gnutls_anon_set_server_dh_params(anoncred, dh_params); - + peer = new IPAddress(address); - + gnutls_init(&session, GNUTLS_SERVER); - + gnutls_set_default_priority(session); - + const int kx_list[] = {GNUTLS_KX_ANON_DH, 0}; gnutls_kx_set_priority(session, kx_list); - + gnutls_credentials_set(session, GNUTLS_CRD_ANON, anoncred); - - gnutls_transport_set_lowat(session, 0); + gnutls_transport_set_ptr(session, reinterpret_cast<gnutls_transport_ptr_t>(sock)); - + handshake(); } |