[SCM] Samba Shared Repository - branch v3-3-test updated - release-3-2-0pre2-4523-g3e529fb

Günther Deschner gd at samba.org
Tue Nov 25 14:41:47 GMT 2008


The branch, v3-3-test has been updated
       via  3e529fb619384e694e01204ca305e2a13724defd (commit)
       via  0e99fe1855c66e9743725d43ba92ec59f35f5b55 (commit)
       via  ffca48241731d416090215b194da5f8047303329 (commit)
      from  7518cbbad3d866253c03d4d080d0880e343499c5 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-3-test


- Log -----------------------------------------------------------------
commit 3e529fb619384e694e01204ca305e2a13724defd
Author: Günther Deschner <gd at samba.org>
Date:   Fri Nov 21 15:56:30 2008 +0100

    s3-libnetjoin: fix build warning.
    
    Guenther

commit 0e99fe1855c66e9743725d43ba92ec59f35f5b55
Author: Günther Deschner <gd at samba.org>
Date:   Thu Nov 6 13:37:03 2008 +0100

    s3-libnetjoin: try to show a better error message upon invalid configuration.
    
    Guenther

commit ffca48241731d416090215b194da5f8047303329
Author: Günther Deschner <gd at samba.org>
Date:   Fri Nov 21 23:28:23 2008 +0100

    WHATSNEW: add more items.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 WHATSNEW.txt                |    2 +
 source/libnet/libnet_join.c |   61 +++++++++++++++++++++++++++++++++++--------
 2 files changed, 52 insertions(+), 11 deletions(-)


Changeset truncated at 500 lines:

diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index 8321adf..76d8c34 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -231,6 +231,8 @@ o   Günther Deschner <gd at samba.org>
       parsing
     * Fix winbind password change code for Windows 2000 DCs
     * Fix PNP_HwProfInfo NDR parsing
+    * Added wbclient wbcLogonUser and wbcLogoffUserEx functions
+    * Automatic home directory creation for pam_winbind
 
 
 o   Dina Fine <dina at exanet.com>
diff --git a/source/libnet/libnet_join.c b/source/libnet/libnet_join.c
index 75aafde..3b6af5e 100644
--- a/source/libnet/libnet_join.c
+++ b/source/libnet/libnet_join.c
@@ -1638,24 +1638,31 @@ WERROR libnet_init_UnjoinCtx(TALLOC_CTX *mem_ctx,
 static WERROR libnet_join_check_config(TALLOC_CTX *mem_ctx,
 				       struct libnet_JoinCtx *r)
 {
+	bool valid_security = false;
+	bool valid_workgroup = false;
+	bool valid_realm = false;
+
 	/* check if configuration is already set correctly */
 
+	valid_workgroup = strequal(lp_workgroup(), r->out.netbios_domain_name);
+
 	switch (r->out.domain_is_ad) {
 		case false:
-			if ((strequal(lp_workgroup(),
-				      r->out.netbios_domain_name)) &&
-			    (lp_security() == SEC_DOMAIN)) {
+			valid_security = (lp_security() == SEC_DOMAIN);
+			if (valid_workgroup && valid_security) {
 				/* nothing to be done */
 				return WERR_OK;
 			}
 			break;
 		case true:
-			if ((strequal(lp_workgroup(),
-				      r->out.netbios_domain_name)) &&
-			    (strequal(lp_realm(),
-				      r->out.dns_domain_name)) &&
-			    ((lp_security() == SEC_ADS) ||
-			     (lp_security() == SEC_DOMAIN))) {
+			valid_realm = strequal(lp_realm(), r->out.dns_domain_name);
+			switch (lp_security()) {
+			case SEC_DOMAIN:
+			case SEC_ADS:
+				valid_security = true;
+			}
+
+			if (valid_workgroup && valid_realm && valid_security) {
 				/* nothing to be done */
 				return WERR_OK;
 			}
@@ -1665,9 +1672,41 @@ static WERROR libnet_join_check_config(TALLOC_CTX *mem_ctx,
 	/* check if we are supposed to manipulate configuration */
 
 	if (!r->in.modify_config) {
+
+		char *wrong_conf = talloc_strdup(mem_ctx, "");
+
+		if (!valid_workgroup) {
+			wrong_conf = talloc_asprintf_append(wrong_conf,
+				"\"workgroup\" set to '%s', should be '%s'",
+				lp_workgroup(), r->out.netbios_domain_name);
+			W_ERROR_HAVE_NO_MEMORY(wrong_conf);
+		}
+
+		if (!valid_realm) {
+			wrong_conf = talloc_asprintf_append(wrong_conf,
+				"\"realm\" set to '%s', should be '%s'",
+				lp_realm(), r->out.dns_domain_name);
+			W_ERROR_HAVE_NO_MEMORY(wrong_conf);
+		}
+
+		if (!valid_security) {
+			const char *sec = NULL;
+			switch (lp_security()) {
+			case SEC_SHARE: sec = "share"; break;
+			case SEC_USER:  sec = "user"; break;
+			case SEC_DOMAIN: sec = "domain"; break;
+			case SEC_ADS: sec = "ads"; break;
+			}
+			wrong_conf = talloc_asprintf_append(wrong_conf,
+				"\"security\" set to '%s', should be %s",
+				sec, r->out.domain_is_ad ?
+				"either 'domain' or 'ads'" : "'domain'");
+			W_ERROR_HAVE_NO_MEMORY(wrong_conf);
+		}
+
 		libnet_join_set_error_string(mem_ctx, r,
-			"Invalid configuration and configuration modification "
-			"was not requested");
+			"Invalid configuration (%s) and configuration modification "
+			"was not requested", wrong_conf);
 		return WERR_CAN_NOT_COMPLETE;
 	}
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list