On Sat, Jun 24, 2017 at 07:09:20AM +0200, Stefan Sperling wrote:
> ok?
OK bluhm@
>
> Index: ifconfig.c
> ===================================================================
> RCS file: /cvs/src/sbin/ifconfig/ifconfig.c,v
> retrieving revision 1.344
> diff -u -p -r1.344 ifconfig.c
> --- ifconfig.c 8 Jun 2017 19:23:39 -0000 1.344
> +++ ifconfig.c 24 Jun 2017 04:54:17 -0000
> @@ -803,9 +803,13 @@ nextarg:
> /*
> * Aggregatable address architecture defines all prefixes
> * are 64. So, it is convenient to set prefixlen to 64 if
> - * it is not specified.
> + * it is not specified. If we are setting a destination
> + * address on a point-to-point interface, 128 is required.
> */
> - setifprefixlen("64", 0);
> + if (setipdst && (flags & IFF_POINTOPOINT))
> + setifprefixlen("128", 0);
> + else
> + setifprefixlen("64", 0);
> /* in6_getprefix("64", MASK) if MASK is available here... */
> }
>
> @@ -1241,6 +1245,7 @@ void
> setifdstaddr(const char *addr, int param)
> {
> setaddr++;
> + setipdst++;
> afp->af_getaddr(addr, DSTADDR);
> }
>