Due to a limitation in inet_addr(3) it was not possible to specify a
netmask value of 0xffffffff (INADDR_NONE). Fix by using inet_aton(3). Note it was possible to specify the same mask as the dotted quad 255.255.255.255 because of a later call to gethostbyname(3). [From FreeBSD]
This commit is contained in:
parent
943e24eb27
commit
0cb468118d
@ -1,4 +1,4 @@
|
|||||||
/* $NetBSD: route.c,v 1.78 2005/05/13 01:59:47 ginsbach Exp $ */
|
/* $NetBSD: route.c,v 1.79 2005/05/19 15:05:11 ginsbach Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1983, 1989, 1991, 1993
|
* Copyright (c) 1983, 1989, 1991, 1993
|
||||||
@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1983, 1989, 1991, 1993\n\
|
|||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)route.c 8.6 (Berkeley) 4/28/95";
|
static char sccsid[] = "@(#)route.c 8.6 (Berkeley) 4/28/95";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: route.c,v 1.78 2005/05/13 01:59:47 ginsbach Exp $");
|
__RCSID("$NetBSD: route.c,v 1.79 2005/05/19 15:05:11 ginsbach Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* not lint */
|
#endif /* not lint */
|
||||||
|
|
||||||
@ -1299,9 +1299,9 @@ badataddr:
|
|||||||
}
|
}
|
||||||
*t = '/';
|
*t = '/';
|
||||||
}
|
}
|
||||||
if (((val = inet_addr(s)) != INADDR_NONE) &&
|
if (inet_aton(s, &su->sin.sin_addr) &&
|
||||||
(which != RTA_DST || forcenet == 0)) {
|
(which != RTA_DST || forcenet == 0)) {
|
||||||
su->sin.sin_addr.s_addr = val;
|
val = su->sin.sin_addr.s_addr;
|
||||||
if (inet_lnaof(su->sin.sin_addr) != INADDR_ANY)
|
if (inet_lnaof(su->sin.sin_addr) != INADDR_ANY)
|
||||||
return (1);
|
return (1);
|
||||||
else {
|
else {
|
||||||
|
Loading…
Reference in New Issue
Block a user