ndp.c (151472) | ndp.c (151473) |
---|---|
1/* $FreeBSD: head/usr.sbin/ndp/ndp.c 151472 2005-10-19 15:52:00Z suz $ */ | 1/* $FreeBSD: head/usr.sbin/ndp/ndp.c 151473 2005-10-19 15:58:23Z suz $ */ |
2/* $KAME: ndp.c,v 1.104 2003/06/27 07:48:39 itojun Exp $ */ 3 4/* 5 * Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions --- 869 unchanged lines hidden (view full) --- 879 exit(1); 880 case RTM_ADD: 881 rtm->rtm_addrs |= RTA_GATEWAY; 882 if (expire_time) { 883 rtm->rtm_rmx.rmx_expire = expire_time; 884 rtm->rtm_inits = RTV_EXPIRE; 885 } 886 rtm->rtm_flags |= (RTF_HOST | RTF_STATIC); | 2/* $KAME: ndp.c,v 1.104 2003/06/27 07:48:39 itojun Exp $ */ 3 4/* 5 * Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions --- 869 unchanged lines hidden (view full) --- 879 exit(1); 880 case RTM_ADD: 881 rtm->rtm_addrs |= RTA_GATEWAY; 882 if (expire_time) { 883 rtm->rtm_rmx.rmx_expire = expire_time; 884 rtm->rtm_inits = RTV_EXPIRE; 885 } 886 rtm->rtm_flags |= (RTF_HOST | RTF_STATIC); |
887#if 0 /* we don't support ipv6addr/128 type proxying */ |
|
887 if (rtm->rtm_flags & RTF_ANNOUNCE) { 888 rtm->rtm_flags &= ~RTF_HOST; 889 rtm->rtm_addrs |= RTA_NETMASK; 890 } | 888 if (rtm->rtm_flags & RTF_ANNOUNCE) { 889 rtm->rtm_flags &= ~RTF_HOST; 890 rtm->rtm_addrs |= RTA_NETMASK; 891 } |
892#endif |
|
891 /* FALLTHROUGH */ 892 case RTM_GET: 893 rtm->rtm_addrs |= RTA_DST; 894 } 895#define NEXTADDR(w, s) \ 896 if (rtm->rtm_addrs & (w)) { \ | 893 /* FALLTHROUGH */ 894 case RTM_GET: 895 rtm->rtm_addrs |= RTA_DST; 896 } 897#define NEXTADDR(w, s) \ 898 if (rtm->rtm_addrs & (w)) { \ |
897 bcopy((char *)&s, cp, sizeof(s)); cp += sizeof(s);} | 899 bcopy((char *)&s, cp, sizeof(s)); cp += SA_SIZE(&s);} |
898 899 NEXTADDR(RTA_DST, sin_m); 900 NEXTADDR(RTA_GATEWAY, sdl_m); | 900 901 NEXTADDR(RTA_DST, sin_m); 902 NEXTADDR(RTA_GATEWAY, sdl_m); |
903#if 0 /* we don't support ipv6addr/128 type proxying */ |
|
901 memset(&so_mask.sin6_addr, 0xff, sizeof(so_mask.sin6_addr)); 902 NEXTADDR(RTA_NETMASK, so_mask); | 904 memset(&so_mask.sin6_addr, 0xff, sizeof(so_mask.sin6_addr)); 905 NEXTADDR(RTA_NETMASK, so_mask); |
906#endif |
|
903 904 rtm->rtm_msglen = cp - (char *)&m_rtmsg; 905doit: 906 l = rtm->rtm_msglen; 907 rtm->rtm_seq = ++seq; 908 rtm->rtm_type = cmd; 909 if ((rlen = write(s, (char *)&m_rtmsg, l)) < 0) { 910 if (errno != ESRCH || cmd != RTM_DELETE) { --- 700 unchanged lines hidden --- | 907 908 rtm->rtm_msglen = cp - (char *)&m_rtmsg; 909doit: 910 l = rtm->rtm_msglen; 911 rtm->rtm_seq = ++seq; 912 rtm->rtm_type = cmd; 913 if ((rlen = write(s, (char *)&m_rtmsg, l)) < 0) { 914 if (errno != ESRCH || cmd != RTM_DELETE) { --- 700 unchanged lines hidden --- |