--- trunk/darkstattype.c 2014/03/21 15:40:57 10 +++ trunk/darkstattype.c 2014/03/21 16:04:33 12 @@ -462,20 +462,20 @@ void decode_host_header_v3(void) void decode_host_header_v3(void) { - unsigned char addressfamily; - unsigned char ipv4address[4]; - unsigned char ipv6address[16]; - unsigned char macaddress[6]; - signed long lastseen; - unsigned char hostnamelen; - unsigned char hostname[256]; - unsigned long bytesin; - unsigned long bytesout; - unsigned char protosdata; - unsigned char tcpdata; - unsigned char udpdata; + unsigned char addressfamily; + unsigned char ipv4address[4]; + unsigned short ipv6address[8]; + unsigned char macaddress[6]; + signed long lastseen; + unsigned char hostnamelen; + unsigned char hostname[256]; + unsigned long bytesin; + unsigned long bytesout; + unsigned char protosdata; + unsigned char tcpdata; + unsigned char udpdata; - unsigned char i; + unsigned char i; indent(); @@ -496,41 +496,25 @@ void decode_host_header_v3(void) print_indentation(); printf("IPv6 address family (0x%02x)\n", addressfamily); - ipv6address[ 0] = read8u(); - ipv6address[ 1] = read8u(); - ipv6address[ 2] = read8u(); - ipv6address[ 3] = read8u(); - ipv6address[ 4] = read8u(); - ipv6address[ 5] = read8u(); - ipv6address[ 6] = read8u(); - ipv6address[ 7] = read8u(); - ipv6address[ 8] = read8u(); - ipv6address[ 9] = read8u(); - ipv6address[10] = read8u(); - ipv6address[11] = read8u(); - ipv6address[12] = read8u(); - ipv6address[13] = read8u(); - ipv6address[14] = read8u(); - ipv6address[15] = read8u(); + ipv6address[0] = read16u(); + ipv6address[1] = read16u(); + ipv6address[2] = read16u(); + ipv6address[3] = read16u(); + ipv6address[4] = read16u(); + ipv6address[5] = read16u(); + ipv6address[6] = read16u(); + ipv6address[7] = read16u(); print_indentation(); - printf("IPv6 address %02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x\n", - ipv6address[ 0], - ipv6address[ 1], - ipv6address[ 2], - ipv6address[ 3], - ipv6address[ 4], - ipv6address[ 5], - ipv6address[ 6], - ipv6address[ 7], - ipv6address[ 8], - ipv6address[ 9], - ipv6address[10], - ipv6address[11], - ipv6address[12], - ipv6address[13], - ipv6address[14], - ipv6address[15]); + printf("IPv6 address %04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n", + ipv6address[0], + ipv6address[1], + ipv6address[2], + ipv6address[3], + ipv6address[4], + ipv6address[5], + ipv6address[6], + ipv6address[7]); } // else if else { // unknown address family fprintf(stderr, "%s:%s:%ld: unknown address family = 0x%x, neither 0x%x nor 0x%x\n", progname, filename, ftell(file), addressfamily, 0x04, 0x06);