Building NUT against current net-snmp sources (as of March 2022) stumbled on some different header definitions compared to what we use (latest tagged release v5.9.1 seems ok in this regard), causing warnings and outright build failures:
snmp-ups.c: In function 'nut_snmp_init':
snmp-ups.c:819:46: error: 'ONE_SEC' undeclared (first use in this function)
819 | g_snmp_sess.timeout = snmp_timeout * ONE_SEC;
| ^~~~~~~
snmp-ups.c:819:46: note: each undeclared identifier is reported only once for each function it appears in
snmp-ups.c:901:55: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
901 | g_snmp_sess.securityAuthProto = usmHMACMD5AuthProtocol;
| ^
snmp-ups.c:908:55: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
908 | g_snmp_sess.securityAuthProto = usmHMACSHA1AuthProtocol;
| ^
snmp-ups.c:915:55: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
915 | g_snmp_sess.securityAuthProto = usmHMAC192SHA256AuthProtocol;
| ^
snmp-ups.c:922:55: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
922 | g_snmp_sess.securityAuthProto = usmHMAC256SHA384AuthProtocol;
| ^
snmp-ups.c:929:55: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
929 | g_snmp_sess.securityAuthProto = usmHMAC384SHA512AuthProtocol;
| ^
snmp-ups.c:978:55: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
978 | g_snmp_sess.securityPrivProto = usmDESPrivProtocol;
| ^
snmp-ups.c:985:55: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
985 | g_snmp_sess.securityPrivProto = usmAESPrivProtocol;
| ^
snmp-ups.c: In function 'nut_snmp_perror':
snmp-ups.c:1532:33: warning: passing argument 1 of 'snmp_sess_error' from incompatible pointer type [-Wincompatible-pointer-types]
1532 | snmp_sess_error(sess, &cliberr, &snmperr, &snmperrstr);
| ^~~~
| |
| struct snmp_session *
In file included from /opt/test/netsnmp/include/net-snmp/library/snmp_client.h:32,
from /opt/test/netsnmp/include/net-snmp/varbind_api.h:102,
from /opt/test/netsnmp/include/net-snmp/library/snmp_api.h:33,
from /opt/test/netsnmp/include/net-snmp/net-snmp-includes.h:25,
from snmp-ups.h:81,
from snmp-ups.c:38:
/opt/test/netsnmp/include/net-snmp/output_api.h:24:50: note: expected 'struct session_list *' but argument is of type 'struct snmp_session *'
24 | void snmp_sess_error(struct session_list *slp, int *clib_errorno,
| ~~~~~~~~~~~~~~~~~~~~~^~~
The ONE_SEC issue would be addressed easily as part of #1289 mitigation, but others (const-or-not, struct pointers) would need a dedicated effort.
Originally posted by @jimklimov in #1289 (comment)
Building NUT against current net-snmp sources (as of March 2022) stumbled on some different header definitions compared to what we use (latest tagged release
v5.9.1seems ok in this regard), causing warnings and outright build failures:The
ONE_SECissue would be addressed easily as part of #1289 mitigation, but others (const-or-not, struct pointers) would need a dedicated effort.Originally posted by @jimklimov in #1289 (comment)