On Sun, 03 Jan 2021 21:59:57 +0100
Martijn van Duren <[email protected]> wrote:

> ping
> 
> On Mon, 2020-12-14 at 12:13 +0100, Martijn van Duren wrote:
> > 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)
> > 
> >   
> 
> 

As an old telecom engineer, I can say that Boolean is a
defined ASN.1 type and supported in BER (see X.690 section 8.2,
https://www.itu.int/rec/T-REC-X.690-201508-I/en) and it is used a lot in
*telecom* standards :)


Reply via email to