Sync usage with man page.
[netbsd-mini2440.git] / dist / ipf / lib / checkrev.c
blob2408bc89fc0c2acc2b8d623ed394453c35dad32f
1 /* $NetBSD$ */
3 /*
4 * Copyright (C) 2000-2004 by Darren Reed.
6 * See the IPFILTER.LICENCE file for details on licencing.
8 * Id: checkrev.c,v 1.12.2.2 2006/06/16 17:20:56 darrenr Exp
9 */
11 #include <sys/ioctl.h>
12 #include <fcntl.h>
14 #include "ipf.h"
15 #include "netinet/ipl.h"
17 int checkrev(ipfname)
18 char *ipfname;
20 static int vfd = -1;
21 struct friostat fio, *fiop = &fio;
22 ipfobj_t ipfo;
24 bzero((caddr_t)&ipfo, sizeof(ipfo));
25 ipfo.ipfo_rev = IPFILTER_VERSION;
26 ipfo.ipfo_size = sizeof(*fiop);
27 ipfo.ipfo_ptr = (void *)fiop;
28 ipfo.ipfo_type = IPFOBJ_IPFSTAT;
30 if ((vfd == -1) && ((vfd = open(ipfname, O_RDONLY)) == -1)) {
31 perror("open device");
32 return -1;
35 if (ioctl(vfd, SIOCGETFS, &ipfo)) {
36 perror("ioctl(SIOCGETFS)");
37 close(vfd);
38 vfd = -1;
39 return -1;
42 if (strncmp(IPL_VERSION, fio.f_version, sizeof(fio.f_version))) {
43 return -1;
45 return 0;