/* * Copyright 2011-2022 Cuberite Contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // Server.h // Interfaces to the cServer class encapsulating the entire "server" #pragma once #include "Globals.h" #include "mbedTLS++/RsaPrivateKey.h" #ifdef _WIN32 #define SocketError WSAGetLastError() #else typedef int SOCKET; enum { INVALID_SOCKET = -1, }; #define closesocket close #define SocketError errno #endif class cServer { SOCKET m_ListenSocket; cRsaPrivateKey m_PrivateKey; ContiguousByteBuffer m_PublicKeyDER; UInt16 m_ConnectPort; public: cServer(void); int Init(UInt16 a_ListenPort, UInt16 a_ConnectPort); void Run(void); cRsaPrivateKey & GetPrivateKey(void) { return m_PrivateKey; } ContiguousByteBufferView GetPublicKeyDER (void) { return m_PublicKeyDER; } UInt16 GetConnectPort(void) const { return m_ConnectPort; } } ;