|  | /* | 
|  | * Copyright (C) 2002 by Darren Reed. | 
|  | * | 
|  | * See the IPFILTER.LICENCE file for details on licencing. | 
|  | * | 
|  | * $Id$ | 
|  | */ | 
|  |  | 
|  | #include "ipf.h" | 
|  |  | 
|  | #include <fcntl.h> | 
|  | #include <sys/ioctl.h> | 
|  |  | 
|  | char *kvatoname(func, iocfunc) | 
|  | ipfunc_t func; | 
|  | ioctlfunc_t iocfunc; | 
|  | { | 
|  | static char funcname[40]; | 
|  | ipfunc_resolve_t res; | 
|  | int fd; | 
|  |  | 
|  | res.ipfu_addr = func; | 
|  | res.ipfu_name[0] = '\0'; | 
|  | fd = -1; | 
|  |  | 
|  | if ((opts & OPT_DONOTHING) == 0) { | 
|  | fd = open(IPL_NAME, O_RDONLY); | 
|  | if (fd == -1) | 
|  | return NULL; | 
|  | } | 
|  | (void) (*iocfunc)(fd, SIOCFUNCL, &res); | 
|  | if (fd >= 0) | 
|  | close(fd); | 
|  | strncpy(funcname, res.ipfu_name, sizeof(funcname)); | 
|  | funcname[sizeof(funcname) - 1] = '\0'; | 
|  | return funcname; | 
|  | } |