- sin = &((struct icmp *)arg)->icmp_ip.ip_dst;
- in_pcbnotify(&tcb, sin, inetctlerrmap[cmd], tcp_abort);
- in_pcbnotify(&udb, sin, inetctlerrmap[cmd], udp_abort);
+ in = &((struct icmp *)arg)->icmp_ip.ip_dst;
+ /* THIS IS VERY QUESTIONABLE, SHOULD HIT ALL PROTOCOLS */
+ if (cmd == PRC_REDIRECT_NET || cmd == PRC_REDIRECT_HOST) {
+ in_pcbnotify(&tcb, in, 0, in_rtchange);
+ in_pcbnotify(&udb, in, 0, in_rtchange);
+ } else {
+ in_pcbnotify(&tcb, in, (int)inetctlerrmap[cmd], tcp_abort);
+ in_pcbnotify(&udb, in, (int)inetctlerrmap[cmd], udp_abort);
+ }