[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-test-2168-g135d9dd

Stefan Metzmacher metze at samba.org
Wed Feb 13 09:46:29 GMT 2008


The branch, v3-2-test has been updated
       via  135d9dd6d830ce6ae5c7917468763aa9a148d76a (commit)
       via  5f623f54a919cc687d0ff16c16038c05a501008d (commit)
      from  26d012dd3de8ec146eb22656f1ed8eef110e4be6 (commit)

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


- Log -----------------------------------------------------------------
commit 135d9dd6d830ce6ae5c7917468763aa9a148d76a
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Feb 11 18:36:45 2008 +0100

    libwbclient: include wb_common.o in libwbclient.a
    
    And only link in wb_common.o directly into binaries
    which really need it.
    
    Note: It's important that $(WBCOMMON_OBJ) comes before
          @LIBWBCLIENT_STATIC@ overwise we may try to
          link in wb_common.o twice.
    
    metze

commit 5f623f54a919cc687d0ff16c16038c05a501008d
Author: Stefan Metzmacher <metze at samba.org>
Date:   Mon Feb 11 18:35:58 2008 +0100

    nsswitch: convert winbind_env_set(), winbind_on() and winbind_off() into macros
    
    metze

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

Summary of changes:
 source/Makefile.in               |   22 ++++++++++++----------
 source/lib/system_smbd.c         |    4 ++--
 source/nsswitch/wb_common.c      |   27 ---------------------------
 source/nsswitch/winbind_client.h |   11 ++++++++---
 source/passdb/pdb_interface.c    |    4 ++--
 source/winbindd/idmap_nss.c      |    8 ++++----
 6 files changed, 28 insertions(+), 48 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/Makefile.in b/source/Makefile.in
index 5d78b99..4b11965 100644
--- a/source/Makefile.in
+++ b/source/Makefile.in
@@ -328,7 +328,6 @@ LIB_WITH_PROTO_OBJ = $(VERSION_OBJ) lib/charcnv.o lib/debug.o lib/fault.o \
 	  lib/ms_fnmatch.o lib/select.o lib/errmap_unix.o \
 	  lib/tallocmsg.o lib/dmallocmsg.o libsmb/smb_signing.o \
 	  lib/md5.o lib/hmacmd5.o lib/arc4.o lib/iconv.o \
-	  $(WBCOMMON_OBJ) \
 	  lib/pam_errors.o intl/lang_tdb.o lib/conn_tdb.o \
 	  lib/adt_tree.o lib/gencache.o $(TDB_OBJ) \
 	  lib/module.o lib/events.o lib/ldap_escape.o @CHARSET_STATIC@ \
@@ -642,8 +641,9 @@ SMBD_OBJ_BASE = $(PARAM_WITHOUT_REG_OBJ) $(SMBD_OBJ_SRV) $(LIBSMB_OBJ) \
 		$(NOTIFY_OBJ) $(GROUPDB_OBJ) $(AUTH_OBJ) \
 		$(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) \
 		$(LIBADS_OBJ) $(KRBCLIENT_OBJ) $(LIBADS_SERVER_OBJ) \
-		$(REGISTRY_OBJ) $(POPT_LIB_OBJ) @LIBWBCLIENT_STATIC@ \
-		$(BUILDOPT_OBJ) $(SMBLDAP_OBJ) $(LDB_OBJ) $(LIBNET_OBJ)
+		$(REGISTRY_OBJ) $(POPT_LIB_OBJ) \
+		$(BUILDOPT_OBJ) $(SMBLDAP_OBJ) $(LDB_OBJ) $(LIBNET_OBJ) \
+		$(WBCOMMON_OBJ) @LIBWBCLIENT_STATIC@
 
 PRINTING_OBJ = printing/pcap.o printing/print_svid.o printing/print_aix.o \
                printing/print_cups.o printing/print_generic.o \
@@ -798,14 +798,15 @@ NET_OBJ1 = utils/net.o utils/net_ads.o utils/net_domain.o utils/net_help.o \
 	   utils/net_conf.o auth/token_util.o utils/net_dom.o nsswitch/wb_client.o
 
 NET_OBJ = $(NET_OBJ1) $(PARAM_WITHOUT_REG_OBJ) $(SECRETS_OBJ) $(LIBSMB_OBJ) \
-	  $(RPC_PARSE_OBJ) $(PASSDB_OBJ) @LIBWBCLIENT_STATIC@ $(GROUPDB_OBJ) \
+	  $(RPC_PARSE_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
 	  $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) $(LIBADDNS_OBJ0) \
 	  $(LIBMSRPC_OBJ) $(LIBMSRPC_GEN_OBJ) \
 	  $(LIBADS_OBJ) $(LIBADS_SERVER_OBJ) $(POPT_LIB_OBJ) \
 	  $(SMBLDAP_OBJ) $(DCUTIL_OBJ) $(SERVER_MUTEX_OBJ) \
 	  $(AFS_OBJ) $(AFS_SETTOKEN_OBJ) $(REGFIO_OBJ) $(READLINE_OBJ) \
 	  $(LDB_OBJ) $(LIBGPO_OBJ) @BUILD_INIPARSER@ $(DISPLAY_SEC_OBJ) \
-	  $(REG_API_OBJ) $(DISPLAY_DSDCINFO_OBJ) $(LIBNETAPI_OBJ1) $(LIBNET_OBJ)
+	  $(REG_API_OBJ) $(DISPLAY_DSDCINFO_OBJ) $(LIBNETAPI_OBJ1) $(LIBNET_OBJ) \
+	  $(WBCOMMON_OBJ) @LIBWBCLIENT_STATIC@
 
 CUPS_OBJ = client/smbspool.o $(PARAM_OBJ) $(LIBSMB_OBJ) \
 	  $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) $(SECRETS_OBJ) $(POPT_LIB_OBJ)
@@ -972,7 +973,7 @@ WINBINDD_OBJ = \
 
 WBINFO_OBJ = nsswitch/wbinfo.o $(LIBSAMBA_OBJ) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
 		$(SECRETS_OBJ) $(POPT_LIB_OBJ) $(AFS_SETTOKEN_OBJ) $(RPC_PARSE_OBJ1) \
-		$(DOSERR_OBJ) lib/winbind_util.o @LIBWBCLIENT_STATIC@
+		$(DOSERR_OBJ) lib/winbind_util.o $(WBCOMMON_OBJ) @LIBWBCLIENT_STATIC@
 
 WINBIND_NSS_OBJ = $(WBCOMMON_OBJ) $(LIBREPLACE_OBJ) @WINBIND_NSS_EXTRA_OBJS@
 
@@ -1038,9 +1039,10 @@ NTLM_AUTH_OBJ1 = utils/ntlm_auth.o utils/ntlm_auth_diagnostics.o
 NTLM_AUTH_OBJ = ${NTLM_AUTH_OBJ1} $(LIBSAMBA_OBJ) $(POPT_LIB_OBJ) \
 		libsmb/asn1.o libsmb/spnego.o libsmb/clikrb5.o libads/kerberos.o \
 		libads/kerberos_verify.o $(SECRETS_OBJ) $(SERVER_MUTEX_OBJ) \
-		libads/authdata.o $(RPC_PARSE_OBJ1) $(PASSDB_OBJ) @LIBWBCLIENT_STATIC@ $(GROUPDB_OBJ) \
+		libads/authdata.o $(RPC_PARSE_OBJ1) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
 		$(SMBLDAP_OBJ) $(DOSERR_OBJ) rpc_parse/parse_net.o $(LIBNMB_OBJ) \
-		$(LDB_OBJ) $(ERRORMAP_OBJ) 
+		$(LDB_OBJ) $(ERRORMAP_OBJ) $(WBCOMMON_OBJ) @LIBWBCLIENT_STATIC@
+
 
 VLP_OBJ1 = ../testsuite/printing/vlp.o $(RPC_CLIENT_OBJ1) $(RPC_PARSE_OBJ2) $(RPC_CLIENT_OBJ)
 
@@ -1459,9 +1461,9 @@ bin/libwbclient. at SHLIBEXT@: $(BINARY_PREREQS) $(LIBWBCLIENT_OBJ) @LIBTALLOC_SHAR
 		@SONAMEFLAG@`basename $@`.$(SONAME_VER)
 	@ln -s -f `basename $@` $@.$(SONAME_VER)
 
-bin/libwbclient.a: $(BINARY_PREREQS) $(LIBWBCLIENT_OBJ0)
+bin/libwbclient.a: $(BINARY_PREREQS) $(LIBWBCLIENT_OBJ0) $(WBCOMMON_OBJ)
 	@echo Linking non-shared library $@
-	@-$(AR) -rc $@ $(LIBWBCLIENT_OBJ0)
+	@-$(AR) -rc $@ $(LIBWBCLIENT_OBJ0) $(WBCOMMON_OBJ)
 
 bin/libaddns. at SHLIBEXT@: $(BINARY_PREREQS) $(LIBADDNS_OBJ)
 	@echo Linking shared library $@
diff --git a/source/lib/system_smbd.c b/source/lib/system_smbd.c
index 9d3eb95..1f5dd31 100644
--- a/source/lib/system_smbd.c
+++ b/source/lib/system_smbd.c
@@ -125,7 +125,7 @@ static int sys_getgrouplist(const char *user, gid_t gid, gid_t *groups, int *grp
 	 * always determined by the info3 coming back from auth3 or the
 	 * PAC. */
 	winbind_env = winbind_env_set();
-	winbind_off();
+	(void)winbind_off();
 
 #ifdef HAVE_GETGROUPLIST
 	retval = getgrouplist(user, gid, groups, grpcnt);
@@ -137,7 +137,7 @@ static int sys_getgrouplist(const char *user, gid_t gid, gid_t *groups, int *grp
 
 	/* allow winbindd lookups, but only if they were not already disabled */
 	if (!winbind_env) {
-		winbind_on();
+		(void)winbind_on();
 	}
 
 	return retval;
diff --git a/source/nsswitch/wb_common.c b/source/nsswitch/wb_common.c
index 49a2935..b113fc3 100644
--- a/source/nsswitch/wb_common.c
+++ b/source/nsswitch/wb_common.c
@@ -538,18 +538,6 @@ int winbindd_read_reply(struct winbindd_response *response)
 	return result1 + result2;
 }
 
-bool winbind_env_set(void)
-{
-	char *env;
-	
-	if ((env=getenv(WINBINDD_DONT_ENV)) != NULL) {
-		if(strcmp(env, "1") == 0) {
-			return true;
-		}
-	}
-	return false;
-}
-
 /* 
  * send simple types of requests 
  */
@@ -663,21 +651,6 @@ NSS_STATUS winbindd_priv_request_response(int req_type,
 }
 
 /*************************************************************************
- A couple of simple functions to disable winbindd lookups and re-
- enable them
- ************************************************************************/
- 
-bool winbind_off(void)
-{
-	return setenv(WINBINDD_DONT_ENV, "1", 1) != -1;
-}
-
-bool winbind_on(void)
-{
-	return setenv(WINBINDD_DONT_ENV, "0", 1) != -1;
-}
-
-/*************************************************************************
  ************************************************************************/
 
 const char *nss_err_str(NSS_STATUS ret)
diff --git a/source/nsswitch/winbind_client.h b/source/nsswitch/winbind_client.h
index 2a3956e..757f586 100644
--- a/source/nsswitch/winbind_client.h
+++ b/source/nsswitch/winbind_client.h
@@ -14,9 +14,14 @@ NSS_STATUS winbindd_priv_request_response(int req_type,
 					  struct winbindd_response *response);
 int winbindd_read_reply(struct winbindd_response *response);
 
-bool winbind_env_set(void);
-bool winbind_off(void);
-bool winbind_on(void);
+#define winbind_env_set() \
+	(strcmp(getenv(WINBINDD_DONT_ENV)?getenv(WINBINDD_DONT_ENV):"0","1") == 0)
+
+#define winbind_off() \
+	(setenv(WINBINDD_DONT_ENV, "1", 1) == 0)
+
+#define winbind_on() \
+	(setenv(WINBINDD_DONT_ENV, "0", 1) == 0)
 
 int winbind_write_sock(void *buffer, int count, int recursing, int need_priv);
 int winbind_read_sock(void *buffer, int count);
diff --git a/source/passdb/pdb_interface.c b/source/passdb/pdb_interface.c
index fbba8bc..cd34c89 100644
--- a/source/passdb/pdb_interface.c
+++ b/source/passdb/pdb_interface.c
@@ -1349,7 +1349,7 @@ static bool get_memberuids(TALLOC_CTX *mem_ctx, gid_t gid, uid_t **pp_uids, size
 
 	/* We only look at our own sam, so don't care about imported stuff */
 	winbind_env = winbind_env_set();
-	winbind_off();
+	(void)winbind_off();
 
 	if ((grp = getgrgid(gid)) == NULL) {
 		/* allow winbindd lookups, but only if they weren't already disabled */
@@ -1385,7 +1385,7 @@ static bool get_memberuids(TALLOC_CTX *mem_ctx, gid_t gid, uid_t **pp_uids, size
 
 	/* allow winbindd lookups, but only if they weren't already disabled */
 	if (!winbind_env) {
-		winbind_on();
+		(void)winbind_on();
 	}
 	
 	return ret;
diff --git a/source/winbindd/idmap_nss.c b/source/winbindd/idmap_nss.c
index 46c24d7..e4acd9c 100644
--- a/source/winbindd/idmap_nss.c
+++ b/source/winbindd/idmap_nss.c
@@ -87,10 +87,10 @@ static NTSTATUS idmap_nss_unixids_to_sids(struct idmap_domain *dom, struct id_ma
 
 		/* by default calls to winbindd are disabled
 		   the following call will not recurse so this is safe */
-		winbind_on();
+		(void)winbind_on();
 		/* Lookup name from PDC using lsa_lookup_names() */
 		ret = winbind_lookup_name(dom->name, name, ids[i]->sid, &type);
-		winbind_off();
+		(void)winbind_off();
 
 		if (!ret) {
 			/* TODO: how do we know if the name is really not mapped,
@@ -153,9 +153,9 @@ static NTSTATUS idmap_nss_sids_to_unixids(struct idmap_domain *dom, struct id_ma
 
 		/* by default calls to winbindd are disabled
 		   the following call will not recurse so this is safe */
-		winbind_on();
+		(void)winbind_on();
 		ret = winbind_lookup_sid(ctx, ids[i]->sid, &dom_name, &name, &type);
-		winbind_off();
+		(void)winbind_off();
 
 		if (!ret) {
 			/* TODO: how do we know if the name is really not mapped,


-- 
Samba Shared Repository


More information about the samba-cvs mailing list