I can't find any reference in RFC2578 for a boolean type, nor have I seen it in the wild and the TruthValue diff I just committed give me a strong indication that this was added without any real reason.
OK to remove? martijn@ Index: usr.bin/snmp/smi.c =================================================================== RCS file: /cvs/src/usr.bin/snmp/smi.c,v retrieving revision 1.13 diff -u -p -r1.13 smi.c --- usr.bin/snmp/smi.c 14 Dec 2020 07:44:26 -0000 1.13 +++ usr.bin/snmp/smi.c 14 Dec 2020 11:12:29 -0000 @@ -95,9 +95,6 @@ smi_debug_elements(struct ber_element *r case BER_TYPE_EOC: fprintf(stderr, "end-of-content"); break; - case BER_TYPE_BOOLEAN: - fprintf(stderr, "boolean"); - break; case BER_TYPE_INTEGER: fprintf(stderr, "integer"); break; @@ -196,9 +193,6 @@ smi_debug_elements(struct ber_element *r goto invalid; switch (root->be_encoding) { - case BER_TYPE_BOOLEAN: - fprintf(stderr, "%s", value); - break; case BER_TYPE_INTEGER: case BER_TYPE_ENUMERATED: fprintf(stderr, "value %s", value); @@ -255,7 +249,6 @@ smi_print_element(struct ber_oid *oid, s struct textconv tckey; size_t len, i, slen; long long v, ticks; - int d; int is_hex = 0, ret; struct ber_oid o; char strbuf[BUFSIZ]; @@ -277,17 +270,6 @@ smi_print_element(struct ber_oid *oid, s } switch (root->be_encoding) { - case BER_TYPE_BOOLEAN: - if (ober_get_boolean(root, &d) == -1) - goto fail; - if (print_hint) { - if (asprintf(&str, "INTEGER: %s(%d)", - d ? "true" : "false", d) == -1) - goto fail; - } else - if (asprintf(&str, "%s", d ? "true" : "false") == -1) - goto fail; - break; case BER_TYPE_INTEGER: case BER_TYPE_ENUMERATED: if (ober_get_integer(root, &v) == -1) Index: usr.sbin/snmpd/smi.c =================================================================== RCS file: /cvs/src/usr.sbin/snmpd/smi.c,v retrieving revision 1.27 diff -u -p -r1.27 smi.c --- usr.sbin/snmpd/smi.c 24 Oct 2019 12:39:27 -0000 1.27 +++ usr.sbin/snmpd/smi.c 14 Dec 2020 11:12:29 -0000 @@ -317,9 +317,6 @@ smi_debug_elements(struct ber_element *r case BER_TYPE_EOC: fprintf(stderr, "end-of-content"); break; - case BER_TYPE_BOOLEAN: - fprintf(stderr, "boolean"); - break; case BER_TYPE_INTEGER: fprintf(stderr, "integer"); break; @@ -417,9 +414,6 @@ smi_debug_elements(struct ber_element *r goto invalid; switch (root->be_encoding) { - case BER_TYPE_BOOLEAN: - fprintf(stderr, "%s", value); - break; case BER_TYPE_INTEGER: case BER_TYPE_ENUMERATED: fprintf(stderr, "value %s", value); @@ -473,17 +467,10 @@ smi_print_element(struct ber_element *ro char *str = NULL, *buf, *p; size_t len, i; long long v; - int d; struct ber_oid o; char strbuf[BUFSIZ]; switch (root->be_encoding) { - case BER_TYPE_BOOLEAN: - if (ober_get_boolean(root, &d) == -1) - goto fail; - if (asprintf(&str, "%s(%d)", d ? "true" : "false", d) == -1) - goto fail; - break; case BER_TYPE_INTEGER: case BER_TYPE_ENUMERATED: if (ober_get_integer(root, &v) == -1)