On Thu, Sep 08, 2005 at 09:00:56PM +0200, Magnus Fromreide wrote:
> On Thu, Sep 08, 2005 at 02:27:13PM -0400, Robert Story wrote:
> > On Wed, 07 Sep 2005 16:06:13 +0100 Dave wrote:
> > DS> netsnmp_transport *
> > DS> netsnmp_transport_open( char *string, int def_port )
> >
> > I would have a third param, def_transport, which would be used if string
> > doesn't contain a transport.
>
> The current function netsnmp_tdomain_transport also takes a parameter named
> local that is a boolean indicating if this is a server or client connection.
>
> Would you want one of those as well?
>
That is, would the following patch be more acceptable?
/MF
Index: include/net-snmp/library/snmp_transport.h
===================================================================
RCS file: /cvsroot/net-snmp/net-snmp/include/net-snmp/library/snmp_transport.h,v
retrieving revision 5.2
diff -u -r5.2 snmp_transport.h
--- include/net-snmp/library/snmp_transport.h 2 Jul 2003 20:20:56 -0000
5.2
+++ include/net-snmp/library/snmp_transport.h 8 Sep 2005 19:47:51 -0000
@@ -97,7 +97,7 @@
const oid *name;
size_t name_length;
const char **prefix;
- netsnmp_transport *(*f_create_from_tstring) (const char *, int);
+ netsnmp_transport *(*f_create_from_tstring) (const char *, int, int);
netsnmp_transport *(*f_create_from_ostring) (const u_char *, size_t, int);
struct netsnmp_tdomain_s *next;
@@ -146,8 +146,12 @@
netsnmp_transport *netsnmp_tdomain_transport(const char *string,
int local,
- const char
- *default_domain);
+ const char *default_domain);
+
+netsnmp_transport *netsnmp_transport_open(const char *string,
+ int local,
+ const char *default_domain,
+ int default_port);
netsnmp_transport *netsnmp_tdomain_transport_oid(const oid * dom,
size_t dom_len,
Index: snmplib/snmpAAL5PVCDomain.c
===================================================================
RCS file: /cvsroot/net-snmp/net-snmp/snmplib/snmpAAL5PVCDomain.c,v
retrieving revision 5.3
diff -u -r5.3 snmpAAL5PVCDomain.c
--- snmplib/snmpAAL5PVCDomain.c 16 Dec 2002 07:40:39 -0000 5.3
+++ snmplib/snmpAAL5PVCDomain.c 8 Sep 2005 19:47:51 -0000
@@ -290,7 +290,7 @@
netsnmp_transport *
-netsnmp_aal5pvc_create_tstring(const char *string, int local)
+netsnmp_aal5pvc_create_tstring(const char *string, int local, int default_port)
{
struct sockaddr_atmpvc addr;
Index: snmplib/snmpIPXDomain.c
===================================================================
RCS file: /cvsroot/net-snmp/net-snmp/snmplib/snmpIPXDomain.c,v
retrieving revision 5.2
diff -u -r5.2 snmpIPXDomain.c
--- snmplib/snmpIPXDomain.c 16 Dec 2002 07:40:39 -0000 5.2
+++ snmplib/snmpIPXDomain.c 8 Sep 2005 19:47:51 -0000
@@ -382,7 +382,7 @@
netsnmp_transport *
-netsnmp_ipx_create_tstring(const char *string, int local)
+netsnmp_ipx_create_tstring(const char *string, int local, int default_port)
{
struct sockaddr_ipx addr;
Index: snmplib/snmpTCPDomain.c
===================================================================
RCS file: /cvsroot/net-snmp/net-snmp/snmplib/snmpTCPDomain.c,v
retrieving revision 5.14
diff -u -r5.14 snmpTCPDomain.c
--- snmplib/snmpTCPDomain.c 15 Oct 2004 18:52:29 -0000 5.14
+++ snmplib/snmpTCPDomain.c 8 Sep 2005 19:47:51 -0000
@@ -392,11 +392,11 @@
netsnmp_transport *
-netsnmp_tcp_create_tstring(const char *string, int local)
+netsnmp_tcp_create_tstring(const char *string, int local, int default_port)
{
struct sockaddr_in addr;
- if (netsnmp_sockaddr_in(&addr, string, 0)) {
+ if (netsnmp_sockaddr_in(&addr, string, default_port)) {
return netsnmp_tcp_transport(&addr, local);
} else {
return NULL;
Index: snmplib/snmpTCPIPv6Domain.c
===================================================================
RCS file: /cvsroot/net-snmp/net-snmp/snmplib/snmpTCPIPv6Domain.c,v
retrieving revision 5.14
diff -u -r5.14 snmpTCPIPv6Domain.c
--- snmplib/snmpTCPIPv6Domain.c 5 May 2005 23:58:27 -0000 5.14
+++ snmplib/snmpTCPIPv6Domain.c 8 Sep 2005 19:47:51 -0000
@@ -435,11 +435,11 @@
netsnmp_transport *
-netsnmp_tcp6_create_tstring(const char *string, int local)
+netsnmp_tcp6_create_tstring(const char *string, int local, int default_port)
{
struct sockaddr_in6 addr;
- if (netsnmp_sockaddr_in6(&addr, string, 0)) {
+ if (netsnmp_sockaddr_in6(&addr, string, default_port)) {
return netsnmp_tcp6_transport(&addr, local);
} else {
return NULL;
Index: snmplib/snmpUDPDomain.c
===================================================================
RCS file: /cvsroot/net-snmp/net-snmp/snmplib/snmpUDPDomain.c,v
retrieving revision 5.33
diff -u -r5.33 snmpUDPDomain.c
--- snmplib/snmpUDPDomain.c 17 Aug 2005 09:54:35 -0000 5.33
+++ snmplib/snmpUDPDomain.c 8 Sep 2005 19:47:52 -0000
@@ -1058,11 +1058,11 @@
netsnmp_transport *
-netsnmp_udp_create_tstring(const char *string, int local)
+netsnmp_udp_create_tstring(const char *string, int local, int default_port)
{
struct sockaddr_in addr;
- if (netsnmp_sockaddr_in(&addr, string, 0)) {
+ if (netsnmp_sockaddr_in(&addr, string, default_port)) {
return netsnmp_udp_transport(&addr, local);
} else {
return NULL;
Index: snmplib/snmpUDPIPv6Domain.c
===================================================================
RCS file: /cvsroot/net-snmp/net-snmp/snmplib/snmpUDPIPv6Domain.c,v
retrieving revision 5.30
diff -u -r5.30 snmpUDPIPv6Domain.c
--- snmplib/snmpUDPIPv6Domain.c 13 Jun 2005 16:16:52 -0000 5.30
+++ snmplib/snmpUDPIPv6Domain.c 8 Sep 2005 19:47:52 -0000
@@ -1289,11 +1289,11 @@
#endif /* support for community based SNMP */
netsnmp_transport *
-netsnmp_udp6_create_tstring(const char *string, int local)
+netsnmp_udp6_create_tstring(const char *string, int local, int default_port)
{
struct sockaddr_in6 addr;
- if (netsnmp_sockaddr_in6(&addr, string, 0)) {
+ if (netsnmp_sockaddr_in6(&addr, string, default_port)) {
return netsnmp_udp6_transport(&addr, local);
} else {
return NULL;
Index: snmplib/snmpUnixDomain.c
===================================================================
RCS file: /cvsroot/net-snmp/net-snmp/snmplib/snmpUnixDomain.c,v
retrieving revision 5.17
diff -u -r5.17 snmpUnixDomain.c
--- snmplib/snmpUnixDomain.c 22 Jun 2005 23:31:49 -0000 5.17
+++ snmplib/snmpUnixDomain.c 8 Sep 2005 19:47:52 -0000
@@ -399,7 +399,7 @@
}
netsnmp_transport *
-netsnmp_unix_create_tstring(const char *string, int local)
+netsnmp_unix_create_tstring(const char *string, int local, int default_port)
{
struct sockaddr_un addr;
Index: snmplib/snmp_transport.c
===================================================================
RCS file: /cvsroot/net-snmp/net-snmp/snmplib/snmp_transport.c,v
retrieving revision 5.9
diff -u -r5.9 snmp_transport.c
--- snmplib/snmp_transport.c 16 Dec 2004 19:59:29 -0000 5.9
+++ snmplib/snmp_transport.c 8 Sep 2005 19:47:53 -0000
@@ -301,8 +301,8 @@
netsnmp_transport *
-netsnmp_tdomain_transport(const char *string, int local,
- const char *default_domain)
+netsnmp_transport_open(const char *string, int local,
+ const char *default_domain, int default_port)
{
netsnmp_tdomain *d;
netsnmp_transport *t = NULL;
@@ -348,7 +348,7 @@
if (strcasecmp(d->prefix[i], spec) == 0) {
DEBUGMSGTL(("tdomain", "specifier \"%s\" matched\n",
spec));
- t = d->f_create_from_tstring(addr, local);
+ t = d->f_create_from_tstring(addr, local, default_port);
SNMP_FREE(mystring);
return t;
}
@@ -380,7 +380,7 @@
if (strcmp(d->prefix[i], spec) == 0) {
DEBUGMSGTL(("tdomain", "specifier \"%s\" matched\n",
spec));
- t = d->f_create_from_tstring(addr, local);
+ t = d->f_create_from_tstring(addr, local, default_port);
SNMP_FREE(mystring);
return t;
}
@@ -395,6 +395,14 @@
netsnmp_transport *
+netsnmp_tdomain_transport(const char *string, int local,
+ const char *default_domain)
+{
+ return netsnmp_transport_open(string, local, default_domain, 0);
+}
+
+
+netsnmp_transport *
netsnmp_tdomain_transport_oid(const oid * dom,
size_t dom_len,
const u_char * o, size_t o_len, int local)