From: Juan B. <tu...@us...> - 2004-07-22 21:17:29
|
Update of /cvsroot/solidircd/Solid-dev/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1155/src Modified Files: Tag: Solid-030110 cloak.c Log Message: Fixed some hostmasking issues. Index: cloak.c =================================================================== RCS file: /cvsroot/solidircd/Solid-dev/src/cloak.c,v retrieving revision 1.35.2.1 retrieving revision 1.35.2.2 diff -C2 -d -r1.35.2.1 -r1.35.2.2 *** cloak.c 21 Jul 2004 13:23:50 -0000 1.35.2.1 --- cloak.c 22 Jul 2004 21:17:20 -0000 1.35.2.2 *************** *** 60,64 **** * */ ! int make_virthost (aClient *sptr, int f) { static char mask[128]; --- 60,64 ---- * */ ! void make_virthost (aClient *sptr, int f) { static char mask[128]; *************** *** 73,118 **** memset(mask, 0, 128); ! Remask: ! ! csum = Maskchecksum (s, strlen(s)); ! ! if (strlen (s) > 127) ! { ! s[128] = 0; ! } ! ! isdns = 0; ! for (i=0,e=0; i<strlen(s) ; i++) { ! if (isalpha(s[i])) { isdns = 1; break; ! } ! } ! if (isdns) { ! dot = strchr (s, '.'); ! ! if (dot==NULL) ! sprintf (mask, "%s-%d.%s",HOSTMASK,csum,s); ! else ! sprintf (mask, "%s-%d.%s",HOSTMASK,csum,dot+1); ! } else { strncpy(ipmask, s, sizeof(ipmask)); ipmask[sizeof(ipmask)-1]='\0'; while((dot = strrchr(ipmask, '.'))) *dot = '-'; ! sprintf (mask,"host-%s.c%d.usr.%s",ipmask,csum, DomainName); ! strcpy(s, mask); ! ! goto Remask; } - /* So I decided not to do this due to services - * banning this host instead of the IP - Tux` - * - * - */ - strncpy(sptr->user->realhost, sptr->sockhost, HOSTLEN + 1); strncpy (sptr->user->host, mask, HOSTLEN + 1); ! return (char )mask; } --- 73,109 ---- memset(mask, 0, 128); ! csum = Maskchecksum (s, strlen(s)); ! if (strlen (s) > 127) ! s[128] = 0; ! ! isdns = 0; ! for (i=0,e=0; i<strlen(s) ; i++) ! { ! if (isalpha(s[i])) ! { isdns = 1; break; ! } ! } ! if (isdns) ! { ! dot = strchr (s, '.'); ! if (dot==NULL) ! ircsprintf (mask, "%s-%d.%s",HOSTMASK,csum,s); ! else ! ircsprintf (mask, "%s-%d.%s",HOSTMASK,csum,dot+1); ! } ! else ! { strncpy(ipmask, s, sizeof(ipmask)); ipmask[sizeof(ipmask)-1]='\0'; while((dot = strrchr(ipmask, '.'))) *dot = '-'; ! ircsprintf (mask, "%s-%d.c%d.usr.%s", HOSTMASK, csum, ! Maskchecksum(ipmask, strlen(ipmask)), DomainName); } strncpy (sptr->user->host, mask, HOSTLEN + 1); ! } |