Following snmpd, remove the public default community and move to snmpv3
by default. This is also what net-snmp does. I originally chose this
default because that's what snmpctl did and it allowed for easier
interoperability with snmpd(8).
Now that snmpd(8) moved on, so should snmp(1).

OK?

martijn@

Index: snmpc.c
===================================================================
RCS file: /cvs/src/usr.bin/snmp/snmpc.c,v
retrieving revision 1.35
diff -u -p -r1.35 snmpc.c
--- snmpc.c     8 Aug 2021 13:41:26 -0000       1.35
+++ snmpc.c     11 Aug 2021 14:34:08 -0000
@@ -84,12 +84,12 @@ struct snmp_app snmp_apps[] = {
 };
 struct snmp_app *snmp_app = NULL;
 
-char *community = "public";
+char *community = NULL;
 struct snmp_v3 *v3;
 char *mib = "mib_2";
 int retries = 5;
 int timeout = 1;
-enum snmp_version version = SNMP_V2C;
+enum snmp_version version = SNMP_V3;
 int print_equals = 1;
 int print_varbind_only = 0;
 int print_summary = 0;
@@ -468,7 +468,10 @@ main(int argc, char *argv[])
        argc -= optind;
        argv += optind;
 
-       if (version == SNMP_V3) {
+       if (version == SNMP_V1 || version == SNMP_V2C) {
+               if (community == NULL || community[0] == '\0')
+                       errx(1, "No community name specified.");
+       } else if (version == SNMP_V3) {
                /* Setup USM */
                if (user == NULL || user[0] == '\0')
                        errx(1, "No securityName specified");


Reply via email to