summaryrefslogtreecommitdiffstats
path: root/src/Net/ServerConnection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Net/ServerConnection.cpp')
-rw-r--r--src/Net/ServerConnection.cpp90
1 files changed, 0 insertions, 90 deletions
diff --git a/src/Net/ServerConnection.cpp b/src/Net/ServerConnection.cpp
deleted file mode 100644
index 1f01ce5..0000000
--- a/src/Net/ServerConnection.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * ServerConnection.cpp
- *
- * Copyright (C) 2008 Matthias Schiffer <matthias@gamezock.de>
- *
- * This program is free software: you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "ServerConnection.h"
-#include "FdManager.h"
-#include "IPAddress.h"
-
-#include <boost/thread/locks.hpp>
-
-#include <cstring>
-#include <cerrno>
-#include <sys/socket.h>
-#include <fcntl.h>
-
-namespace Mad {
-namespace Net {
-
-void ServerConnection::connectionHeaderReceiveHandler(const void *data, unsigned long length) {
- if(length != sizeof(ConnectionHeader))
- // Error... disconnect
- return;
-
- const ConnectionHeader *header = (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')
- daemon = true;
- else
- // Error... disconnect
- return;
-
- ConnectionHeader header2 = {'M', 'A', 'D', 0, 0, 1, 1, 0};
-
- enterReceiveLoop();
-
- rawSend((uint8_t*)&header2, sizeof(header2));
-}
-
-ServerConnection::ServerConnection(int sock0, const IPAddress &address, gnutls_dh_params_t dh_params, const std::string &x905CertFile, const std::string &x905KeyFile)
-: daemon(false) {
- boost::unique_lock<boost::shared_mutex> lock(stateLock);
-
- sock = sock0;
-
- peer = new IPAddress(address);
-
- gnutls_certificate_set_dh_params(x509_cred, dh_params);
- gnutls_certificate_set_x509_key_file(x509_cred, x905CertFile.c_str(), x905KeyFile.c_str(), GNUTLS_X509_FMT_PEM);
-
- gnutls_init(&session, GNUTLS_SERVER);
- gnutls_set_default_priority(session);
- gnutls_credentials_set(session, GNUTLS_CRD_CERTIFICATE, x509_cred);
- gnutls_transport_set_ptr(session, (gnutls_transport_ptr_t)sock);
-
- FdManager::get()->registerFd(sock, boost::bind(&ServerConnection::sendReceive, this, _1));
-
- state = CONNECT;
-
- lock.unlock();
-
- updateEvents();
-}
-
-}
-}