disable some ipfw match options when compiling in userspace
This commit is contained in:
parent
d0f65d47ec
commit
f783a35ced
@ -370,7 +370,7 @@ iface_match(struct ifnet *ifp, ipfw_insn_if *cmd, struct ip_fw_chain *chain, uin
|
|||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
#ifdef __FreeBSD__ /* and OSX too ? */
|
#if !defined(USERSPACE) && defined(__FreeBSD__) /* and OSX too ? */
|
||||||
struct ifaddr *ia;
|
struct ifaddr *ia;
|
||||||
|
|
||||||
if_addr_rlock(ifp);
|
if_addr_rlock(ifp);
|
||||||
@ -413,7 +413,7 @@ iface_match(struct ifnet *ifp, ipfw_insn_if *cmd, struct ip_fw_chain *chain, uin
|
|||||||
static int
|
static int
|
||||||
verify_path(struct in_addr src, struct ifnet *ifp, u_int fib)
|
verify_path(struct in_addr src, struct ifnet *ifp, u_int fib)
|
||||||
{
|
{
|
||||||
#ifndef __FreeBSD__
|
#if defined(USERSPACE) || !defined(__FreeBSD__)
|
||||||
return 0;
|
return 0;
|
||||||
#else
|
#else
|
||||||
struct route ro;
|
struct route ro;
|
||||||
@ -664,6 +664,9 @@ static int
|
|||||||
check_uidgid(ipfw_insn_u32 *insn, struct ip_fw_args *args, int *ugid_lookupp,
|
check_uidgid(ipfw_insn_u32 *insn, struct ip_fw_args *args, int *ugid_lookupp,
|
||||||
struct ucred **uc)
|
struct ucred **uc)
|
||||||
{
|
{
|
||||||
|
#if defined(USERSPACE)
|
||||||
|
return 0; // not supported in userspace
|
||||||
|
#else
|
||||||
#ifndef __FreeBSD__
|
#ifndef __FreeBSD__
|
||||||
/* XXX */
|
/* XXX */
|
||||||
return cred_check(insn, proto, oif,
|
return cred_check(insn, proto, oif,
|
||||||
@ -766,6 +769,7 @@ check_uidgid(ipfw_insn_u32 *insn, struct ip_fw_args *args, int *ugid_lookupp,
|
|||||||
match = ((*uc)->cr_prison->pr_id == (int)insn->d[0]);
|
match = ((*uc)->cr_prison->pr_id == (int)insn->d[0]);
|
||||||
return (match);
|
return (match);
|
||||||
#endif /* __FreeBSD__ */
|
#endif /* __FreeBSD__ */
|
||||||
|
#endif /* not supported in userspace */
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1464,6 +1468,7 @@ do { \
|
|||||||
key = htonl(dst_port);
|
key = htonl(dst_port);
|
||||||
else if (v == 3)
|
else if (v == 3)
|
||||||
key = htonl(src_port);
|
key = htonl(src_port);
|
||||||
|
#ifndef USERSPACE
|
||||||
else if (v == 4 || v == 5) {
|
else if (v == 4 || v == 5) {
|
||||||
check_uidgid(
|
check_uidgid(
|
||||||
(ipfw_insn_u32 *)cmd,
|
(ipfw_insn_u32 *)cmd,
|
||||||
@ -1483,6 +1488,7 @@ do { \
|
|||||||
#endif /* !__FreeBSD__ */
|
#endif /* !__FreeBSD__ */
|
||||||
key = htonl(key);
|
key = htonl(key);
|
||||||
} else
|
} else
|
||||||
|
#endif /* !USERSPACE */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
match = ipfw_lookup_table(chain,
|
match = ipfw_lookup_table(chain,
|
||||||
@ -1946,6 +1952,7 @@ do { \
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case O_SOCKARG: {
|
case O_SOCKARG: {
|
||||||
|
#ifndef USERSPACE /* not supported in userspace */
|
||||||
struct inpcb *inp = args->inp;
|
struct inpcb *inp = args->inp;
|
||||||
struct inpcbinfo *pi;
|
struct inpcbinfo *pi;
|
||||||
|
|
||||||
@ -1986,6 +1993,7 @@ do { \
|
|||||||
match = 1;
|
match = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif /* !USERSPACE */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user