Skip to contentSkip to conversation

Agent++ 4.6.0: const/nonconst type mismatch build failure

Buildroot Luca Ceresoli via buildroot 1 participant 1 message Jun 26, 2023

lore
Share & tools
lore
#0 lore raw

Hello AGENT++ developers,

the automatic testing infrastructure of the Buildroot embedded Linux build system is reporting a build failure in AGENT++:

snmp_pp_ext.cpp:1217:26: error: binding reference of type 'Snmp_pp::Pdu&' to 'const Snmp_pp::Pdu' discards qualifiers
1217 | status = snmpmsg.load( pdu, community, version);
| ^~~

This is due to a mismatch between the SNMP++ APIs and AGENT++.

This failure is happening since several months and was happening also with version 4.5.4.

Here you can find info, including logs, about some of the failed builds:

http://autobuild.buildroot.net/results/e8abd6bdc62a028955915706b03d72239786c703/
http://autobuild.buildroot.net/results/24441fb679fbf5f913c9b6431c98aec596ead587/
http://autobuild.buildroot.net/results/d7347b8b3953596b66da6ca6d85f084fb427934c/

I have prepared a patch against AGENT++ 4.6.0 that fixes the problem according to my tests, please find it attached.

It would be great to have this fixed in the next mainline release of AGENT++!

Best regards,
Luca Ceresoli

Signature · 3 lines
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

From 7e541e6dba8d4976bbb490838a09b569f38b047d Mon Sep 17 00:00:00 2001
From: Luca Ceresoli <[email protected]>
Date: Mon, 26 Jun 2023 17:45:00 +0200
Subject: [PATCH] Snmpx: fix const/nonconst type mismatch

Fixes build failure:

snmp_pp_ext.cpp:1176:28: error: binding reference of type 'Snmp_pp::Pdu&' to 'const Snmp_pp::Pdu' discards qualifiers
1176 | status = snmpmsg.load( pdu, community, version);
| ^~~

Fixes:
http://autobuild.buildroot.net/results/e8abd6bdc62a028955915706b03d72239786c703/
http://autobuild.buildroot.net/results/24441fb679fbf5f913c9b6431c98aec596ead587/

---
 include/agent_pp/snmp_pp_ext.h | 2 +-
 src/snmp_pp_ext.cpp            | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
include/agent_pp/snmp_pp_ext.h +1 -1
index 7c5a6783ee70..d8a46060db98 100644
@@ -807,7 +807,7 @@ public:
 	 *   SNMP_CLASS_SUCCESS on success and SNMP_CLASS_ERROR,
 	 *   SNMP_CLASS_TL_FAILED on failure.
 	 */
-        int send (Pdux const &, NS_SNMP UdpAddress const &, NS_SNMP snmp_version, NS_SNMP OctetStr const &);
+        int send (Pdux &, NS_SNMP UdpAddress const &, NS_SNMP snmp_version, NS_SNMP OctetStr const &);
 #endif
 
 	/**
src/snmp_pp_ext.cpp +1 -1
index 54a29ec8ea28..b61cbf056246 100644
@@ -1203,7 +1203,7 @@ int Snmpx::send (Pdux &pdu, SnmpTarget* target)
 
 #else  // _SNMPv3 is not defined
 
-int Snmpx::send (Pdux  const &pdu,
+int Snmpx::send (Pdux  &pdu,
 		 UdpAddress  const &udp_address,
 		 snmp_version version,
 		 OctetStr  const &community)
Signature · 1 line
2.34.1

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot