X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=net_dgrm.c;h=ac8cfa6c6db871664fc06a22a4e579526e106381;hb=44bac8b331b5e48f29a18759496abaa27a52566c;hp=513c2561ec32201be33d66c524f03229f0f3309d;hpb=6c91eeab7d4703223d749d576bdced3e92fb6880;p=xonotic%2Fdarkplaces.git diff --git a/net_dgrm.c b/net_dgrm.c index 513c2561..ac8cfa6c 100644 --- a/net_dgrm.c +++ b/net_dgrm.c @@ -8,7 +8,7 @@ of the License, or (at your option) any later version. 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. @@ -55,6 +55,8 @@ unsigned long inet_addr(const char *cp); #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] @@ -75,7 +77,7 @@ struct { unsigned int length; unsigned int sequence; - byte data[MAX_DATAGRAM]; + qbyte data[MAX_DATAGRAM]; } packetBuffer; @@ -83,7 +85,7 @@ struct 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++) @@ -191,7 +193,7 @@ int Datagram_SendMessage (qsocket_t *sock, sizebuf_t *data) 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; @@ -224,7 +226,7 @@ int SendMessageNext (qsocket_t *sock) 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; @@ -257,7 +259,7 @@ int ReSendMessage (qsocket_t *sock) 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; @@ -299,7 +301,7 @@ int Datagram_SendUnreliableMessage (qsocket_t *sock, sizebuf_t *data) 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++; @@ -322,7 +324,7 @@ int Datagram_GetMessage (qsocket_t *sock) 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; @@ -423,7 +425,7 @@ int Datagram_GetMessage (qsocket_t *sock) { 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) { @@ -526,7 +528,7 @@ static void Test_Poll(void) int colors; int frags; int connectTime; - byte playerNumber; + qbyte playerNumber; net_landriverlevel = testDriver; @@ -767,6 +769,7 @@ int Datagram_Init (void) myDriverLevel = net_driverlevel; Cmd_AddCommand ("net_stats", NET_Stats_f); + Cvar_RegisterVariable (&cl_port); if (COM_CheckParm("-nolan")) return -1; @@ -887,7 +890,7 @@ static qsocket_t *_Datagram_CheckNewConnections (void) int activeNumber; int clientNumber; client_t *client; - + playerNumber = MSG_ReadByte(); activeNumber = -1; for (clientNumber = 0, client = svs.clients; clientNumber < svs.maxclients; clientNumber++, client++) @@ -1064,7 +1067,7 @@ static qsocket_t *_Datagram_CheckNewConnections (void) 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; @@ -1224,7 +1227,7 @@ static qsocket_t *_Datagram_Connect (char *host) if (dfunc.GetAddrFromName(host, &sendaddr) == -1) return NULL; - newsock = dfunc.OpenSocket (0); + newsock = dfunc.OpenSocket (cl_port.integer); if (newsock == -1) return NULL; @@ -1239,7 +1242,7 @@ static qsocket_t *_Datagram_Connect (char *host) goto ErrorReturn; // send the connection request - Con_Printf("trying...\n"); CL_UpdateScreen (); + Con_Printf("trying...\n");CL_UpdateScreen();CL_UpdateScreen(); start_time = net_time; for (reps = 0; reps < 3; reps++) @@ -1303,7 +1306,7 @@ static qsocket_t *_Datagram_Connect (char *host) while (ret == 0 && (SetNetTime() - start_time) < 2.5); if (ret) break; - Con_Printf("still trying...\n"); CL_UpdateScreen (); + Con_Printf("still trying...\n");CL_UpdateScreen();CL_UpdateScreen(); start_time = SetNetTime(); } @@ -1347,7 +1350,7 @@ static qsocket_t *_Datagram_Connect (char *host) 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