On 15/04/2008, Taymour A. El Erian <[EMAIL PROTECTED]> wrote:
>  I have printed the password in the log and it is printed ok but the len
>  is always 0.

Please read my reply.
I have just explained that 'len' is the length of the incoming SMUX
packet waiting to be processed.   It is *NOT* the length of the password.

   If the password is the last element (or the last element of this chunk),
then yes - len will always be 0.


>       I went and modified the code of smux_auth_peer to just
>  return 1 and of course this made the authentication succeed. I guess the
>  problem actually is in the string comparison in this function.

It's most likely in the list of OIDs and passwords that are being checked.

> Please  help as am not so familiar with snmp programming.

There's nothing particularly specific to SNMP about this bit.
It's simply a matter of checking exactly what is being compared.
Please find attached a patch (completely untested!), which ought
to provide some useful debugging information.

Dave

PS:  Please could you fix your mail system.
        It seemed to reject my earlier response as "unsolicited"!
Index: smux/smux.c
===================================================================
--- smux/smux.c	(revision 16884)
+++ smux/smux.c	(working copy)
@@ -922,10 +922,31 @@
 smux_auth_peer(oid * name, size_t namelen, char *passwd, int fd)
 {
     int             i;
+    oid             oid_name[MAX_OID_LEN];
+    char            passwd[SMUXMAXSTRLEN];
+    char            oid_print[SMUXMAXSTRLEN];
+    size_t          oid_name_len, string_len;
 
+
+    if (snmp_get_do_debugging()) {
+        snprint_objid(oid_print, sizeof(oid_print), name, namelen);
+        DEBUGMSGTL(("smux", "[smux_auth_peer] Authorizing: %s, %s\n",
+                    oid_print, passwd));
+    }
+
     for (i = 0; i < nauths; i++) {
+        if (snmp_get_do_debugging()) {
+            snprint_objid(oid_print, sizeof(oid_print),
+                          Auths[i]->sa_oid, Auths[i]->sa_oid_len);
+            DEBUGMSGTL(("smux", "[smux_auth_peer] Checking OID: %s (%d)\n",
+                    oid_print, i));
+        }
         if (snmp_oid_compare(Auths[i]->sa_oid, Auths[i]->sa_oid_len,
                              name, namelen) == 0) {
+            if (snmp_get_do_debugging()) {
+                DEBUGMSGTL(("smux", "[smux_auth_peer] Checking P/W: %s (%d)\n",
+                        Auths[i]->sa_passwd, Auths[i]->sa_active_fd));
+            }
             if (!(strcmp(Auths[i]->sa_passwd, passwd)) &&
                 (Auths[i]->sa_active_fd == -1)) {
                 /*
-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Net-snmp-users mailing list
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users

Reply via email to