1 /* 2 * Copyright (C) 2012 by Darren Reed. 3 * 4 * See the IPFILTER.LICENCE file for details on licencing. 5 * 6 * $Id: poolio.c,v 1.1.2.3 2012/07/22 08:04:24 darren_r Exp $ 7 */ 8 9 #include <fcntl.h> 10 #include <sys/ioctl.h> 11 #include "ipf.h" 12 #include "netinet/ip_lookup.h" 13 #include "netinet/ip_pool.h" 14 15 static int poolfd = -1; 16 17 18 int pool_open(void)19pool_open(void) 20 { 21 22 if ((opts & OPT_DONTOPEN) != 0) 23 return (0); 24 25 if (poolfd == -1) 26 poolfd = open(IPLOOKUP_NAME, O_RDWR); 27 return (poolfd); 28 } 29 30 int pool_ioctl(ioctlfunc_t iocfunc,ioctlcmd_t cmd,void * ptr)31pool_ioctl(ioctlfunc_t iocfunc, ioctlcmd_t cmd, void *ptr) 32 { 33 return (*iocfunc)(poolfd, cmd, ptr); 34 } 35 36 37 void pool_close(void)38pool_close(void) 39 { 40 if (poolfd != -1) { 41 close(poolfd); 42 poolfd = -1; 43 } 44 } 45 46 int pool_fd(void)47pool_fd(void) 48 { 49 return (poolfd); 50 } 51