diff options
author | Gleb Smirnoff <glebius@FreeBSD.org> | 2022-08-21 14:44:58 +0000 |
---|---|---|
committer | Gleb Smirnoff <glebius@FreeBSD.org> | 2022-08-21 14:44:58 +0000 |
commit | 9d54812421274e490dc5f0fe4722ab8d35d9b258 (patch) | |
tree | 503a054c313ac607c74e65a1c4dc7f12bc0c4f0b /contrib | |
parent | 6498153665fddbcf3efa94a230933a3b8834240b (diff) | |
download | src-9d54812421274e490dc5f0fe4722ab8d35d9b258.tar.gz src-9d54812421274e490dc5f0fe4722ab8d35d9b258.zip |
snmp_mibII: use net.inet.ip.fragttl sysctl for ipReasmTimeout
Using IPFRAGTTL define was never correct, as it was measured in
PR_SLOWTIMO intervals. The sysctl returns seconds, just what
ipReasmTimeout is.
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/bsnmp/snmp_mibII/mibII_ip.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/contrib/bsnmp/snmp_mibII/mibII_ip.c b/contrib/bsnmp/snmp_mibII/mibII_ip.c index 8290eebbc6f0..6a59a5b8e388 100644 --- a/contrib/bsnmp/snmp_mibII/mibII_ip.c +++ b/contrib/bsnmp/snmp_mibII/mibII_ip.c @@ -44,6 +44,7 @@ static struct icmpstat icmpstat; static int ip_forwarding; static int ip_defttl; +static u_int ip_fragttl; static uint64_t ip_tick; static uint64_t ipstat_tick; @@ -79,6 +80,17 @@ fetch_ipstat(void) return (-1); } + len = sizeof(ip_fragttl); + if (sysctlbyname("net.inet.ip.fragttl", &ip_fragttl, &len, + NULL, 0) == -1) { + syslog(LOG_ERR, "net.inet.ip.fragttl: %m"); + return (-1); + } + if (len != sizeof(ip_fragttl)) { + syslog(LOG_ERR, "net.inet.ip.fragttl: wrong size"); + return (-1); + } + ipstat_tick = get_ticks(); return (0); } @@ -309,7 +321,7 @@ op_ipstat(struct snmp_context *ctx __unused, struct snmp_value *value, break; case LEAF_ipReasmTimeout: - value->v.integer = IPFRAGTTL; + value->v.integer = ip_fragttl; break; case LEAF_ipReasmReqds: |