Index: usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c =================================================================== --- usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c (revision 205280) +++ usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c (working copy) @@ -534,6 +534,9 @@ asn_subid_t which = val->var.subs[sub - 1]; struct pfi_entry *e = NULL; + if ((time(NULL) - pfi_table_age) > PFI_TABLE_MAXAGE) + pfi_refresh(); + switch (op) { case SNMP_OP_SET: return (SNMP_ERR_NOT_WRITEABLE); @@ -557,9 +560,6 @@ abort(); } - if ((time(NULL) - pfi_table_age) > PFI_TABLE_MAXAGE) - pfi_refresh(); - switch (which) { case LEAF_pfInterfacesIfDescr: return (string_get(val, e->pfi.pfik_name, -1)); @@ -684,6 +684,9 @@ asn_subid_t which = val->var.subs[sub - 1]; struct pft_entry *e = NULL; + if ((time(NULL) - pft_table_age) > PFT_TABLE_MAXAGE) + pft_refresh(); + switch (op) { case SNMP_OP_SET: return (SNMP_ERR_NOT_WRITEABLE); @@ -707,9 +710,6 @@ abort(); } - if ((time(NULL) - pft_table_age) > PFT_TABLE_MAXAGE) - pft_refresh(); - switch (which) { case LEAF_pfTablesTblDescr: return (string_get(val, e->pft.pfrts_name, -1)); @@ -842,6 +842,9 @@ return (SNMP_ERR_NOERROR); } + if ((time(NULL) - pfq_table_age) > PFQ_TABLE_MAXAGE) + pfq_refresh(); + switch (op) { case SNMP_OP_SET: return (SNMP_ERR_NOT_WRITEABLE); @@ -865,9 +868,6 @@ abort(); } - if ((time(NULL) - pfq_table_age) > PFQ_TABLE_MAXAGE) - pfq_refresh(); - switch (which) { case LEAF_pfAltqQueueDescr: return (string_get(val, e->altq.qname, -1)); @@ -930,6 +930,9 @@ asn_subid_t which = val->var.subs[sub - 1]; struct pfl_entry *e = NULL; + if ((time(NULL) - pfl_table_age) > PFL_TABLE_MAXAGE) + pfl_refresh(); + switch (op) { case SNMP_OP_SET: return (SNMP_ERR_NOT_WRITEABLE); @@ -953,9 +956,6 @@ abort(); } - if ((time(NULL) - pfl_table_age) > PFL_TABLE_MAXAGE) - pfl_refresh(); - switch (which) { case LEAF_pfLabelsLblName: return (string_get(val, e->name, -1));