]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - net_dgrm.c
refactored NET_SendToAll, it is debatable whether it is more readable or not, but...
[xonotic/darkplaces.git] / net_dgrm.c
index 66ec880da483b1ba4f135ab15934175870b490ba..b71f7f2a719d21ae612d8f4c592646edbcec38fd 100644 (file)
@@ -136,7 +136,7 @@ void NET_Ban_f (void)
                        break;
 
                case 2:
-                       if (Q_strcasecmp(Cmd_Argv(1), "off") == 0)
+                       if (strcasecmp(Cmd_Argv(1), "off") == 0)
                                banAddr = 0x00000000;
                        else
                                banAddr = inet_addr(Cmd_Argv(1));
@@ -330,7 +330,7 @@ int Datagram_GetMessage (qsocket_t *sock)
                if (length == 0)
                        break;
 
-               if (length == -1)
+               if ((int)length == -1)
                {
                        Con_Printf("Read error\n");
                        return -1;
@@ -491,7 +491,7 @@ void NET_Stats_f (void)
        else
        {
                for (s = net_activeSockets; s; s = s->next)
-                       if (Q_strcasecmp(Cmd_Argv(1), s->address) == 0)
+                       if (strcasecmp(Cmd_Argv(1), s->address) == 0)
                                break;
                if (s == NULL)
                        return;
@@ -526,7 +526,7 @@ static void Test_Poll(void)
        while (1)
        {
                len = dfunc.Read (testSocket, net_message.data, net_message.maxsize, &clientaddr);
-               if (len < sizeof(int))
+               if (len < (int)sizeof(int))
                        break;
 
                net_message.cursize = len;
@@ -536,7 +536,7 @@ static void Test_Poll(void)
                MSG_ReadLong();
                if (control == -1)
                        break;
-               if ((control & (~NETFLAG_LENGTH_MASK)) !=  NETFLAG_CTL)
+               if ((control & (~NETFLAG_LENGTH_MASK)) != (int)NETFLAG_CTL)
                        break;
                if ((control & NETFLAG_LENGTH_MASK) != len)
                        break;
@@ -581,7 +581,7 @@ static void Test_f (void)
        if (host && hostCacheCount)
        {
                for (n = 0; n < hostCacheCount; n++)
-                       if (Q_strcasecmp (host, hostcache[n].name) == 0)
+                       if (strcasecmp (host, hostcache[n].name) == 0)
                        {
                                if (hostcache[n].driver != myDriverLevel)
                                        continue;
@@ -650,7 +650,7 @@ static void Test2_Poll(void)
        name[0] = 0;
 
        len = dfunc.Read (test2Socket, net_message.data, net_message.maxsize, &clientaddr);
-       if (len < sizeof(int))
+       if (len < (int)sizeof(int))
                goto Reschedule;
 
        net_message.cursize = len;
@@ -660,7 +660,7 @@ static void Test2_Poll(void)
        MSG_ReadLong();
        if (control == -1)
                goto Error;
-       if ((control & (~NETFLAG_LENGTH_MASK)) !=  NETFLAG_CTL)
+       if ((control & (~NETFLAG_LENGTH_MASK)) != (int)NETFLAG_CTL)
                goto Error;
        if ((control & NETFLAG_LENGTH_MASK) != len)
                goto Error;
@@ -711,7 +711,7 @@ static void Test2_f (void)
        if (host && hostCacheCount)
        {
                for (n = 0; n < hostCacheCount; n++)
-                       if (Q_strcasecmp (host, hostcache[n].name) == 0)
+                       if (strcasecmp (host, hostcache[n].name) == 0)
                        {
                                if (hostcache[n].driver != myDriverLevel)
                                        continue;
@@ -841,16 +841,16 @@ static qsocket_t *_Datagram_CheckNewConnections (void)
        SZ_Clear(&net_message);
 
        len = dfunc.Read (acceptsock, net_message.data, net_message.maxsize, &clientaddr);
-       if (len < sizeof(int))
+       if (len < (int)sizeof(int))
                return NULL;
        net_message.cursize = len;
 
        MSG_BeginReading ();
        control = BigLong(*((int *)net_message.data));
        MSG_ReadLong();
-       
+
        // Messages starting by 0xFFFFFFFF are master server messages
-       if (control == 0xFFFFFFFF)
+       if ((unsigned int)control == 0xFFFFFFFF)
        {
                int responsesize = Master_HandleMessage();
                if (responsesize > 0)
@@ -860,7 +860,7 @@ static qsocket_t *_Datagram_CheckNewConnections (void)
                }
                return NULL;
        }
-       if ((control & (~NETFLAG_LENGTH_MASK)) !=  NETFLAG_CTL)
+       if ((control & (~NETFLAG_LENGTH_MASK)) != (int)NETFLAG_CTL)
                return NULL;
        if ((control & NETFLAG_LENGTH_MASK) != len)
                return NULL;
@@ -918,7 +918,7 @@ static qsocket_t *_Datagram_CheckNewConnections (void)
                MSG_WriteByte(&net_message, playerNumber);
                MSG_WriteString(&net_message, client->name);
                MSG_WriteLong(&net_message, client->colors);
-               MSG_WriteLong(&net_message, (int)client->edict->v.frags);
+               MSG_WriteLong(&net_message, (int)client->edict->v->frags);
                MSG_WriteLong(&net_message, (int)(net_time - client->netconnection->connecttime));
                MSG_WriteString(&net_message, client->netconnection->address);
                *((int *)net_message.data) = BigLong(NETFLAG_CTL | (net_message.cursize & NETFLAG_LENGTH_MASK));
@@ -1092,15 +1092,15 @@ qsocket_t *Datagram_CheckNewConnections (void)
 
 static qboolean Datagram_HandleServerInfo (struct qsockaddr *readaddr)
 {
-       struct qsockaddr myaddr;
+       //struct qsockaddr myaddr;
        int control;
        int c, n, i;
 
-       if (net_message.cursize < sizeof(int))
+       if (net_message.cursize < (int)sizeof(int))
                return false;
 
        // don't answer our own query
-       dfunc.GetSocketAddr (dfunc.controlSock, &myaddr);
+       //dfunc.GetSocketAddr (dfunc.controlSock, &myaddr);
        //if (dfunc.AddrCompare(readaddr, &myaddr) >= 0)
        //      return false;
 
@@ -1113,7 +1113,7 @@ static qboolean Datagram_HandleServerInfo (struct qsockaddr *readaddr)
        MSG_ReadLong();
        if (control == -1)
                return false;
-       if ((control & (~NETFLAG_LENGTH_MASK)) !=  NETFLAG_CTL)
+       if ((control & (~NETFLAG_LENGTH_MASK)) != (int)NETFLAG_CTL)
                return false;
        if ((control & NETFLAG_LENGTH_MASK) != net_message.cursize)
                return false;
@@ -1156,7 +1156,7 @@ static qboolean Datagram_HandleServerInfo (struct qsockaddr *readaddr)
        {
                if (i == n)
                        continue;
-               if (Q_strcasecmp (hostcache[n].name, hostcache[i].name) == 0)
+               if (strcasecmp (hostcache[n].name, hostcache[i].name) == 0)
                {
                        i = strlen(hostcache[n].name);
                        if (i < 15 && hostcache[n].name[i-1] > '8')
@@ -1211,7 +1211,7 @@ void Datagram_SearchForHosts (qboolean xmit)
 }
 
 
-static qboolean _Datagram_SearchForInetHosts (char *master)
+static qboolean _Datagram_SearchForInetHosts (const char *master)
 {
        qboolean result = false;
        struct qsockaddr masteraddr;
@@ -1228,32 +1228,27 @@ static qboolean _Datagram_SearchForInetHosts (char *master)
                                portnum = atoi (port + 1);
                        if (!portnum)
                                portnum = MASTER_PORT;
-                       Con_DPrintf("Datagram_SearchForInetHosts: sending %d byte message to master %s\n", net_message.cursize, master);
+                       Con_DPrintf("Datagram_SearchForInetHosts: sending %d byte message to master %s port %i\n", net_message.cursize, master, portnum);
                        dfunc.SetSocketPort (&masteraddr, portnum);
-                       dfunc.Send (net_message.data, net_message.cursize, &masteraddr);
+                       dfunc.Write (dfunc.controlSock, net_message.data, net_message.cursize, &masteraddr);
                }
        }
 
-       while ((ret = dfunc.Recv (net_message.data, net_message.maxsize, &readaddr)) > 0)
-       {
-               net_message.cursize = ret;
-               Con_DPrintf("Datagram_SearchForInetHosts: Recv received %d byte message\n", net_message.cursize);
-               Master_ParseServerList (&dfunc);
-       }
-       
        while ((ret = dfunc.Read (dfunc.controlSock, net_message.data, net_message.maxsize, &readaddr)) > 0)
        {
                net_message.cursize = ret;
                Con_DPrintf("Datagram_SearchForInetHosts: Read received %d byte message\n", net_message.cursize);
                if (Datagram_HandleServerInfo (&readaddr))
                        result = true;
+               else
+                       Master_ParseServerList (&dfunc);
        }
 
        return result;
 }
 
 
-qboolean Datagram_SearchForInetHosts (char *master)
+qboolean Datagram_SearchForInetHosts (const char *master)
 {
        qboolean result = false;
        for (net_landriverlevel = 0; net_landriverlevel < net_numlandrivers; net_landriverlevel++)
@@ -1264,12 +1259,12 @@ qboolean Datagram_SearchForInetHosts (char *master)
                        if (_Datagram_SearchForInetHosts (master))
                                result = true;
        }
-       
+
        return result;
 }
 
 
-static qsocket_t *_Datagram_Connect (char *host)
+static qsocket_t *_Datagram_Connect (const char *host)
 {
        struct qsockaddr sendaddr;
        struct qsockaddr readaddr;
@@ -1331,7 +1326,7 @@ static qsocket_t *_Datagram_Connect (char *host)
                                        continue;
                                }
 
-                               if (ret < sizeof(int))
+                               if (ret < (int)sizeof(int))
                                {
                                        ret = 0;
                                        continue;
@@ -1347,7 +1342,7 @@ static qsocket_t *_Datagram_Connect (char *host)
                                        ret = 0;
                                        continue;
                                }
-                               if ((control & (~NETFLAG_LENGTH_MASK)) !=  NETFLAG_CTL)
+                               if ((control & (~NETFLAG_LENGTH_MASK)) != (int)NETFLAG_CTL)
                                {
                                        ret = 0;
                                        continue;
@@ -1434,7 +1429,7 @@ ErrorReturn2:
        return NULL;
 }
 
-qsocket_t *Datagram_Connect (char *host)
+qsocket_t *Datagram_Connect (const char *host)
 {
        qsocket_t *ret = NULL;
 
@@ -1445,7 +1440,7 @@ qsocket_t *Datagram_Connect (char *host)
        return ret;
 }
 
-static void _Datagram_Heartbeat (char *master)
+static void _Datagram_Heartbeat (const char *master)
 {
        struct qsockaddr masteraddr;
        int portnum;
@@ -1462,10 +1457,11 @@ static void _Datagram_Heartbeat (char *master)
                portnum = MASTER_PORT;
        dfunc.SetSocketPort (&masteraddr, portnum);
 
+       // FIXME: this is the only use of UDP_Send in the entire engine, add a dfunc.acceptSock to get rid of this function!
        dfunc.Send (net_message.data, net_message.cursize, &masteraddr);
 }
 
-void Datagram_Heartbeat (char *master)
+void Datagram_Heartbeat (const char *master)
 {
        for (net_landriverlevel = 0; net_landriverlevel < net_numlandrivers; net_landriverlevel++)
                if (net_landrivers[net_landriverlevel].initialized)