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)

Reply via email to