summaryrefslogtreecommitdiff
path: root/usr/src/cmd/ipf/lib/common/checkrev.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/cmd/ipf/lib/common/checkrev.c')
-rw-r--r--usr/src/cmd/ipf/lib/common/checkrev.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/usr/src/cmd/ipf/lib/common/checkrev.c b/usr/src/cmd/ipf/lib/common/checkrev.c
index c57295385f..f95cc7977a 100644
--- a/usr/src/cmd/ipf/lib/common/checkrev.c
+++ b/usr/src/cmd/ipf/lib/common/checkrev.c
@@ -3,21 +3,21 @@
*
* See the IPFILTER.LICENCE file for details on licencing.
*
- * $Id: checkrev.c,v 1.9 2003/04/27 17:09:46 darrenr Exp $
+ * $Id: checkrev.c,v 1.12.2.1 2004/03/09 14:44:39 darrenr Exp $
*/
#include <sys/ioctl.h>
#include <fcntl.h>
#include "ipf.h"
-#include "ipl.h"
+#include "netinet/ipl.h"
int checkrev(ipfname)
char *ipfname;
{
+ static int vfd = -1;
struct friostat fio, *fiop = &fio;
ipfobj_t ipfo;
- int vfd;
bzero((caddr_t)&ipfo, sizeof(ipfo));
ipfo.ipfo_rev = IPFILTER_VERSION;
@@ -25,7 +25,7 @@ char *ipfname;
ipfo.ipfo_ptr = (void *)fiop;
ipfo.ipfo_type = IPFOBJ_IPFSTAT;
- if ((vfd = open(ipfname, O_RDONLY)) == -1) {
+ if ((vfd == -1) && ((vfd = open(ipfname, O_RDONLY)) == -1)) {
perror("open device");
return -1;
}
@@ -33,9 +33,9 @@ char *ipfname;
if (ioctl(vfd, SIOCGETFS, &ipfo)) {
perror("ioctl(SIOCGETFS)");
close(vfd);
+ vfd = -1;
return -1;
}
- close(vfd);
if (strncmp(IPL_VERSION, fio.f_version, sizeof(fio.f_version))) {
return -1;