Merge pull request #1817 from jamesu/ipv6_pr

Preliminary IPV6 Support
This commit is contained in:
Areloch 2016-12-04 16:22:42 -06:00 committed by GitHub
commit a3740719b1
23 changed files with 1852 additions and 620 deletions

View file

@ -84,7 +84,7 @@ TelnetConsole::TelnetConsole()
{
Con::addConsumer(telnetCallback);
mAcceptSocket = InvalidSocket;
mAcceptSocket = NetSocket::INVALID;
mAcceptPort = -1;
mClientList = NULL;
mRemoteEchoEnabled = false;
@ -93,13 +93,13 @@ TelnetConsole::TelnetConsole()
TelnetConsole::~TelnetConsole()
{
Con::removeConsumer(telnetCallback);
if(mAcceptSocket != InvalidSocket)
if(mAcceptSocket != NetSocket::INVALID)
Net::closeSocket(mAcceptSocket);
TelnetClient *walk = mClientList, *temp;
while(walk)
{
temp = walk->nextClient;
if(walk->socket != InvalidSocket)
if(walk->socket != NetSocket::INVALID)
Net::closeSocket(walk->socket);
delete walk;
walk = temp;
@ -113,16 +113,20 @@ void TelnetConsole::setTelnetParameters(S32 port, const char *telnetPassword, co
mRemoteEchoEnabled = remoteEcho;
if(mAcceptSocket != InvalidSocket)
if(mAcceptSocket != NetSocket::INVALID)
{
Net::closeSocket(mAcceptSocket);
mAcceptSocket = InvalidSocket;
mAcceptSocket = NetSocket::INVALID;
}
mAcceptPort = port;
if(mAcceptPort != -1 && mAcceptPort != 0)
{
NetAddress address;
Net::getIdealListenAddress(&address);
address.port = mAcceptPort;
mAcceptSocket = Net::openSocket();
Net::bind(mAcceptSocket, mAcceptPort);
Net::bindAddress(address, mAcceptSocket);
Net::listen(mAcceptSocket, 4);
Net::setBlocking(mAcceptSocket, false);
@ -151,16 +155,17 @@ void TelnetConsole::process()
{
NetAddress address;
if(mAcceptSocket != InvalidSocket)
if(mAcceptSocket != NetSocket::INVALID)
{
// ok, see if we have any new connections:
NetSocket newConnection;
newConnection = Net::accept(mAcceptSocket, &address);
if(newConnection != InvalidSocket)
if(newConnection != NetSocket::INVALID)
{
Con::printf ("Telnet connection from %i.%i.%i.%i",
address.netNum[0], address.netNum[1], address.netNum[2], address.netNum[3]);
char buffer[256];
Net::addressToString(&address, buffer);
Con::printf("Telnet connection from %s", buffer);
TelnetClient *cl = new TelnetClient;
cl->socket = newConnection;
@ -201,7 +206,7 @@ void TelnetConsole::process()
if((err != Net::NoError && err != Net::WouldBlock) || numBytes == 0)
{
Net::closeSocket(client->socket);
client->socket = InvalidSocket;
client->socket = NetSocket::INVALID;
continue;
}
@ -274,7 +279,7 @@ void TelnetConsole::process()
if(client->state == DisconnectThisDude)
{
Net::closeSocket(client->socket);
client->socket = InvalidSocket;
client->socket = NetSocket::INVALID;
}
}
}
@ -312,7 +317,7 @@ void TelnetConsole::process()
TelnetClient *cl;
while((cl = *walk) != NULL)
{
if(cl->socket == InvalidSocket)
if(cl->socket == NetSocket::INVALID)
{
*walk = cl->nextClient;
delete cl;

View file

@ -151,8 +151,8 @@ TelnetDebugger::TelnetDebugger()
Con::addConsumer(debuggerConsumer);
mAcceptPort = -1;
mAcceptSocket = InvalidSocket;
mDebugSocket = InvalidSocket;
mAcceptSocket = NetSocket::INVALID;
mDebugSocket = NetSocket::INVALID;
mState = NotConnected;
mCurPos = 0;
@ -189,9 +189,9 @@ TelnetDebugger::~TelnetDebugger()
{
Con::removeConsumer(debuggerConsumer);
if(mAcceptSocket != InvalidSocket)
if(mAcceptSocket != NetSocket::INVALID)
Net::closeSocket(mAcceptSocket);
if(mDebugSocket != InvalidSocket)
if(mDebugSocket != NetSocket::INVALID)
Net::closeSocket(mDebugSocket);
}
@ -217,10 +217,10 @@ void TelnetDebugger::send(const char *str)
void TelnetDebugger::disconnect()
{
if ( mDebugSocket != InvalidSocket )
if ( mDebugSocket != NetSocket::INVALID )
{
Net::closeSocket(mDebugSocket);
mDebugSocket = InvalidSocket;
mDebugSocket = NetSocket::INVALID;
}
removeAllBreakpoints();
@ -236,16 +236,20 @@ void TelnetDebugger::setDebugParameters(S32 port, const char *password, bool wai
// if(port == mAcceptPort)
// return;
if(mAcceptSocket != InvalidSocket)
if(mAcceptSocket != NetSocket::INVALID)
{
Net::closeSocket(mAcceptSocket);
mAcceptSocket = InvalidSocket;
mAcceptSocket = NetSocket::INVALID;
}
mAcceptPort = port;
if(mAcceptPort != -1 && mAcceptPort != 0)
{
NetAddress address;
Net::getIdealListenAddress(&address);
address.port = mAcceptPort;
mAcceptSocket = Net::openSocket();
Net::bind(mAcceptSocket, mAcceptPort);
Net::bindAddress(address, mAcceptSocket);
Net::listen(mAcceptSocket, 4);
Net::setBlocking(mAcceptSocket, false);
@ -279,32 +283,33 @@ void TelnetDebugger::process()
{
NetAddress address;
if(mAcceptSocket != InvalidSocket)
if(mAcceptSocket != NetSocket::INVALID)
{
// ok, see if we have any new connections:
NetSocket newConnection;
newConnection = Net::accept(mAcceptSocket, &address);
if(newConnection != InvalidSocket && mDebugSocket == InvalidSocket)
if(newConnection != NetSocket::INVALID && mDebugSocket == NetSocket::INVALID)
{
Con::printf ("Debugger connection from %i.%i.%i.%i",
address.netNum[0], address.netNum[1], address.netNum[2], address.netNum[3]);
char buffer[256];
Net::addressToString(&address, buffer);
Con::printf("Debugger connection from %s", buffer);
mState = PasswordTry;
mDebugSocket = newConnection;
Net::setBlocking(newConnection, false);
}
else if(newConnection != InvalidSocket)
else if(newConnection != NetSocket::INVALID)
Net::closeSocket(newConnection);
}
// see if we have any input to process...
if(mDebugSocket == InvalidSocket)
if(mDebugSocket == NetSocket::INVALID)
return;
checkDebugRecv();
if(mDebugSocket == InvalidSocket)
if(mDebugSocket == NetSocket::INVALID)
removeAllBreakpoints();
}
@ -434,7 +439,7 @@ void TelnetDebugger::breakProcess()
{
Platform::sleep(10);
checkDebugRecv();
if(mDebugSocket == InvalidSocket)
if(mDebugSocket == NetSocket::INVALID)
{
mProgramPaused = false;
removeAllBreakpoints();