On 05/03/18 13:48, Stuart Henderson wrote:
On 2018-04-27, Robert Story <rst...@freesnmp.com> wrote:
We're closing in on a final release. The current plan is to have
release candidate 1 next week.
Is it planned to address https://sourceforge.net/p/net-snmp/bugs/2831/
before release or are distro packagers going to need to patch the other
programs to cope?
Thanks for having drawn our attention to that bug report. How about
fixing bug 2831 with the below patch?
Bart.
Subject: [PATCH] BUG: 2831: Move agent-internal global variables into a
separate header file
Because commit 81b65f4d23a9 added declarations for several global
variables to public header files, applications that declare global
variables with the same names no longer build. Hence move the global
variables that were added by that commit to public header files into a
new header file.
Fixes: 81b65f4d23a9 ("Move declarations of global functions and
variables from .c to .h")
---
agent/agent_index.c | 1 +
agent/agent_registry.c | 1 +
agent/agent_trap.c | 1 +
agent/mibgroup/agent/nsTransactionTable.c | 1 +
agent/mibgroup/agentx/client.c | 1 +
agent/mibgroup/agentx/master_admin.c | 1 +
agent/mibgroup/agentx/subagent.c | 1 +
agent/mibgroup/agentx/subagent.h | 6 ------
agent/mibgroup/disman/event/mteEvent.c | 1 +
agent/mibgroup/disman/event/mteTrigger.c | 1 +
agent/mibgroup/mibII/snmp_mib.c | 1 +
agent/mibgroup/mibII/snmp_mib_5_5.c | 4 +---
agent/mibgroup/mibII/system_mib.c | 1 +
agent/mibgroup/notification/snmpNotifyTable.c | 3 +--
agent/mibgroup/utilities/iquery.c | 1 +
agent/snmp_agent.c | 1 +
agent/snmp_vars.c | 1 +
agent/snmpd.c | 1 +
apps/agentxtrap.c | 1 +
apps/snmptrapd.c | 2 ++
include/net-snmp/agent/agent_internal_vars.h | 25
+++++++++++++++++++++++++
include/net-snmp/agent/agent_trap.h | 8 --------
include/net-snmp/agent/snmp_agent.h | 10 ----------
include/net-snmp/agent/snmp_vars.h | 2 --
24 files changed, 45 insertions(+), 31 deletions(-)
create mode 100644 include/net-snmp/agent/agent_internal_vars.h
diff --git a/agent/agent_index.c b/agent/agent_index.c
index c063a599c456..d3fa4c0caf26 100644
--- a/agent/agent_index.c
+++ b/agent/agent_index.c
@@ -37,6 +37,7 @@
#include <net-snmp/agent/net-snmp-agent-includes.h>
#include <net-snmp/agent/agent_callbacks.h>
#include <net-snmp/agent/agent_index.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include "snmpd.h"
#include "mibgroup/struct.h"
diff --git a/agent/agent_registry.c b/agent/agent_registry.c
index 7d96c65dec57..6b461a102325 100644
--- a/agent/agent_registry.c
+++ b/agent/agent_registry.c
@@ -52,6 +52,7 @@
#include <net-snmp/library/snmp_assert.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
#include <net-snmp/agent/agent_callbacks.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include "snmpd.h"
#include "mibgroup/struct.h"
diff --git a/agent/agent_trap.c b/agent/agent_trap.c
index 97808afca3e5..8084d4d4d78f 100644
--- a/agent/agent_trap.c
+++ b/agent/agent_trap.c
@@ -62,6 +62,7 @@
#include <net-snmp/agent/agent_trap.h>
#include <net-snmp/agent/snmp_agent.h>
#include <net-snmp/agent/agent_callbacks.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include <net-snmp/agent/agent_module_config.h>
#include <net-snmp/agent/mib_module_config.h>
diff --git a/agent/mibgroup/agent/nsTransactionTable.c
b/agent/mibgroup/agent/nsTransactionTable.c
index df338ada03a9..8ee7a9465396 100644
--- a/agent/mibgroup/agent/nsTransactionTable.c
+++ b/agent/mibgroup/agent/nsTransactionTable.c
@@ -6,6 +6,7 @@
#include <net-snmp/net-snmp-features.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include <net-snmp/agent/table.h>
#include <net-snmp/agent/table_iterator.h>
diff --git a/agent/mibgroup/agentx/client.c b/agent/mibgroup/agentx/client.c
index 049108e2977f..9e916b9d9467 100644
--- a/agent/mibgroup/agentx/client.c
+++ b/agent/mibgroup/agentx/client.c
@@ -37,6 +37,7 @@
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
#include <net-snmp/agent/agent_index.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include "agentx/protocol.h"
#include "agentx/client.h"
diff --git a/agent/mibgroup/agentx/master_admin.c
b/agent/mibgroup/agentx/master_admin.c
index 57cf56a72df9..fbc0688c7462 100644
--- a/agent/mibgroup/agentx/master_admin.c
+++ b/agent/mibgroup/agentx/master_admin.c
@@ -32,6 +32,7 @@
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include "agentx/protocol.h"
#include "agentx/client.h"
diff --git a/agent/mibgroup/agentx/subagent.c
b/agent/mibgroup/agentx/subagent.c
index a643576df331..fed12694dc52 100644
--- a/agent/mibgroup/agentx/subagent.c
+++ b/agent/mibgroup/agentx/subagent.c
@@ -33,6 +33,7 @@
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/agent_index.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include <net-snmp/library/snmp_assert.h>
#include "snmpd.h"
diff --git a/agent/mibgroup/agentx/subagent.h
b/agent/mibgroup/agentx/subagent.h
index eb033e3409b1..958217e419fc 100644
--- a/agent/mibgroup/agentx/subagent.h
+++ b/agent/mibgroup/agentx/subagent.h
@@ -11,14 +11,8 @@ config_require(agentx/agentx_config)
config_error(agentx/subagent depends on the Callback transport)
#endif
- extern int callback_master_num;
-
- extern const oid snmptrap_oid[];
extern const oid snmptrapenterprise_oid[];
- extern const oid sysuptime_oid[];
- extern const size_t snmptrap_oid_len;
extern const size_t snmptrapenterprise_oid_len;
- extern const size_t sysuptime_oid_len;
int subagent_init(void);
int handle_agentx_packet(int, netsnmp_session *, int,
diff --git a/agent/mibgroup/disman/event/mteEvent.c
b/agent/mibgroup/disman/event/mteEvent.c
index a51bde027d71..e2d7194d25f8 100644
--- a/agent/mibgroup/disman/event/mteEvent.c
+++ b/agent/mibgroup/disman/event/mteEvent.c
@@ -7,6 +7,7 @@
#include <net-snmp/net-snmp-features.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include "agentx/subagent.h"
#include "disman/event/mteEvent.h"
#include "disman/event/mteTrigger.h"
diff --git a/agent/mibgroup/disman/event/mteTrigger.c
b/agent/mibgroup/disman/event/mteTrigger.c
index 5b55fc7ff616..4dac3d684861 100644
--- a/agent/mibgroup/disman/event/mteTrigger.c
+++ b/agent/mibgroup/disman/event/mteTrigger.c
@@ -7,6 +7,7 @@
#include <net-snmp/net-snmp-features.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include "disman/event/mteTrigger.h"
#include "disman/event/mteEvent.h"
diff --git a/agent/mibgroup/mibII/snmp_mib.c
b/agent/mibgroup/mibII/snmp_mib.c
index f09acfaa1aeb..7d037dffdd16 100644
--- a/agent/mibgroup/mibII/snmp_mib.c
+++ b/agent/mibgroup/mibII/snmp_mib.c
@@ -13,6 +13,7 @@
#include <net-snmp/net-snmp-features.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include <net-snmp/agent/sysORTable.h>
#include "snmp_mib.h"
diff --git a/agent/mibgroup/mibII/snmp_mib_5_5.c
b/agent/mibgroup/mibII/snmp_mib_5_5.c
index c63efb6f7d38..91fa143c2a37 100644
--- a/agent/mibgroup/mibII/snmp_mib_5_5.c
+++ b/agent/mibgroup/mibII/snmp_mib_5_5.c
@@ -2,6 +2,7 @@
#include <net-snmp/net-snmp-features.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include <net-snmp/agent/sysORTable.h>
#include <net-snmp/agent/snmp_get_statistic.h>
@@ -18,9 +19,6 @@ netsnmp_feature_require(check_vb_truthvalue)
static oid snmp_oid[] = { SNMP_OID };
-extern long snmp_enableauthentraps;
-extern int snmp_enableauthentrapsset;
-
static int
snmp_enableauthentraps_store(int a, int b, void *c, void *d)
{
diff --git a/agent/mibgroup/mibII/system_mib.c
b/agent/mibgroup/mibII/system_mib.c
index cb68580cc718..5359fc79aa0c 100644
--- a/agent/mibgroup/mibII/system_mib.c
+++ b/agent/mibgroup/mibII/system_mib.c
@@ -44,6 +44,7 @@
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
#include <net-snmp/agent/sysORTable.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include "util_funcs.h"
#include "system_mib.h"
diff --git a/agent/mibgroup/notification/snmpNotifyTable.c
b/agent/mibgroup/notification/snmpNotifyTable.c
index 91adb2f9c794..9e005f7f47ab 100644
--- a/agent/mibgroup/notification/snmpNotifyTable.c
+++ b/agent/mibgroup/notification/snmpNotifyTable.c
@@ -25,6 +25,7 @@
*/
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include "header_complex.h"
#include "snmpNotifyTable.h"
@@ -109,8 +110,6 @@ _checkFilter(const char* paramName, netsnmp_pdu *pdu)
size_t profileNameLen;
struct vacm_viewEntry *vp, *head;
int vb_oid_excluded = 0;
- extern const oid snmptrap_oid[];
- extern const size_t snmptrap_oid_len;
netsnmp_assert(NULL != paramName);
netsnmp_assert(NULL != pdu);
diff --git a/agent/mibgroup/utilities/iquery.c
b/agent/mibgroup/utilities/iquery.c
index 140c99b71484..5e3ae7fcd36a 100644
--- a/agent/mibgroup/utilities/iquery.c
+++ b/agent/mibgroup/utilities/iquery.c
@@ -2,6 +2,7 @@
#include <net-snmp/net-snmp-features.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include "agentx/subagent.h"
#include "utilities/iquery.h"
diff --git a/agent/snmp_agent.c b/agent/snmp_agent.c
index 2e8ad2d86090..1a9cdcec1bde 100644
--- a/agent/snmp_agent.c
+++ b/agent/snmp_agent.c
@@ -81,6 +81,7 @@ SOFTWARE.
#define SNMP_NEED_REQUEST_LIST
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include <net-snmp/library/snmp_assert.h>
#if HAVE_SYSLOG_H
diff --git a/agent/snmp_vars.c b/agent/snmp_vars.c
index 1de35bb2d447..ef6296c7b1f8 100644
--- a/agent/snmp_vars.c
+++ b/agent/snmp_vars.c
@@ -137,6 +137,7 @@ PERFORMANCE OF THIS SOFTWARE.
#include <net-snmp/agent/net-snmp-agent-includes.h>
#include <net-snmp/agent/mib_modules.h>
#include <net-snmp/agent/agent_sysORTable.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include "kernel.h"
#include "mibgroup/struct.h"
diff --git a/agent/snmpd.c b/agent/snmpd.c
index b18d1db633fe..b6b5f697b17b 100644
--- a/agent/snmpd.c
+++ b/agent/snmpd.c
@@ -135,6 +135,7 @@ typedef long fd_mask;
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include <net-snmp/library/fd_event_manager.h>
#include <net-snmp/library/large_fd_set.h>
diff --git a/apps/agentxtrap.c b/apps/agentxtrap.c
index 97bb8ef62e67..9126fb506d2f 100644
--- a/apps/agentxtrap.c
+++ b/apps/agentxtrap.c
@@ -10,6 +10,7 @@
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/ds_agent.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include "../agent/mibgroup/agentx/agentx_config.h"
#include "../agent/mibgroup/agentx/client.h"
diff --git a/apps/snmptrapd.c b/apps/snmptrapd.c
index 9f53d4585dea..4d8746795377 100644
--- a/apps/snmptrapd.c
+++ b/apps/snmptrapd.c
@@ -96,8 +96,10 @@ SOFTWARE.
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include <net-snmp/library/fd_event_manager.h>
#include <net-snmp/agent/netsnmp_close_fds.h>
+#include <net-snmp/agent/agent_internal_vars.h>
#include "../agent/mibgroup/snmpv3/snmpEngine.h"
#include "../agent/mibgroup/snmpv3/usmUser.h"
#include "../agent/mibgroup/agent/nsVacmAccessTable.h"
diff --git a/include/net-snmp/agent/agent_internal_vars.h
b/include/net-snmp/agent/agent_internal_vars.h
new file mode 100644
index 000000000000..df9566d0ad83
--- /dev/null
+++ b/include/net-snmp/agent/agent_internal_vars.h
@@ -0,0 +1,25 @@
+#ifndef _AGENT_INTERNAL_VARS_H_
+#define _AGENT_INTERNAL_VARS_H_
+
+struct snmp_session;
+struct netsnmp_agent_session_s;
+struct netsnmp_agent_session_s;
+
+
+extern int netsnmp_running;
+extern long snmp_enableauthentraps;
+extern int snmp_enableauthentrapsset;
+extern int callback_master_num;
+
+extern struct snmp_session *main_session;
+extern struct netsnmp_agent_session_s *netsnmp_processing_set;
+extern struct netsnmp_agent_session_s *agent_delegated_list;
+
+extern const oid snmptrap_oid[];
+extern const oid sysuptime_oid[];
+extern const size_t snmptrap_oid_len;
+extern const size_t sysuptime_oid_len;
+extern const oid version_sysoid[];
+extern const int version_sysoid_len;
+
+#endif /* _AGENT_INTERNAL_VARS_H_ */
diff --git a/include/net-snmp/agent/agent_trap.h
b/include/net-snmp/agent/agent_trap.h
index 61f599103378..26e222329b6c 100644
--- a/include/net-snmp/agent/agent_trap.h
+++ b/include/net-snmp/agent/agent_trap.h
@@ -10,14 +10,6 @@ struct agent_add_trap_args {
int confirm;
};
-extern long snmp_enableauthentraps;
-extern int snmp_enableauthentrapsset;
-
-extern const oid snmptrap_oid[];
-extern const oid sysuptime_oid[];
-extern const size_t snmptrap_oid_len;
-extern const size_t sysuptime_oid_len;
-
void init_traps(void);
void send_easy_trap(int, int);
void send_trap_pdu(netsnmp_pdu *);
diff --git a/include/net-snmp/agent/snmp_agent.h
b/include/net-snmp/agent/snmp_agent.h
index a34445fa8153..aad8837a82ad 100644
--- a/include/net-snmp/agent/snmp_agent.h
+++ b/include/net-snmp/agent/snmp_agent.h
@@ -32,8 +32,6 @@ extern "C" {
#define SNMP_MAX_PDU_SIZE 64000 /* local constraint on PDU size sent
by agent
* (see also SNMP_MAX_MSG_SIZE in
snmp_api.h) */
- extern int netsnmp_running;
-
/*
* If non-zero, causes the addresses of peers to be logged when
receptions
* occur.
@@ -47,9 +45,6 @@ extern "C" {
extern int lastAddrAge;
- extern const oid version_sysoid[];
- extern const int version_sysoid_len;
-
/** @typedef struct netsnmp_request_info_s netsnmp_request_info
* Typedefs the netsnmp_request_info_s struct into
* netsnmp_request_info*/
@@ -212,11 +207,6 @@ extern "C" {
int vbcount;
} netsnmp_agent_session;
- extern netsnmp_session *main_session;
-
- extern netsnmp_agent_session *netsnmp_processing_set;
- extern netsnmp_agent_session *agent_delegated_list;
-
/*
* Address cache handling functions.
*/
diff --git a/include/net-snmp/agent/snmp_vars.h
b/include/net-snmp/agent/snmp_vars.h
index bd27eebe972e..77dbd7047f19 100644
--- a/include/net-snmp/agent/snmp_vars.h
+++ b/include/net-snmp/agent/snmp_vars.h
@@ -43,8 +43,6 @@ PERFORMANCE OF THIS SOFTWARE.
* distributed with the Net-SNMP package.
*/
- extern int callback_master_num;
-
struct variable;
/**
--
2.16.3
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Net-snmp-coders mailing list
Net-snmp-coders@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders