> Am 27.02.2020 um 08:56 schrieb Martijn van Duren > <openbsd+t...@list.imperialat.at>: > > On 2/12/20 7:48 AM, Martijn van Duren wrote: >> Hello tech@, >> >> Working on something else, this bit of code is somewhat in my way and it >> feels like an early testing feature instead of actually being useful. >>
It wasn’t an early testing feature. >> Is anyone actually using this, or can it be removed? >> I was using it to set device-specific information besides the system MIB. Enterprise NMS query weird custom values and sometimes this was the only option to integrate there (I think I used it specifically for the ProCurve Manager, a long time ago). Reyk >> martijn@ >> > One reply so far saying that it's not used in their setup. > > Unless someone complains I'll probably commit the diff below somewhere > early next week. Diff below is previous with additional manpage and > examples cleanup. > > Explicit OKs also welcome. > > martijn@ > > Index: etc/examples/snmpd.conf > =================================================================== > RCS file: /cvs/src/etc/examples/snmpd.conf,v > retrieving revision 1.1 > diff -u -p -r1.1 snmpd.conf > --- etc/examples/snmpd.conf 11 Jul 2014 21:20:10 -0000 1.1 > +++ etc/examples/snmpd.conf 27 Feb 2020 07:54:28 -0000 > @@ -14,10 +14,6 @@ listen on $listen_addr > #system location "Rack A1-24, Room 13" > system services 74 > > -# Provide static user-defined SNMP OIDs > -oid 1.3.6.1.4.1.30155.42.3.1 name testStringValue read-only string "Test" > -oid 1.3.6.1.4.1.30155.42.3.4 name testIntValue read-write integer 1 > - > # Enable SNMPv3 USM with authentication, encryption and two defined users > #seclevel enc > #user "user1" authkey "password123" enc aes enckey "321drowssap" > Index: usr.sbin/snmpd/mps.c > =================================================================== > RCS file: /cvs/src/usr.sbin/snmpd/mps.c,v > retrieving revision 1.28 > diff -u -p -r1.28 mps.c > --- usr.sbin/snmpd/mps.c 24 Oct 2019 12:39:27 -0000 1.28 > +++ usr.sbin/snmpd/mps.c 27 Feb 2020 07:54:28 -0000 > @@ -51,17 +51,6 @@ struct ber_oid * > extern void control_event_add(struct ctl_conn *, int, int, struct timeval *); > /* XXX */ > > int > -mps_getstr(struct oid *oid, struct ber_oid *o, struct ber_element **elm) > -{ > - char *s = oid->o_data; > - > - if (s == NULL) > - return (-1); > - *elm = ober_add_string(*elm, s); > - return (0); > -} > - > -int > mps_setstr(struct oid *oid, struct ber_oid *o, struct ber_element **elm) > { > struct ber_element *ber = *elm; > @@ -88,18 +77,6 @@ int > mps_getint(struct oid *oid, struct ber_oid *o, struct ber_element **elm) > { > *elm = ober_add_integer(*elm, oid->o_val); > - return (0); > -} > - > -int > -mps_setint(struct oid *oid, struct ber_oid *o, struct ber_element **elm) > -{ > - long long i; > - > - if (ober_get_integer(*elm, &i) == -1) > - return (-1); > - oid->o_val = i; > - > return (0); > } > > Index: usr.sbin/snmpd/parse.y > =================================================================== > RCS file: /cvs/src/usr.sbin/snmpd/parse.y,v > retrieving revision 1.57 > diff -u -p -r1.57 parse.y > --- usr.sbin/snmpd/parse.y 2 Jan 2020 10:55:53 -0000 1.57 > +++ usr.sbin/snmpd/parse.y 27 Feb 2020 07:54:28 -0000 > @@ -138,8 +138,8 @@ typedef struct { > %token <v.number> NUMBER > %type <v.string> hostcmn > %type <v.string> srcaddr > -%type <v.number> optwrite yesno seclevel socktype proto > -%type <v.data> objtype cmd > +%type <v.number> yesno seclevel socktype proto > +%type <v.data> cmd > %type <v.oid> oid hostoid trapoid > %type <v.auth> auth > %type <v.enc> enc > @@ -152,7 +152,6 @@ grammar : /* empty */ > | grammar varset '\n' > | grammar main '\n' > | grammar system '\n' > - | grammar mib '\n' > | grammar error '\n' { file->errors++; } > ; > > @@ -349,61 +348,6 @@ sysmib : CONTACT STRING { > struct ber_oid o = OID(MIB_sysServices); > mps_set(&o, NULL, $2); > } > - ; > - > -mib : OBJECTID oid NAME STRING optwrite objtype { > - struct oid *oid; > - if ((oid = (struct oid *) > - calloc(1, sizeof(*oid))) == NULL) { > - yyerror("calloc"); > - free($2); > - free($6.data); > - YYERROR; > - } > - > - smi_oidlen($2); > - bcopy($2, &oid->o_id, sizeof(struct ber_oid)); > - free($2); > - oid->o_name = $4; > - oid->o_data = $6.data; > - oid->o_val = $6.value; > - switch ($6.type) { > - case 1: > - oid->o_get = mps_getint; > - oid->o_set = mps_setint; > - break; > - case 2: > - oid->o_get = mps_getstr; > - oid->o_set = mps_setstr; > - break; > - } > - oid->o_flags = OID_RD|OID_DYNAMIC; > - if ($5) > - oid->o_flags |= OID_WR; > - > - if (smi_insert(oid) == -1) { > - yyerror("duplicate oid"); > - free(oid->o_name); > - free(oid->o_data); > - YYERROR; > - } > - } > - ; > - > -objtype : INTEGER NUMBER { > - $$.type = 1; > - $$.data = NULL; > - $$.value = $2; > - } > - | OCTETSTRING STRING { > - $$.type = 2; > - $$.data = $2; > - $$.value = strlen($2); > - } > - ; > - > -optwrite : READONLY { $$ = 0; } > - | READWRITE { $$ = 1; } > ; > > oid : STRING { > Index: usr.sbin/snmpd/snmpd.conf.5 > =================================================================== > RCS file: /cvs/src/usr.sbin/snmpd/snmpd.conf.5,v > retrieving revision 1.42 > diff -u -p -r1.42 snmpd.conf.5 > --- usr.sbin/snmpd/snmpd.conf.5 10 Feb 2020 13:18:22 -0000 1.42 > +++ usr.sbin/snmpd/snmpd.conf.5 27 Feb 2020 07:54:28 -0000 > @@ -38,8 +38,6 @@ Global runtime settings for > .Xr snmpd 8 . > .It Sy User Configuration > USM user definitions. > -.It Sy OID Configuration > -Custom configuration of SNMP object identifiers and values. > .El > .Pp > The current line can be extended over multiple lines using a backslash > @@ -279,25 +277,6 @@ and defaults to > Any user account that has encryption enabled requires authentication to > be enabled too. > .El > -.Sh OID CONFIGURATION > -It is possible to specify user-defined OIDs in the configuration file: > -.Bl -tag -width Ds > -.It Xo > -.Ic oid Ar oid-string > -.Ic name Ar name > -.Op Ic read-only | read-write > -.Op Ar type > -.Ar value > -.Xc > -Return the specified value to the client for this OID. > -The > -.Ic read-write > -option may allow the client to override it, > -and the type is either > -.Ic string > -or > -.Ic integer . > -.El > .Sh FILES > .Bl -tag -width /etc/examples/snmpd.conf -compact > .It Pa /etc/snmpd.conf > @@ -309,15 +288,12 @@ Example configuration file. > The following example will tell > .Xr snmpd 8 > to listen on localhost, override the default system OID, set the > -magic services value and provides some custom OID values: > +magic services value: > .Bd -literal -offset indent > listen on 127.0.0.1 > > system oid 1.3.6.1.4.1.30155.23.2 > system services 74 > - > -oid 1.3.6.1.4.1.30155.42.1 name myName read-only string "humppa" > -oid 1.3.6.1.4.1.30155.42.2 name myStatus read-only integer 1 > .Ed > .Pp > The next example will enforce SNMPv3 with authenticated and encrypted > Index: usr.sbin/snmpd/snmpd.h > =================================================================== > RCS file: /cvs/src/usr.sbin/snmpd/snmpd.h,v > retrieving revision 1.86 > diff -u -p -r1.86 snmpd.h > --- usr.sbin/snmpd/snmpd.h 2 Jan 2020 10:55:53 -0000 1.86 > +++ usr.sbin/snmpd/snmpd.h 27 Feb 2020 07:54:29 -0000 > @@ -689,13 +689,9 @@ int mps_getbulkreq(struct snmp_message > int mps_setreq(struct snmp_message *, struct ber_element *, > struct ber_oid *); > int mps_set(struct ber_oid *, void *, long long); > -int mps_getstr(struct oid *, struct ber_oid *, > - struct ber_element **); > int mps_setstr(struct oid *, struct ber_oid *, > struct ber_element **); > int mps_getint(struct oid *, struct ber_oid *, > - struct ber_element **); > -int mps_setint(struct oid *, struct ber_oid *, > struct ber_element **); > int mps_getts(struct oid *, struct ber_oid *, > struct ber_element **); >