--- iptraf-3.0.1/src/ifstats.c.ipv6-fix 2008-06-05 13:40:33.000000000 +0200 +++ iptraf-3.0.1/src/ifstats.c 2008-06-05 13:41:05.000000000 +0200 @@ -294,7 +294,7 @@ void printifentry(struct iflist *ptmp, W printlargenum(ptmp->ip6total, win); wmove(win, target_row, 39 * COLS / 80); printlargenum(ptmp->noniptotal, win); - wmove(win, target_row, 29 * COLS / 80); + wmove(win, target_row, 49 * COLS / 80); wprintw(win, "%8lu", ptmp->badtotal); } @@ -329,10 +329,8 @@ void labelstats(WINDOW * win) wmove(win, 0, 32 * COLS / 80); wprintw(win, " IPv6 "); wmove(win, 0, 42 * COLS / 80); - wprintw(win, " IP "); - wmove(win, 0, 36 * COLS / 80); wprintw(win, " NonIP "); - wmove(win, 0, 51 * COLS / 80); + wmove(win, 0, 52 * COLS / 80); wprintw(win, " BadIP "); wmove(win, 0, 65 * COLS / 80); wprintw(win, " Activity "); --- iptraf-3.0.1/src/othptab.c.ipv6-fix 2008-06-05 13:42:10.000000000 +0200 +++ iptraf-3.0.1/src/othptab.c 2008-06-05 13:51:12.000000000 +0200 @@ -189,6 +189,11 @@ struct othptabent *add_othp_entry(struct ((struct icmphdr *) packet2)->type; new_entry->un.icmp.code = ((struct icmphdr *) packet2)->code; + } else if (protocol == IPPROTO_ICMPV6) { + new_entry->un.icmp6.type = + ((struct icmp6_hdr *) packet2)->icmp6_type; + new_entry->un.icmp6.code = + ((struct icmp6_hdr *) packet2)->icmp6_code; } else if (protocol == IPPROTO_UDP) { servlook(servnames, ((struct udphdr *) packet2)->source, IPPROTO_UDP, new_entry->un.udp.s_sname, 10); @@ -565,8 +570,8 @@ void printothpentry(struct othptable *ta case ICMP6_DST_UNREACH_ADMIN: strcpy(additional, "admin"); break; - case ICMP6_DST_UNREACH_NOTNEIGHBOR: - strcpy(additional, "not neigh"); + case ICMP6_DST_UNREACH_BEYONDSCOPE: + strcpy(additional, "not beyondsp"); break; case ICMP6_DST_UNREACH_ADDR: strcpy(additional, "unreach addr"); @@ -576,15 +581,15 @@ void printothpentry(struct othptable *ta break; } break; - case ICMP6_PACKET_TOO_BIG: + case ICMP6_PACKET_TOO_BIG: strcpy(description, "pkt too big"); break; - case ICMP6_TIME_EXCEEDED: - strcpy(description, "time exceeded"); - break; + case ICMP6_TIME_EXCEEDED: + strcpy(description, "time exceeded"); + break; case ICMP6_PARAM_PROB: - strcpy(description, "param prob"); - break; + strcpy(description, "param prob"); + break; case ICMP6_ECHO_REQUEST: strcpy(description, "echo req"); break; @@ -597,15 +602,6 @@ void printothpentry(struct othptable *ta case ND_ROUTER_ADVERT: strcpy(description, "router adv"); break; - case ICMP6_MEMBERSHIP_QUERY: - strcpy(description, "mbrship query"); - break; - case ICMP6_MEMBERSHIP_REPORT: - strcpy(description, "mbrship report"); - break; - case ICMP6_MEMBERSHIP_REDUCTION: - strcpy(description, "mbrship reduc"); - break; case ND_NEIGHBOR_SOLICIT: strcpy(description, "neigh sol"); break;