avoid code dup when check broadcast addr in bind(2)
This commit is contained in:
parent
6d30f1a3db
commit
e4feda72ab
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: in_pcb.c,v 1.84 2003/07/21 07:02:35 itojun Exp $ */
|
||||
/* $NetBSD: in_pcb.c,v 1.85 2003/07/22 02:09:30 itojun Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
|
||||
@ -102,7 +102,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: in_pcb.c,v 1.84 2003/07/21 07:02:35 itojun Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: in_pcb.c,v 1.85 2003/07/22 02:09:30 itojun Exp $");
|
||||
|
||||
#include "opt_ipsec.h"
|
||||
|
||||
@ -252,15 +252,9 @@ in_pcbbind(v, nam, p)
|
||||
} else if (!in_nullhost(sin->sin_addr)) {
|
||||
sin->sin_port = 0; /* yech... */
|
||||
INADDR_TO_IA(sin->sin_addr, ia);
|
||||
if (ia == NULL) {
|
||||
TAILQ_FOREACH(ia, &in_ifaddr, ia_list) {
|
||||
if ((ia->ia_ifp->if_flags & IFF_BROADCAST) &&
|
||||
ia->ia_broadaddr.sin_len == sin->sin_len &&
|
||||
memcmp(&ia->ia_broadaddr, sin, sin->sin_len) == 0)
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
/* check for broadcast addresses */
|
||||
if (ia == NULL)
|
||||
ia = ifatoia(ifa_ifwithaddr(sintosa(sin)));
|
||||
if (ia == NULL)
|
||||
return (EADDRNOTAVAIL);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user