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.
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
#include "quakedef.h"
#include "net_dgrm.h"
+cvar_t cl_port = {CVAR_SAVE, "cl_port", "0"};
+
// these two macros are to make the code more readable
#define sfunc net_landrivers[sock->landriver]
#define dfunc net_landrivers[net_landriverlevel]
{
unsigned int length;
unsigned int sequence;
- byte data[MAX_DATAGRAM];
+ qbyte data[MAX_DATAGRAM];
} packetBuffer;
char *StrAddr (struct qsockaddr *addr)
{
static char buf[34];
- byte *p = (byte *)addr;
+ qbyte *p = (qbyte *)addr;
int n;
for (n = 0; n < 16; n++)
sock->canSend = false;
- if (sfunc.Write (sock->socket, (byte *)&packetBuffer, packetLen, &sock->addr) == -1)
+ if (sfunc.Write (sock->socket, (qbyte *)&packetBuffer, packetLen, &sock->addr) == -1)
return -1;
sock->lastSendTime = net_time;
sock->sendNext = false;
- if (sfunc.Write (sock->socket, (byte *)&packetBuffer, packetLen, &sock->addr) == -1)
+ if (sfunc.Write (sock->socket, (qbyte *)&packetBuffer, packetLen, &sock->addr) == -1)
return -1;
sock->lastSendTime = net_time;
sock->sendNext = false;
- if (sfunc.Write (sock->socket, (byte *)&packetBuffer, packetLen, &sock->addr) == -1)
+ if (sfunc.Write (sock->socket, (qbyte *)&packetBuffer, packetLen, &sock->addr) == -1)
return -1;
sock->lastSendTime = net_time;
packetBuffer.sequence = BigLong(sock->unreliableSendSequence++);
memcpy (packetBuffer.data, data->data, data->cursize);
- if (sfunc.Write (sock->socket, (byte *)&packetBuffer, packetLen, &sock->addr) == -1)
+ if (sfunc.Write (sock->socket, (qbyte *)&packetBuffer, packetLen, &sock->addr) == -1)
return -1;
packetsSent++;
while(1)
{
- length = sfunc.Read (sock->socket, (byte *)&packetBuffer, NET_DATAGRAMSIZE, &readaddr);
+ length = sfunc.Read (sock->socket, (qbyte *)&packetBuffer, NET_DATAGRAMSIZE, &readaddr);
// if ((rand() & 255) > 220)
// continue;
{
packetBuffer.length = BigLong(NET_HEADERSIZE | NETFLAG_ACK);
packetBuffer.sequence = BigLong(sequence);
- sfunc.Write (sock->socket, (byte *)&packetBuffer, NET_HEADERSIZE, &readaddr);
+ sfunc.Write (sock->socket, (qbyte *)&packetBuffer, NET_HEADERSIZE, &readaddr);
if (sequence != sock->receiveSequence)
{
int colors;
int frags;
int connectTime;
- byte playerNumber;
+ qbyte playerNumber;
net_landriverlevel = testDriver;
myDriverLevel = net_driverlevel;
Cmd_AddCommand ("net_stats", NET_Stats_f);
+ Cvar_RegisterVariable (&cl_port);
if (COM_CheckParm("-nolan"))
return -1;
int activeNumber;
int clientNumber;
client_t *client;
-
+
playerNumber = MSG_ReadByte();
activeNumber = -1;
for (clientNumber = 0, client = svs.clients; clientNumber < svs.maxclients; clientNumber++, client++)
return NULL;
}
- // everything is allocated, just fill in the details
+ // everything is allocated, just fill in the details
sock->socket = newsock;
sock->landriver = net_landriverlevel;
sock->addr = clientaddr;
if (dfunc.GetAddrFromName(host, &sendaddr) == -1)
return NULL;
- newsock = dfunc.OpenSocket (0);
+ newsock = dfunc.OpenSocket (cl_port.integer);
if (newsock == -1)
return NULL;
dfunc.GetNameFromAddr (&sendaddr, sock->address);
- Con_Printf ("Connection accepted\n");
+ Con_Printf ("Connection accepted to %s\n", sock->address);
sock->lastMessageTime = SetNetTime();
// switch the connection to the specified address