This commit is contained in:
purplerain 2023-07-06 21:55:14 +00:00
parent f1b2576417
commit 2a351e0cdc
Signed by: purplerain
GPG key ID: F42C07F07E2E35B7
347 changed files with 9596 additions and 5486 deletions

View file

@ -1,4 +1,4 @@
/* $OpenBSD: mib.c,v 1.3 2023/04/19 12:58:15 jsg Exp $ */
/* $OpenBSD: mib.c,v 1.4 2023/07/04 11:34:19 sashan Exp $ */
/*
* Copyright (c) 2022 Martijn van Duren <martijn@openbsd.org>
@ -1183,6 +1183,8 @@ struct carpif {
struct kif kif;
};
void mib_close_pftrans(struct agentx_varbind *, u_int32_t);
void mib_pfinfo(struct agentx_varbind *);
void mib_pfcounters(struct agentx_varbind *);
void mib_pfscounters(struct agentx_varbind *);
@ -1744,6 +1746,17 @@ mib_pftableaddrs(struct agentx_varbind *vb)
fatal("%s: Unexpected object", __func__);
}
void
mib_close_pftrans(struct agentx_varbind *vb, u_int32_t ticket)
{
extern int devpf;
if (ioctl(devpf, DIOCXEND, &ticket) == -1) {
log_warn("DIOCXEND");
agentx_varbind_error(vb);
}
}
void
mib_pflabelnum(struct agentx_varbind *vb)
{
@ -1765,6 +1778,7 @@ mib_pflabelnum(struct agentx_varbind *vb)
if (ioctl(devpf, DIOCGETRULE, &pr) == -1) {
log_warn("DIOCGETRULE");
agentx_varbind_error(vb);
mib_close_pftrans(vb, pr.ticket);
return;
}
@ -1773,6 +1787,8 @@ mib_pflabelnum(struct agentx_varbind *vb)
}
agentx_varbind_integer(vb, lnr);
mib_close_pftrans(vb, pr.ticket);
}
void
@ -1818,6 +1834,7 @@ mib_pflabels(struct agentx_varbind *vb)
if (ioctl(devpf, DIOCGETRULE, &pr) == -1) {
log_warn("DIOCGETRULE");
agentx_varbind_error(vb);
mib_close_pftrans(vb, pr.ticket);
return;
}
@ -1827,6 +1844,8 @@ mib_pflabels(struct agentx_varbind *vb)
}
}
mib_close_pftrans(vb, pr.ticket);
if (r == NULL) {
agentx_varbind_notfound(vb);
return;