SCTP support.
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
#include <net/clientcontext.h>
|
||||
|
||||
ClientContext::ClientContext()
|
||||
: m_sockfd(INVALID_SOCKET), m_addrFamily(AF_INET), m_serverPort(0)
|
||||
: m_sockfd(INVALID_SOCKET), m_protocol(0), m_addrFamily(AF_INET), m_serverPort(0)
|
||||
{
|
||||
bzero(&m_clientSockaddr, sizeof(m_clientSockaddr));
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ ClientStateInit::Process(ClientThread &client)
|
||||
// if (context.GetServerPort() < 1024)
|
||||
// throw ClientException(ERR_SOCK_INVALID_PORT, 0);
|
||||
|
||||
context.SetSocket(socket(context.GetAddrFamily(), SOCK_STREAM, 0));
|
||||
context.SetSocket(socket(context.GetAddrFamily(), SOCK_STREAM, context.GetProtocol()));
|
||||
if (!IS_VALID_SOCKET(context.GetSocket()))
|
||||
throw ClientException(ERR_SOCK_CREATION_FAILED, SOCKET_ERRNO());
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ ClientThread::~ClientThread()
|
||||
|
||||
void
|
||||
ClientThread::Init(
|
||||
const string &serverAddress, unsigned serverPort, bool ipv6, const string &pwd, const string &playerName)
|
||||
const string &serverAddress, unsigned serverPort, bool ipv6, bool sctp, const string &pwd, const string &playerName)
|
||||
{
|
||||
if (IsRunning())
|
||||
{
|
||||
@@ -77,6 +77,7 @@ ClientThread::Init(
|
||||
|
||||
ClientContext &context = GetContext();
|
||||
|
||||
context.SetProtocol(sctp ? SOCKET_IPPROTO_SCTP : 0);
|
||||
context.SetAddrFamily(ipv6 ? AF_INET6 : AF_INET);
|
||||
context.SetServerAddr(serverAddress);
|
||||
context.SetServerPort(serverPort);
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#include <net/servercontext.h>
|
||||
|
||||
ServerContext::ServerContext()
|
||||
: m_sockfd(INVALID_SOCKET), m_addrFamily(AF_INET), m_serverPort(0)
|
||||
: m_sockfd(INVALID_SOCKET), m_protocol(0), m_addrFamily(AF_INET), m_serverPort(0)
|
||||
{
|
||||
bzero(&m_serverSockaddr, sizeof(m_serverSockaddr));
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ ServerThread::~ServerThread()
|
||||
}
|
||||
|
||||
void
|
||||
ServerThread::Init(unsigned serverPort, bool ipv6, const std::string &pwd,
|
||||
ServerThread::Init(unsigned serverPort, bool ipv6, bool sctp, const std::string &pwd,
|
||||
const GameData &gameData)
|
||||
{
|
||||
if (IsRunning())
|
||||
@@ -49,6 +49,7 @@ ServerThread::Init(unsigned serverPort, bool ipv6, const std::string &pwd,
|
||||
|
||||
ServerContext &context = GetContext();
|
||||
|
||||
context.SetProtocol(sctp ? SOCKET_IPPROTO_SCTP : 0);
|
||||
context.SetAddrFamily(ipv6 ? AF_INET6 : AF_INET);
|
||||
context.SetServerPort(serverPort);
|
||||
|
||||
@@ -106,7 +107,7 @@ ServerThread::Listen()
|
||||
// if (context.GetServerPort() < 1024)
|
||||
// throw ServerException(ERR_SOCK_INVALID_PORT, 0);
|
||||
|
||||
context.SetSocket(socket(context.GetAddrFamily(), SOCK_STREAM, 0));
|
||||
context.SetSocket(socket(context.GetAddrFamily(), SOCK_STREAM, context.GetProtocol()));
|
||||
if (!IS_VALID_SOCKET(context.GetSocket()))
|
||||
throw ServerException(ERR_SOCK_CREATION_FAILED, SOCKET_ERRNO());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user