Changeset

5546:edc97af48d19

prosodyctl: Ask about the distinguished name in a in a consistent order
author Kim Alvefur <zash@zash.se>
date Mon, 29 Apr 2013 14:00:44 +0200
parents 5545:d22416f8a836
children 5547:f306daf2bf6d
files prosodyctl
diffstat 1 files changed, 15 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/prosodyctl	Mon Apr 29 13:59:39 2013 +0200
+++ b/prosodyctl	Mon Apr 29 14:00:44 2013 +0200
@@ -662,19 +662,22 @@
 		conf:from_prosody(hosts, config, arg);
 		show_message("Please provide details to include in the certificate config file.");
 		show_message("Leave the field empty to use the default value or '.' to exclude the field.")
-		for k, v in pairs(conf.distinguished_name) do
-			local nv;
-			if k == "commonName" then 
-				v = arg[1]
-			elseif k == "emailAddress" then
-				v = "xmpp@" .. arg[1];
+		for i, k in ipairs(openssl._DN_order) do
+			local v = conf.distinguished_name[k];
+			if v then
+				local nv;
+				if k == "commonName" then
+					v = arg[1]
+				elseif k == "emailAddress" then
+					v = "xmpp@" .. arg[1];
+				end
+				nv = show_prompt(("%s (%s):"):format(k, nv or v));
+				nv = (not nv or nv == "") and v or nv;
+				if nv:find"[\192-\252][\128-\191]+" then
+					conf.req.string_mask = "utf8only"
+				end
+				conf.distinguished_name[k] = nv ~= "." and nv or nil;
 			end
-			nv = show_prompt(("%s (%s):"):format(k, nv or v));
-			nv = (not nv or nv == "") and v or nv;
-			if nv:find"[\192-\252][\128-\191]+" then
-				conf.req.string_mask = "utf8only"
-			end
-			conf.distinguished_name[k] = nv ~= "." and nv or nil;
 		end
 		local conf_file = io.open(conf_filename, "w");
 		conf_file:write(conf:serialize());