summaryrefslogtreecommitdiffstats
path: root/src/Net
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2008-09-05 05:06:25 +0200
committerMatthias Schiffer <matthias@gamezock.de>2008-09-05 05:06:25 +0200
commitb961ec7011bb50785dbbc271592b84f3ebae6432 (patch)
treea3623e83d5e65aa771cb9385d918589955a4886a /src/Net
parenta3a41c71c50f95f95965165eff28d24a1be24453 (diff)
downloadmad-b961ec7011bb50785dbbc271592b84f3ebae6432.tar
mad-b961ec7011bb50785dbbc271592b84f3ebae6432.zip
CertificateRequest angefangen (GSSAPI-Authentifikation)
Diffstat (limited to 'src/Net')
-rw-r--r--src/Net/ClientConnection.cpp1
-rw-r--r--src/Net/ServerConnection.cpp35
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();
}