All pastes #905504 Raw Edit

Stuff

public c v1 · immutable
·published 2008-02-15 20:42 UTC
rendered paste body
void G_admin_parse_ip( int *ipnum, int *net, char *ip ){	char tempIp[18];	char *tptr;	char newIp[18] = "255.255.255.255/32";	int int1;	int int2;	int int3;	int int4;	Q_strncpyz( tempIp, ip, sizeof( tempIp ) );	if (strlen(tempIp) == 0) // blank ip, don't ban anyone.	{		int1 = int2 = int3 = int4 = (int) 0;		*net = (int) 32;	}	else	{		tptr = strtok(tempIp, ".");		if (tptr == NULL)		{			int1 = int2 = int3 = int4 = (int) 0;				*net = (int) 32;		}		else		{			int1 = atoi(tptr);				tptr = strtok(NULL, ".");			if (tptr == NULL)			{				int2 = int3 = int4 = (int) 0;				*net = (int) 8;			}			else			{				int2 = atoi(tptr);				tptr = strtok(NULL, ".");				if (tptr == NULL)				{					int3 = int4 = (int) 0;					*net = (int) 16;				}				else				{					int3 = atoi(tptr);					tptr = strtok(NULL, "/");					if (tptr == NULL)					{						int4 = (int) 0;						*net = (int) 24;					}					else					{						int4 = atoi(tptr);						tptr = strtok(NULL, "/");						if (tptr == NULL)						{							*net = (int) 32;						}						else						{							*net = atoi(tptr);						}					}				}			}		}	}	if ( (int1>=0 && int1<=255) && (int2>=0 && int2<=255) && (int2>=0 && int2<=255) && (int2>=0 && int2<=255) )	{		*ipnum = (int) (int1<<24) + (int2<<16) + (int3<<8) + (int4);	}	else	{		*ipnum = (int) 0;		int1 = (int) 0;		int2 = (int) 0;		int3 = (int) 0;		int4 = (int) 0;	}	if ( *net > 32 || *net < 0 )	{		*net = (int) 32;	}	if (!(*net == 32))	{		Com_sprintf( newIp, sizeof(newIp), "%d.%d.%d.%d/%d", int1, int2, int3, int4, *net );	}	else	{		Com_sprintf( newIp, sizeof(newIp), "%d.%d.%d.%d", int1, int2, int3, int4 );	}	ip = newIp;	return;}