Added capability to connect to DarkPlaces servers in QUAKE protocol mode.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@486 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
0b5e78fbea
commit
9594a8aaa7
1 changed files with 49 additions and 0 deletions
|
@ -1248,6 +1248,55 @@ void Datagram_SearchForHosts (qboolean xmit)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef SERVERONLY
|
#ifndef SERVERONLY
|
||||||
|
qsocket_t *Datagram_ConnectToDarkPlacesServer(netadr_t *nadr)
|
||||||
|
{ //QuakeWorld connection hit upon a DP server.
|
||||||
|
struct sockaddr_qstorage sendaddr;
|
||||||
|
qsocket_t *sock;
|
||||||
|
int newsock;
|
||||||
|
|
||||||
|
net_driverlevel = 1;
|
||||||
|
net_landriverlevel = 0;
|
||||||
|
|
||||||
|
//hrm. the server uses out port as well as ip... we connected with the qw port... so we need to swap them over
|
||||||
|
newsock = cls.socketip;
|
||||||
|
cls.socketip = dfunc.OpenSocket(0);
|
||||||
|
if (newsock == -1)
|
||||||
|
{
|
||||||
|
cls.socketip = newsock;
|
||||||
|
Con_Printf("Failed to initialse NQ transports\n");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
sock = NET_NewQSocket ();
|
||||||
|
if (sock == NULL)
|
||||||
|
{
|
||||||
|
Con_Printf("Failed to initialse NQ transports\n");
|
||||||
|
dfunc.CloseSocket(newsock);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
sock->socket = newsock;
|
||||||
|
sock->landriver = net_landriverlevel;
|
||||||
|
|
||||||
|
NetadrToSockadr(nadr, &sendaddr);
|
||||||
|
|
||||||
|
if (dfunc.Connect(newsock, &sendaddr) == -1)
|
||||||
|
{
|
||||||
|
Con_Printf("Failed to initialse NQ transports\n");
|
||||||
|
NET_FreeQSocket(sock);
|
||||||
|
dfunc.CloseSocket(newsock);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
Q_memcpy(&sock->addr, &sendaddr, sizeof(struct sockaddr_qstorage));
|
||||||
|
|
||||||
|
dfunc.GetNameFromAddr (&sendaddr, sock->address);
|
||||||
|
Con_Printf ("Connection accepted\n");
|
||||||
|
sock->lastMessageTime = SetNetTime();
|
||||||
|
|
||||||
|
return sock;
|
||||||
|
}
|
||||||
|
|
||||||
static qsocket_t *_Datagram_Connect (char *host)
|
static qsocket_t *_Datagram_Connect (char *host)
|
||||||
{
|
{
|
||||||
struct sockaddr_qstorage sendaddr;
|
struct sockaddr_qstorage sendaddr;
|
||||||
|
|
Loading…
Reference in a new issue