svn commit: samba r23968 - in branches: SAMBA_3_2/source/utils SAMBA_3_2_0/source/utils

gd at samba.org gd at samba.org
Thu Jul 19 13:07:23 GMT 2007


Author: gd
Date: 2007-07-19 13:07:22 +0000 (Thu, 19 Jul 2007)
New Revision: 23968

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=23968

Log:
Harmonize net's password prompts.

Guenther

Modified:
   branches/SAMBA_3_2/source/utils/net.c
   branches/SAMBA_3_2/source/utils/net_ads.c
   branches/SAMBA_3_2_0/source/utils/net.c
   branches/SAMBA_3_2_0/source/utils/net_ads.c


Changeset:
Modified: branches/SAMBA_3_2/source/utils/net.c
===================================================================
--- branches/SAMBA_3_2/source/utils/net.c	2007-07-19 10:23:36 UTC (rev 23967)
+++ branches/SAMBA_3_2/source/utils/net.c	2007-07-19 13:07:22 UTC (rev 23968)
@@ -168,11 +168,9 @@
 {
 	NTSTATUS nt_status;
 
-	if (!opt_password && !opt_machine_pass) {
-		char *pass = getpass("Password:");
-		if (pass) {
-			opt_password = SMB_STRDUP(pass);
-		}
+	opt_password = net_prompt_pass(opt_user_name);
+	if (!opt_password) {
+		return NT_STATUS_NO_MEMORY;
 	}
 
 	nt_status = cli_full_connection(c, NULL, server_name, 
@@ -180,7 +178,6 @@
 					service_name, service_type,  
 					opt_user_name, opt_workgroup,
 					opt_password, 0, Undefined, NULL);
-
 	if (NT_STATUS_IS_OK(nt_status)) {
 		return nt_status;
 	} else {
@@ -267,11 +264,9 @@
 	NTSTATUS nt_status;
 	char *user_and_realm = NULL;
 
-	if (!opt_password && !opt_machine_pass) {
-		char *pass = getpass("Password:");
-		if (pass) {
-			opt_password = SMB_STRDUP(pass);
-		}
+	opt_password = net_prompt_pass(opt_user_name);
+	if (!opt_password) {
+		return NT_STATUS_NO_MEMORY;
 	}
 
 	user_and_realm = get_user_and_realm(opt_user_name);
@@ -834,6 +829,33 @@
 	return 0;
 }
 
+/****************************************************************************
+****************************************************************************/
+
+const char *net_prompt_pass(const char *user)
+{
+	char *prompt = NULL;
+	const char *pass = NULL;
+
+	if (opt_password) {
+		return opt_password;
+	}
+
+	if (opt_machine_pass) {
+		return NULL;
+	}
+
+	asprintf(&prompt, "Enter %s's password:", user);
+	if (!prompt) {
+		return NULL;
+	}
+
+	pass = getpass(prompt);
+	SAFE_FREE(prompt);
+
+	return pass;
+}
+
 /* main function table */
 static struct functable net_func[] = {
 	{"RPC", net_rpc},

Modified: branches/SAMBA_3_2/source/utils/net_ads.c
===================================================================
--- branches/SAMBA_3_2/source/utils/net_ads.c	2007-07-19 10:23:36 UTC (rev 23967)
+++ branches/SAMBA_3_2/source/utils/net_ads.c	2007-07-19 13:07:22 UTC (rev 23968)
@@ -244,14 +244,11 @@
 
 retry:
 	if (!opt_password && need_password && !opt_machine_pass) {
-		char *prompt = NULL;
-		asprintf(&prompt,"%s's password: ", opt_user_name);
-		if (!prompt) {
+		opt_password = net_prompt_pass(opt_user_name);
+		if (!opt_password) {
 			ads_destroy(&ads);
 			return ADS_ERROR(LDAP_NO_MEMORY);
 		}
-		opt_password = getpass(prompt);
-		free(prompt);
 	}
 
 	if (opt_password) {

Modified: branches/SAMBA_3_2_0/source/utils/net.c
===================================================================
--- branches/SAMBA_3_2_0/source/utils/net.c	2007-07-19 10:23:36 UTC (rev 23967)
+++ branches/SAMBA_3_2_0/source/utils/net.c	2007-07-19 13:07:22 UTC (rev 23968)
@@ -168,11 +168,9 @@
 {
 	NTSTATUS nt_status;
 
-	if (!opt_password && !opt_machine_pass) {
-		char *pass = getpass("Password:");
-		if (pass) {
-			opt_password = SMB_STRDUP(pass);
-		}
+	opt_password = net_prompt_pass(opt_user_name);
+	if (!opt_password) {
+		return NT_STATUS_NO_MEMORY;
 	}
 
 	nt_status = cli_full_connection(c, NULL, server_name, 
@@ -180,7 +178,6 @@
 					service_name, service_type,  
 					opt_user_name, opt_workgroup,
 					opt_password, 0, Undefined, NULL);
-
 	if (NT_STATUS_IS_OK(nt_status)) {
 		return nt_status;
 	} else {
@@ -267,11 +264,9 @@
 	NTSTATUS nt_status;
 	char *user_and_realm = NULL;
 
-	if (!opt_password && !opt_machine_pass) {
-		char *pass = getpass("Password:");
-		if (pass) {
-			opt_password = SMB_STRDUP(pass);
-		}
+	opt_password = net_prompt_pass(opt_user_name);
+	if (!opt_password) {
+		return NT_STATUS_NO_MEMORY;
 	}
 
 	user_and_realm = get_user_and_realm(opt_user_name);
@@ -834,6 +829,33 @@
 	return 0;
 }
 
+/****************************************************************************
+****************************************************************************/
+
+const char *net_prompt_pass(const char *user)
+{
+	char *prompt = NULL;
+	const char *pass = NULL;
+
+	if (opt_password) {
+		return opt_password;
+	}
+
+	if (opt_machine_pass) {
+		return NULL;
+	}
+
+	asprintf(&prompt, "Enter %s's password:", user);
+	if (!prompt) {
+		return NULL;
+	}
+
+	pass = getpass(prompt);
+	SAFE_FREE(prompt);
+
+	return pass;
+}
+
 /* main function table */
 static struct functable net_func[] = {
 	{"RPC", net_rpc},

Modified: branches/SAMBA_3_2_0/source/utils/net_ads.c
===================================================================
--- branches/SAMBA_3_2_0/source/utils/net_ads.c	2007-07-19 10:23:36 UTC (rev 23967)
+++ branches/SAMBA_3_2_0/source/utils/net_ads.c	2007-07-19 13:07:22 UTC (rev 23968)
@@ -244,14 +244,11 @@
 
 retry:
 	if (!opt_password && need_password && !opt_machine_pass) {
-		char *prompt = NULL;
-		asprintf(&prompt,"%s's password: ", opt_user_name);
-		if (!prompt) {
+		opt_password = net_prompt_pass(opt_user_name);
+		if (!opt_password) {
 			ads_destroy(&ads);
 			return ADS_ERROR(LDAP_NO_MEMORY);
 		}
-		opt_password = getpass(prompt);
-		free(prompt);
 	}
 
 	if (opt_password) {



More information about the samba-cvs mailing list