]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Modified ">PASSWORD:Verification Failed" management interface
authorJames Yonan <james@openvpn.net>
Fri, 12 Mar 2010 03:05:34 +0000 (03:05 +0000)
committerJames Yonan <james@openvpn.net>
Fri, 12 Mar 2010 03:05:34 +0000 (03:05 +0000)
notification to include a client reason string:

  >PASSWORD:Verification Failed: 'AUTH_TYPE' ['REASON_STRING']

git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@5468 e7ae566f-a301-0410-adde-c780ea21d3b5

manage.c
manage.h
push.c
ssl.c

index f75aedd9b385ff0bbcb163a64564564b2be32ee6..e87d996d31d51bb3a99868f634f1b201223b4b13 100644 (file)
--- a/manage.c
+++ b/manage.c
@@ -2273,9 +2273,12 @@ management_pre_tunnel_close (struct management *man)
 }
 
 void
-management_auth_failure (struct management *man, const char *type)
+management_auth_failure (struct management *man, const char *type, const char *reason)
 {
-  msg (M_CLIENT, ">PASSWORD:Verification Failed: '%s'", type);
+  if (reason)
+    msg (M_CLIENT, ">PASSWORD:Verification Failed: '%s' ['%s']", type, reason);
+  else
+    msg (M_CLIENT, ">PASSWORD:Verification Failed: '%s'", type);
 }
 
 static inline bool
index 6d6d710cf3ebf0270fd07db866ba14b8f55fe335..e5cbafdaf0abe0454bc79ef44dcc6ecf3433c94e 100644 (file)
--- a/manage.h
+++ b/manage.h
@@ -435,7 +435,7 @@ void management_echo (struct management *man, const char *string, const bool pul
  * OpenVPN calls here to indicate a password failure
  */
 
-void management_auth_failure (struct management *man, const char *type);
+void management_auth_failure (struct management *man, const char *type, const char *reason);
 
 /*
  * These functions drive the bytecount in/out counters.
diff --git a/push.c b/push.c
index 70bb9a3bad98a9d3933758d06e9ac31488284b5a..149d25a54676af0d7b236d6a6bc2933166cd20e2 100644 (file)
--- a/push.c
+++ b/push.c
@@ -63,11 +63,11 @@ receive_auth_failed (struct context *c, const struct buffer *buffer)
 #ifdef ENABLE_MANAGEMENT
       if (management)
        {
-         const char *reason = UP_TYPE_AUTH;
+         const char *reason = NULL;
          struct buffer buf = *buffer;
          if (buf_string_compare_advance (&buf, "AUTH_FAILED,") && BLEN (&buf))
            reason = BSTR (&buf);
-         management_auth_failure (management, reason);
+         management_auth_failure (management, UP_TYPE_AUTH, reason);
        }
 #endif
     }
diff --git a/ssl.c b/ssl.c
index 102b02e2da9615d8699fabffce4673d6aba6a538..1b275afeabd725481281c7cd707630999c8ec9cb 100644 (file)
--- a/ssl.c
+++ b/ssl.c
@@ -1639,7 +1639,7 @@ init_ssl (const struct options *options)
                {
 #ifdef ENABLE_MANAGEMENT
                  if (management && (ERR_GET_REASON (ERR_peek_error()) == EVP_R_BAD_DECRYPT))
-                   management_auth_failure (management, UP_TYPE_PRIVATE_KEY);
+                   management_auth_failure (management, UP_TYPE_PRIVATE_KEY, NULL);
 #endif
                  msg (M_WARN|M_SSL, "Cannot load private key file %s", options->priv_key_file);
                  goto err;