1 2 /* 3 * Copyright (C) 2012 by Darren Reed. 4 * 5 * See the IPFILTER.LICENCE file for details on licencing. 6 * 7 * $Id$ 8 */ 9 10 #include "ipf.h" 11 12 #include <fcntl.h> 13 #include <sys/ioctl.h> 14 15 char * kvatoname(ipfunc_t func,ioctlfunc_t iocfunc)16kvatoname(ipfunc_t func, ioctlfunc_t iocfunc) 17 { 18 static char funcname[40]; 19 ipfunc_resolve_t res; 20 int fd; 21 22 res.ipfu_addr = func; 23 res.ipfu_name[0] = '\0'; 24 fd = -1; 25 26 if ((opts & OPT_DONTOPEN) == 0) { 27 fd = open(IPL_NAME, O_RDONLY); 28 if (fd == -1) 29 return (NULL); 30 } 31 (void) (*iocfunc)(fd, SIOCFUNCL, &res); 32 if (fd >= 0) 33 close(fd); 34 strncpy(funcname, res.ipfu_name, sizeof(funcname)); 35 funcname[sizeof(funcname) - 1] = '\0'; 36 return (funcname); 37 } 38