summaryrefslogtreecommitdiffstats
path: root/contrib/ipfilter/lib/remove_poolnode.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ipfilter/lib/remove_poolnode.c')
-rw-r--r--contrib/ipfilter/lib/remove_poolnode.c27
1 files changed, 12 insertions, 15 deletions
diff --git a/contrib/ipfilter/lib/remove_poolnode.c b/contrib/ipfilter/lib/remove_poolnode.c
index c80ff70..0b78118 100644
--- a/contrib/ipfilter/lib/remove_poolnode.c
+++ b/contrib/ipfilter/lib/remove_poolnode.c
@@ -1,11 +1,11 @@
/* $FreeBSD$ */
/*
- * Copyright (C) 2003 by Darren Reed.
+ * Copyright (C) 2012 by Darren Reed.
*
* See the IPFILTER.LICENCE file for details on licencing.
*
- * $Id: remove_poolnode.c,v 1.3.2.1 2006/06/16 17:21:16 darrenr Exp $
+ * $Id$
*/
#include <fcntl.h>
@@ -14,21 +14,18 @@
#include "netinet/ip_lookup.h"
#include "netinet/ip_pool.h"
-static int poolfd = -1;
-
-int remove_poolnode(unit, name, node, iocfunc)
-int unit;
-char *name;
-ip_pool_node_t *node;
-ioctlfunc_t iocfunc;
+int
+remove_poolnode(unit, name, node, iocfunc)
+ int unit;
+ char *name;
+ ip_pool_node_t *node;
+ ioctlfunc_t iocfunc;
{
ip_pool_node_t pn;
iplookupop_t op;
- if ((poolfd == -1) && ((opts & OPT_DONOTHING) == 0))
- poolfd = open(IPLOOKUP_NAME, O_RDWR);
- if ((poolfd == -1) && ((opts & OPT_DONOTHING) == 0))
+ if (pool_open() == -1)
return -1;
op.iplo_unit = unit;
@@ -46,10 +43,10 @@ ioctlfunc_t iocfunc;
pn.ipn_info = node->ipn_info;
strncpy(pn.ipn_name, node->ipn_name, sizeof(pn.ipn_name));
- if ((*iocfunc)(poolfd, SIOCLOOKUPDELNODE, &op)) {
+ if (pool_ioctl(iocfunc, SIOCLOOKUPDELNODE, &op)) {
if ((opts & OPT_DONOTHING) == 0) {
- perror("remove_pool:SIOCLOOKUPDELNODE");
- return -1;
+ return ipf_perror_fd(pool_fd(), iocfunc,
+ "remove lookup pool node");
}
}
OpenPOWER on IntegriCloud