]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Allow blank passwords to be passed via the management interface.
authorjames <james@e7ae566f-a301-0410-adde-c780ea21d3b5>
Fri, 4 Nov 2005 02:37:39 +0000 (02:37 +0000)
committerjames <james@e7ae566f-a301-0410-adde-c780ea21d3b5>
Fri, 4 Nov 2005 02:37:39 +0000 (02:37 +0000)
git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@773 e7ae566f-a301-0410-adde-c780ea21d3b5

ChangeLog
manage.c

index 2db24fd5a3e32fb2b98e59241240dbe33e8c6562..0179dd601e8561481cbbe092e873062730dcdf2c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,8 @@ $Id$
 
 2005.11.xx -- Version 2.1-beta7
 
+* Allow blank passwords to be passed via the management
+  interface.
 * Fixed bug where --server directive in --dev tap mode
   claimed that it would support subnets of /30 or less
   but actually would only accept /29 or less.
index a645b02f80513f4c5290e7a6bf05b56eb58d7e7c..6937a2c5aaba84b15cdf572babc48e60a03e84c9 100644 (file)
--- a/manage.c
+++ b/manage.c
@@ -52,6 +52,9 @@
 #define MANAGEMENT_ECHO_FLAGS 0
 #endif
 
+/* tag for blank username/password */
+static const char blank_up[] = "[[BLANK]]";
+
 struct management *management; /* GLOBAL */
 
 /* static forward declarations */
@@ -525,6 +528,8 @@ man_query_password (struct management *man, const char *type, const char *string
   const bool needed = ((man->connection.up_query_mode == UP_QUERY_USER_PASS
                        || man->connection.up_query_mode == UP_QUERY_PASS)
                       && man->connection.up_query_type);
+  if (!string[0]) /* allow blank passwords to be passed through using the blank_up tag */
+    string = blank_up;
   man_query_user_pass (man, type, string, needed, "password", man->connection.up_query.password, USER_PASS_LEN);
 }
 
@@ -1828,6 +1833,10 @@ management_query_user_pass (struct management *man,
       man->persist.standalone_disabled = standalone_disabled_save;
       man->persist.special_state_msg = NULL;
 
+      /* pass through blank passwords */
+      if (!strcmp (man->connection.up_query.password, blank_up))
+       CLEAR (man->connection.up_query.password);
+
       /*
        * Transfer u/p to return object, zero any record
        * we hold in the management object.