[SCM] Samba Shared Repository - branch master updated

Simo Sorce idra at samba.org
Tue Feb 23 10:46:55 MST 2010


The branch, master has been updated
       via  61b7a24... s3 move the sitename cache in its own file
      from  c31cf0a... s3: Consolidate some pid_to_procid() calls to procid_self()

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 61b7a24f16c9d3a3c41df19ac7073571164eb47a
Author: Simo Sorce <idra at samba.org>
Date:   Tue Feb 23 11:11:37 2010 -0500

    s3 move the sitename cache in its own file

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

Summary of changes:
 source3/Makefile.in             |    3 +-
 source3/include/proto.h         |    3 -
 source3/libads/dns.c            |  113 --------------------------------
 source3/libads/ldap.c           |    1 +
 source3/libads/sitename_cache.c |  136 +++++++++++++++++++++++++++++++++++++++
 source3/libads/sitename_cache.h |   28 ++++++++
 source3/libsmb/dsgetdcname.c    |    1 +
 source3/libsmb/namequery.c      |    1 +
 source3/libsmb/namequery_dc.c   |    1 +
 source3/utils/net_lookup.c      |    1 +
 source3/winbindd/winbindd_cm.c  |    1 +
 11 files changed, 172 insertions(+), 117 deletions(-)
 create mode 100644 source3/libads/sitename_cache.c
 create mode 100644 source3/libads/sitename_cache.h


Changeset truncated at 500 lines:

diff --git a/source3/Makefile.in b/source3/Makefile.in
index c409308..e966023 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -464,7 +464,8 @@ LIBNBT_OBJ = ../libcli/nbt/nbtname.o \
 	     ../librpc/ndr/ndr_svcctl.o
 
 LIBNMB_OBJ = libsmb/unexpected.o libsmb/namecache.o libsmb/nmblib.o \
-	     libsmb/namequery.o ../libcli/nbt/lmhosts.o libsmb/conncache.o libads/dns.o
+	     libsmb/namequery.o ../libcli/nbt/lmhosts.o libsmb/conncache.o \
+	     libads/dns.o libads/sitename_cache.o
 
 NTERR_OBJ = libsmb/nterr.o libsmb/smberr.o
 DOSERR_OBJ = ../libcli/util/doserr.o
diff --git a/source3/include/proto.h b/source3/include/proto.h
index ca1a38b..f8c3032 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1748,9 +1748,6 @@ NTSTATUS ads_dns_lookup_ns(TALLOC_CTX *ctx,
 				const char *dnsdomain,
 				struct dns_rr_ns **nslist,
 				int *numns);
-bool sitename_store(const char *realm, const char *sitename);
-char *sitename_fetch(const char *realm);
-bool stored_sitename_changed(const char *realm, const char *sitename);
 NTSTATUS ads_dns_query_dcs(TALLOC_CTX *ctx,
 			   const char *realm,
 			   const char *sitename,
diff --git a/source3/libads/dns.c b/source3/libads/dns.c
index 2fa6f18..dc573e3 100644
--- a/source3/libads/dns.c
+++ b/source3/libads/dns.c
@@ -726,119 +726,6 @@ NTSTATUS ads_dns_lookup_ns(TALLOC_CTX *ctx,
 	return NT_STATUS_OK;
 }
 
-/****************************************************************************
- Store and fetch the AD client sitename.
-****************************************************************************/
-
-#define SITENAME_KEY	"AD_SITENAME/DOMAIN/%s"
-
-static char *sitename_key(const char *realm)
-{
-	char *keystr;
-
-	if (asprintf_strupper_m(&keystr, SITENAME_KEY, realm) == -1) {
-		return NULL;
-	}
-
-	return keystr;
-}
-
-
-/****************************************************************************
- Store the AD client sitename.
- We store indefinately as every new CLDAP query will re-write this.
-****************************************************************************/
-
-bool sitename_store(const char *realm, const char *sitename)
-{
-	time_t expire;
-	bool ret = False;
-	char *key;
-
-	if (!realm || (strlen(realm) == 0)) {
-		DEBUG(0,("sitename_store: no realm\n"));
-		return False;
-	}
-
-	key = sitename_key(realm);
-
-	if (!sitename || (sitename && !*sitename)) {
-		DEBUG(5,("sitename_store: deleting empty sitename!\n"));
-		ret = gencache_del(key);
-		SAFE_FREE(key);
-		return ret;
-	}
-
-	expire = get_time_t_max(); /* Store indefinately. */
-
-	DEBUG(10,("sitename_store: realm = [%s], sitename = [%s], expire = [%u]\n",
-		realm, sitename, (unsigned int)expire ));
-
-	ret = gencache_set( key, sitename, expire );
-	SAFE_FREE(key);
-	return ret;
-}
-
-/****************************************************************************
- Fetch the AD client sitename.
- Caller must free.
-****************************************************************************/
-
-char *sitename_fetch(const char *realm)
-{
-	char *sitename = NULL;
-	time_t timeout;
-	bool ret = False;
-	const char *query_realm;
-	char *key;
-
-	if (!realm || (strlen(realm) == 0)) {
-		query_realm = lp_realm();
-	} else {
-		query_realm = realm;
-	}
-
-	key = sitename_key(query_realm);
-
-	ret = gencache_get( key, &sitename, &timeout );
-	SAFE_FREE(key);
-	if ( !ret ) {
-		DEBUG(5,("sitename_fetch: No stored sitename for %s\n",
-			query_realm));
-	} else {
-		DEBUG(5,("sitename_fetch: Returning sitename for %s: \"%s\"\n",
-			query_realm, sitename ));
-	}
-	return sitename;
-}
-
-/****************************************************************************
- Did the sitename change ?
-****************************************************************************/
-
-bool stored_sitename_changed(const char *realm, const char *sitename)
-{
-	bool ret = False;
-
-	char *new_sitename;
-
-	if (!realm || (strlen(realm) == 0)) {
-		DEBUG(0,("stored_sitename_changed: no realm\n"));
-		return False;
-	}
-
-	new_sitename = sitename_fetch(realm);
-
-	if (sitename && new_sitename && !strequal(sitename, new_sitename)) {
-		ret = True;
-	} else if ((sitename && !new_sitename) ||
-			(!sitename && new_sitename)) {
-		ret = True;
-	}
-	SAFE_FREE(new_sitename);
-	return ret;
-}
-
 /********************************************************************
  Query with optional sitename.
 ********************************************************************/
diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c
index 33d22d0..df45be5 100644
--- a/source3/libads/ldap.c
+++ b/source3/libads/ldap.c
@@ -23,6 +23,7 @@
 
 #include "includes.h"
 #include "lib/ldb/include/ldb.h"
+#include "libads/sitename_cache.h"
 
 #ifdef HAVE_LDAP
 
diff --git a/source3/libads/sitename_cache.c b/source3/libads/sitename_cache.c
new file mode 100644
index 0000000..cb1bae5
--- /dev/null
+++ b/source3/libads/sitename_cache.c
@@ -0,0 +1,136 @@
+/*
+   Unix SMB/CIFS implementation.
+   DNS utility library
+   Copyright (C) Gerald (Jerry) Carter           2006.
+   Copyright (C) Jeremy Allison                  2007.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "libads/sitename_cache.h"
+
+/****************************************************************************
+ Store and fetch the AD client sitename.
+****************************************************************************/
+
+#define SITENAME_KEY	"AD_SITENAME/DOMAIN/%s"
+
+static char *sitename_key(const char *realm)
+{
+	char *keystr;
+
+	if (asprintf_strupper_m(&keystr, SITENAME_KEY, realm) == -1) {
+		return NULL;
+	}
+
+	return keystr;
+}
+
+
+/****************************************************************************
+ Store the AD client sitename.
+ We store indefinately as every new CLDAP query will re-write this.
+****************************************************************************/
+
+bool sitename_store(const char *realm, const char *sitename)
+{
+	time_t expire;
+	bool ret = False;
+	char *key;
+
+	if (!realm || (strlen(realm) == 0)) {
+		DEBUG(0,("sitename_store: no realm\n"));
+		return False;
+	}
+
+	key = sitename_key(realm);
+
+	if (!sitename || (sitename && !*sitename)) {
+		DEBUG(5,("sitename_store: deleting empty sitename!\n"));
+		ret = gencache_del(key);
+		SAFE_FREE(key);
+		return ret;
+	}
+
+	expire = get_time_t_max(); /* Store indefinately. */
+
+	DEBUG(10,("sitename_store: realm = [%s], sitename = [%s], expire = [%u]\n",
+		realm, sitename, (unsigned int)expire ));
+
+	ret = gencache_set( key, sitename, expire );
+	SAFE_FREE(key);
+	return ret;
+}
+
+/****************************************************************************
+ Fetch the AD client sitename.
+ Caller must free.
+****************************************************************************/
+
+char *sitename_fetch(const char *realm)
+{
+	char *sitename = NULL;
+	time_t timeout;
+	bool ret = False;
+	const char *query_realm;
+	char *key;
+
+	if (!realm || (strlen(realm) == 0)) {
+		query_realm = lp_realm();
+	} else {
+		query_realm = realm;
+	}
+
+	key = sitename_key(query_realm);
+
+	ret = gencache_get( key, &sitename, &timeout );
+	SAFE_FREE(key);
+	if ( !ret ) {
+		DEBUG(5,("sitename_fetch: No stored sitename for %s\n",
+			query_realm));
+	} else {
+		DEBUG(5,("sitename_fetch: Returning sitename for %s: \"%s\"\n",
+			query_realm, sitename ));
+	}
+	return sitename;
+}
+
+/****************************************************************************
+ Did the sitename change ?
+****************************************************************************/
+
+bool stored_sitename_changed(const char *realm, const char *sitename)
+{
+	bool ret = False;
+
+	char *new_sitename;
+
+	if (!realm || (strlen(realm) == 0)) {
+		DEBUG(0,("stored_sitename_changed: no realm\n"));
+		return False;
+	}
+
+	new_sitename = sitename_fetch(realm);
+
+	if (sitename && new_sitename && !strequal(sitename, new_sitename)) {
+		ret = True;
+	} else if ((sitename && !new_sitename) ||
+			(!sitename && new_sitename)) {
+		ret = True;
+	}
+	SAFE_FREE(new_sitename);
+	return ret;
+}
+
diff --git a/source3/libads/sitename_cache.h b/source3/libads/sitename_cache.h
new file mode 100644
index 0000000..4e62f00
--- /dev/null
+++ b/source3/libads/sitename_cache.h
@@ -0,0 +1,28 @@
+/*
+   Unix SMB/CIFS implementation.
+   DNS utility library
+   Copyright (C) Gerald (Jerry) Carter           2006.
+   Copyright (C) Jeremy Allison                  2007.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef _LIBADS_SITENAME_CACHE_H_
+#define _LIBADS_SITENAME_CACHE_H_
+
+bool sitename_store(const char *realm, const char *sitename);
+char *sitename_fetch(const char *realm);
+bool stored_sitename_changed(const char *realm, const char *sitename);
+
+#endif /* _LIBADS_SITENAME_CACHE_H_ */
diff --git a/source3/libsmb/dsgetdcname.c b/source3/libsmb/dsgetdcname.c
index 00339d2..6e67e05 100644
--- a/source3/libsmb/dsgetdcname.c
+++ b/source3/libsmb/dsgetdcname.c
@@ -21,6 +21,7 @@
 */
 
 #include "includes.h"
+#include "libads/sitename_cache.h"
 
 #define DSGETDCNAME_FMT	"DSGETDCNAME/DOMAIN/%s"
 /* 15 minutes */
diff --git a/source3/libsmb/namequery.c b/source3/libsmb/namequery.c
index ed718ce..a77f5e4 100644
--- a/source3/libsmb/namequery.c
+++ b/source3/libsmb/namequery.c
@@ -19,6 +19,7 @@
 */
 
 #include "includes.h"
+#include "libads/sitename_cache.h"
 
 /* nmbd.c sets this to True. */
 bool global_in_nmbd = False;
diff --git a/source3/libsmb/namequery_dc.c b/source3/libsmb/namequery_dc.c
index 7b0748f..3b3470d 100644
--- a/source3/libsmb/namequery_dc.c
+++ b/source3/libsmb/namequery_dc.c
@@ -23,6 +23,7 @@
 
 
 #include "includes.h"
+#include "libads/sitename_cache.h"
 
 /**********************************************************************
  Is this our primary domain ?
diff --git a/source3/utils/net_lookup.c b/source3/utils/net_lookup.c
index 658e904..102f1b2 100644
--- a/source3/utils/net_lookup.c
+++ b/source3/utils/net_lookup.c
@@ -18,6 +18,7 @@
 
 #include "includes.h"
 #include "utils/net.h"
+#include "libads/sitename_cache.h"
 
 int net_lookup_usage(struct net_context *c, int argc, const char **argv)
 {
diff --git a/source3/winbindd/winbindd_cm.c b/source3/winbindd/winbindd_cm.c
index ed06dde..6bdeac1 100644
--- a/source3/winbindd/winbindd_cm.c
+++ b/source3/winbindd/winbindd_cm.c
@@ -65,6 +65,7 @@
 #include "../librpc/gen_ndr/cli_samr.h"
 #include "../librpc/gen_ndr/cli_lsa.h"
 #include "../librpc/gen_ndr/cli_dssetup.h"
+#include "libads/sitename_cache.h"
 
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_WINBIND


-- 
Samba Shared Repository


More information about the samba-cvs mailing list