quick draft fix of ip_cloaking to make module work with ipv6 ips, cleanup later

This commit is contained in:
Valery Yatsko 2008-07-28 10:06:01 +04:00
parent 8acef9de29
commit 3f46cd0007
1 changed files with 15 additions and 1 deletions

View File

@ -100,10 +100,17 @@ do_host_cloak_ip(const char *inbuf, char *outbuf)
char *tptr; char *tptr;
unsigned int accum = get_string_weighted_entropy(inbuf); unsigned int accum = get_string_weighted_entropy(inbuf);
char buf[HOSTLEN]; char buf[HOSTLEN];
int ipv6 = 0;
strncpy(buf, inbuf, HOSTLEN); strncpy(buf, inbuf, HOSTLEN);
tptr = strrchr(buf, '.'); tptr = strrchr(buf, '.');
if (tptr == NULL)
{
tptr = strrchr(buf, ':');
ipv6 = 1;
}
if (tptr == NULL) if (tptr == NULL)
{ {
strncpy(outbuf, inbuf, HOSTLEN); strncpy(outbuf, inbuf, HOSTLEN);
@ -112,7 +119,14 @@ do_host_cloak_ip(const char *inbuf, char *outbuf)
*tptr++ = '\0'; *tptr++ = '\0';
snprintf(outbuf, HOSTLEN, "%s.%x", buf, accum); if(ipv6)
{
snprintf(outbuf, HOSTLEN, "%s:%x", buf, accum);
}
else
{
snprintf(outbuf, HOSTLEN, "%s.%x", buf, accum);
}
} }
static void static void