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