static qboolean _ServerList_CompareStr( const char *A, serverlist_maskop_t op, const char *B )
{
+ int i;
char bufferA[ 256 ], bufferB[ 256 ]; // should be more than enough
- strcpy( bufferA, A );
- strlwr( bufferA );
-
- strcpy( bufferB, B );
- strlwr( bufferB );
+ for (i = 0;i < (int)sizeof(bufferA)-1 && A[i];i++)
+ bufferA[i] = (A[i] >= 'A' && A[i] <= 'Z') ? (A[i] + 'a' - 'A') : A[i];
+ bufferA[i] = 0;
+ for (i = 0;i < (int)sizeof(bufferB)-1 && B[i];i++)
+ bufferB[i] = (B[i] >= 'A' && B[i] <= 'Z') ? (B[i] + 'a' - 'A') : B[i];
+ bufferB[i] = 0;
// Same here, also using an intermediate & final return would be more appropriate
// A info B mask
switch( op ) {
- case SLMO_CONTAINS:
+ case SLMO_CONTAINS:
return *bufferB && !!strstr( bufferA, bufferB ); // we want a real bool
case SLMO_NOTCONTAIN:
return !*bufferB || !strstr( bufferA, bufferB );
int NetConn_WriteString(lhnetsocket_t *mysocket, const char *string, const lhnetaddress_t *peeraddress)
{
// note this does not include the trailing NULL because we add that in the parser
- return NetConn_Write(mysocket, string, strlen(string), peeraddress);
+ return NetConn_Write(mysocket, string, (int)strlen(string), peeraddress);
}
int NetConn_SendReliableMessage(netconn_t *conn, sizebuf_t *data)
//#ifdef DEBUG
if (data->cursize == 0)
- Sys_Error("Datagram_SendMessage: zero length message\n");
+ {
+ Con_Printf ("Datagram_SendMessage: zero length message\n");
+ return -1;
+ }
if (data->cursize > (int)sizeof(conn->sendMessage))
- Sys_Error("Datagram_SendMessage: message too big (%u > %u)\n", data->cursize, sizeof(conn->sendMessage));
+ {
+ Con_Printf ("Datagram_SendMessage: message too big (%u > %u)\n", data->cursize, sizeof(conn->sendMessage));
+ return -1;
+ }
if (conn->canSend == false)
- Sys_Error("SendMessage: called with canSend == false\n");
+ {
+ Con_Printf ("SendMessage: called with canSend == false\n");
+ return -1;
+ }
//#endif
memcpy(conn->sendMessage, data->data, data->cursize);
//#ifdef DEBUG
if (data->cursize == 0)
- Sys_Error("Datagram_SendUnreliableMessage: zero length message\n");
+ {
+ Con_Printf ("Datagram_SendUnreliableMessage: zero length message\n");
+ return -1;
+ }
if (packetLen > (int)sizeof(sendbuffer))
- Sys_Error("Datagram_SendUnreliableMessage: message too big %u\n", data->cursize);
+ {
+ Con_Printf ("Datagram_SendUnreliableMessage: message too big %u\n", data->cursize);
+ return -1;
+ }
//#endif
header = (void *)sendbuffer;
{
lhnetaddress_t address;
lhnetsocket_t *s;
+ int port;
char addressstring2[1024];
- if (LHNETADDRESS_FromString(&address, addressstring, defaultport))
+
+ for (port = defaultport; port <= defaultport + 100; port++)
{
- if ((s = LHNET_OpenSocket_Connectionless(&address)))
+ if (LHNETADDRESS_FromString(&address, addressstring, port))
{
- sv_sockets[sv_numsockets++] = s;
- LHNETADDRESS_ToString(LHNET_AddressFromSocket(s), addressstring2, sizeof(addressstring2), true);
- Con_Printf("Server listening on address %s\n", addressstring2);
+ if ((s = LHNET_OpenSocket_Connectionless(&address)))
+ {
+ sv_sockets[sv_numsockets++] = s;
+ LHNETADDRESS_ToString(LHNET_AddressFromSocket(s), addressstring2, sizeof(addressstring2), true);
+ Con_Printf("Server listening on address %s\n", addressstring2);
+ break;
+ }
+ else
+ {
+ LHNETADDRESS_ToString(&address, addressstring2, sizeof(addressstring2), true);
+ Con_Printf("Server failed to open socket on address %s\n", addressstring2);
+ }
}
else
{
- LHNETADDRESS_ToString(&address, addressstring2, sizeof(addressstring2), true);
- Con_Printf("Server failed to open socket on address %s\n", addressstring2);
+ Con_Printf("Server unable to parse address %s\n", addressstring);
+ // if it cant parse one address, it wont be able to parse another for sure
+ break;
}
}
- else
- Con_Printf("Server unable to parse address %s\n", addressstring);
}
void NetConn_OpenServerPorts(int opennetports)
conn->lastMessageTime = realtime;
conn->timeout = realtime + net_messagetimeout.value;
conn->receiveSequence++;
- if( conn->receiveMessageLength + length <= sizeof( conn->receiveMessage ) ) {
+ if( conn->receiveMessageLength + length <= (int)sizeof( conn->receiveMessage ) ) {
memcpy(conn->receiveMessage + conn->receiveMessageLength, data, length);
conn->receiveMessageLength += length;
} else {
int left;
ptr = out_msg + length;
- left = out_size - length;
+ left = (int)out_size - length;
for (i = 0;i < (unsigned int)svs.maxclients;i++)
{