summaryrefslogtreecommitdiffstats
path: root/sbin/ipfw
diff options
context:
space:
mode:
authormelifaro <melifaro@FreeBSD.org>2014-08-13 06:39:44 +0000
committermelifaro <melifaro@FreeBSD.org>2014-08-13 06:39:44 +0000
commitcb5593124f9c98d6a52de009f7c611954f79ec51 (patch)
tree9e5294922182669e92f810259c3254467e5e3cf8 /sbin/ipfw
parent6f37722ac8b0146dec810cdc040abf4f5416e66d (diff)
downloadFreeBSD-src-cb5593124f9c98d6a52de009f7c611954f79ec51.zip
FreeBSD-src-cb5593124f9c98d6a52de009f7c611954f79ec51.tar.gz
Update op3 cmds.
Diffstat (limited to 'sbin/ipfw')
-rw-r--r--sbin/ipfw/ipfw2.c44
1 files changed, 10 insertions, 34 deletions
diff --git a/sbin/ipfw/ipfw2.c b/sbin/ipfw/ipfw2.c
index 45dae27..f09375f 100644
--- a/sbin/ipfw/ipfw2.c
+++ b/sbin/ipfw/ipfw2.c
@@ -593,6 +593,16 @@ do_set3(int optname, ip_fw3_opheader *op3, uintptr_t optlen)
return (0);
}
+/*
+ * do_get3 - pass ipfw control cmd to kernel
+ * @optname: option name
+ * @optval: pointer to option data
+ * @optlen: pointer to option length
+ *
+ * Assumes op3 header is already embedded.
+ * Calls getsockopt() with IP_FW3 as kernel-visible opcode.
+ * Returns 0 on success or errno otherwise.
+ */
int
do_get3(int optname, ip_fw3_opheader *op3, size_t *optlen)
{
@@ -619,40 +629,6 @@ do_get3(int optname, ip_fw3_opheader *op3, size_t *optlen)
return (error);
}
-/*
- * do_setcmd3 - pass ipfw control cmd to kernel
- * @optname: option name
- * @optval: pointer to option data
- * @optlen: option length
- *
- * Function encapsulates option value in IP_FW3 socket option
- * and calls setsockopt().
- * Function returns 0 on success or -1 otherwise.
- */
-static int
-do_setcmd3(int optname, void *optval, socklen_t optlen)
-{
- socklen_t len;
- ip_fw3_opheader *op3;
-
- if (co.test_only)
- return (0);
-
- if (ipfw_socket == -1)
- ipfw_socket = socket(AF_INET, SOCK_RAW, IPPROTO_RAW);
- if (ipfw_socket < 0)
- err(EX_UNAVAILABLE, "socket");
-
- len = sizeof(ip_fw3_opheader) + optlen;
- op3 = alloca(len);
- /* Zero reserved fields */
- memset(op3, 0, sizeof(ip_fw3_opheader));
- memcpy(op3 + 1, optval, optlen);
- op3->opcode = optname;
-
- return setsockopt(ipfw_socket, IPPROTO_IP, IP_FW3, op3, len);
-}
-
/**
* match_token takes a table and a string, returns the value associated
* with the string (-1 in case of failure).
OpenPOWER on IntegriCloud