> Am 27.02.2020 um 08:56 schrieb Martijn van Duren
> <[email protected]>:
>
> 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 **);
>