]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - net_main.c
-lXIE does not seem to be necessary, disabled (but left a comment incase anyone needs it)
[xonotic/darkplaces.git] / net_main.c
index b457a672da4c659c0f7e792981083f3c9e16468f..4450e235635671f4d790c321e92c2a64cabafbb5 100644 (file)
@@ -21,9 +21,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 #include "quakedef.h"
 
-qsocket_t      *net_activeSockets = NULL;
-qsocket_t      *net_freeSockets = NULL;
-int                    net_numsockets = 0;
+qsocket_t *net_activeSockets = NULL;
+//qsocket_t *net_freeSockets = NULL;
+//int net_numsockets = 0;
+mempool_t *net_mempool;
 
 qboolean       ipxAvailable = false;
 qboolean       tcpipAvailable = false;
@@ -89,15 +90,17 @@ qsocket_t *NET_NewQSocket (void)
 {
        qsocket_t       *sock;
 
-       if (net_freeSockets == NULL)
-               return NULL;
+//     if (net_freeSockets == NULL)
+//             return NULL;
 
        if (net_activeconnections >= svs.maxclients)
                return NULL;
 
        // get one from free list
-       sock = net_freeSockets;
-       net_freeSockets = sock->next;
+//     sock = net_freeSockets;
+//     net_freeSockets = sock->next;
+       // LordHavoc: sockets are dynamically allocated now
+       sock = Mem_Alloc(net_mempool, sizeof(qsocket_t));
 
        // add it to active list
        sock->next = net_activeSockets;
@@ -144,9 +147,11 @@ void NET_FreeQSocket(qsocket_t *sock)
        }
 
        // add it to free list
-       sock->next = net_freeSockets;
-       net_freeSockets = sock;
-       sock->disconnected = true;
+//     sock->next = net_freeSockets;
+//     net_freeSockets = sock;
+//     sock->disconnected = true;
+       // LordHavoc: sockets are dynamically allocated now
+       Mem_Free(sock);
 }
 
 
@@ -556,7 +561,7 @@ int NET_SendMessage (qsocket_t *sock, sizebuf_t *data)
        r = sfunc.QSendMessage(sock, data);
        if (r == 1 && sock->driver)
                messagesSent++;
-       
+
        return r;
 }
 
@@ -695,7 +700,8 @@ void NET_Init (void)
 {
        int                     i;
        int                     controlSocket;
-       qsocket_t       *s;
+       // LordHavoc: sockets are dynamically allocated now
+       //qsocket_t     *s;
 
        i = COM_CheckParm ("-port");
        if (!i)
@@ -712,24 +718,30 @@ void NET_Init (void)
        }
        net_hostport = DEFAULTnet_hostport;
 
-       if (COM_CheckParm("-listen") || cls.state == ca_dedicated)
+       if (COM_CheckParm("-listen") || cls.state == ca_dedicated || gamemode == GAME_BLOODBATH)
                listening = true;
-       net_numsockets = svs.maxclientslimit;
-       if (cls.state != ca_dedicated)
-               net_numsockets++;
+       // LordHavoc: sockets are dynamically allocated now
+       //net_numsockets = svs.maxclientslimit;
+       //if (cls.state != ca_dedicated)
+       //      net_numsockets++;
 
        SetNetTime();
 
+       net_mempool = Mem_AllocPool("qsocket");
+       // LordHavoc: sockets are dynamically allocated now
+       /*
+       s = Mem_Alloc(net_mempool, net_numsockets * sizeof(qsocket_t));
        for (i = 0; i < net_numsockets; i++)
        {
-               s = (qsocket_t *)Hunk_AllocName(sizeof(qsocket_t), "qsocket");
                s->next = net_freeSockets;
                net_freeSockets = s;
                s->disconnected = true;
+               s++;
        }
+       */
 
        // allocate space for network message buffer
-       SZ_Alloc (&net_message, NET_MAXMESSAGE);
+       SZ_Alloc (&net_message, NET_MAXMESSAGE, "net_message");
 
        Cvar_RegisterVariable (&net_messagetimeout);
        Cvar_RegisterVariable (&hostname);
@@ -783,6 +795,8 @@ void                NET_Shutdown (void)
                        net_drivers[net_driverlevel].initialized = false;
                }
        }
+
+       Mem_FreePool(&net_mempool);
 }