[SCM] SAMBA-CTDB repository - branch v3-4-ctdb updated - 3.4.7-ctdb-4-7-gfce4c32

Volker Lendecke vlendec at samba.org
Tue May 11 08:44:39 MDT 2010


The branch, v3-4-ctdb has been updated
       via  fce4c325d9020dc4f67dd847649dc9bfa3d6cbd7 (commit)
       via  46e19554db30638fec32e909c7d8a6e05379d0b5 (commit)
       via  05763451f78885ea1b94e6621dbd58a813766251 (commit)
       via  4d77e276119781cbe9f237c0326d465695586689 (commit)
      from  ad8b573e6b2a0df0dadadbe8d2395b8212a940f6 (commit)

http://gitweb.samba.org/?p=obnox/samba-ctdb.git;a=shortlog;h=v3-4-ctdb


- Log -----------------------------------------------------------------
commit fce4c325d9020dc4f67dd847649dc9bfa3d6cbd7
Author: Volker Lendecke <vl at samba.org>
Date:   Tue May 11 11:59:40 2010 +0200

    v3-4-ctdb: Bump up the vendor patch level to 5

commit 46e19554db30638fec32e909c7d8a6e05379d0b5
Author: Volker Lendecke <vl at samba.org>
Date:   Mon May 10 12:05:01 2010 +0200

    libwbclient: Fix a fd-leak at dlclose-time
    
    __attribute__((destructor)) makes winbind_close_sock() being called at
    dlclose() time.
    
    Found while testing apache on Linux with mod_auth_pam.
    
    Other platforms will have to find a different fix. One possibility would be to
    always close the socket after each operation, but this badly sucks
    performance-wise.

commit 05763451f78885ea1b94e6621dbd58a813766251
Author: Volker Lendecke <vl at samba.org>
Date:   Mon May 10 11:53:03 2010 +0200

    s3: Test for "__attribute__((destructor))"

commit 4d77e276119781cbe9f237c0326d465695586689
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Jan 23 18:06:53 2010 +0100

    nsswitch: Make some functions static

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

Summary of changes:
 nsswitch/wb_common.c      |   15 ++++++++++-----
 nsswitch/winbind_client.h |    6 ------
 source3/VERSION           |    2 +-
 source3/configure.in      |   16 ++++++++++++++++
 4 files changed, 27 insertions(+), 12 deletions(-)


Changeset truncated at 500 lines:

diff --git a/nsswitch/wb_common.c b/nsswitch/wb_common.c
index d0dfcb8..f27c688 100644
--- a/nsswitch/wb_common.c
+++ b/nsswitch/wb_common.c
@@ -41,7 +41,8 @@ void winbindd_free_response(struct winbindd_response *response)
 
 /* Initialise a request structure */
 
-void winbindd_init_request(struct winbindd_request *request, int request_type)
+static void winbindd_init_request(struct winbindd_request *request,
+				  int request_type)
 {
 	request->length = sizeof(struct winbindd_request);
 
@@ -61,7 +62,10 @@ static void init_response(struct winbindd_response *response)
 
 /* Close established socket */
 
-void winbind_close_sock(void)
+#if HAVE_FUNCTION_ATTRIBUTE_DESTRUCTOR
+__attribute__((destructor))
+#endif
+static void winbind_close_sock(void)
 {
 	if (winbindd_fd != -1) {
 		close(winbindd_fd);
@@ -363,7 +367,8 @@ static int winbind_open_pipe_sock(int recursing, int need_priv)
 
 /* Write data to winbindd socket */
 
-int winbind_write_sock(void *buffer, int count, int recursing, int need_priv)
+static int winbind_write_sock(void *buffer, int count, int recursing,
+			      int need_priv)
 {
 	int result, nwritten;
 
@@ -430,7 +435,7 @@ int winbind_write_sock(void *buffer, int count, int recursing, int need_priv)
 
 /* Read data from winbindd socket */
 
-int winbind_read_sock(void *buffer, int count)
+static int winbind_read_sock(void *buffer, int count)
 {
 	int nread = 0;
 	int total_time = 0, selret;
@@ -496,7 +501,7 @@ int winbind_read_sock(void *buffer, int count)
 
 /* Read reply */
 
-int winbindd_read_reply(struct winbindd_response *response)
+static int winbindd_read_reply(struct winbindd_response *response)
 {
 	int result1, result2 = 0;
 
diff --git a/nsswitch/winbind_client.h b/nsswitch/winbind_client.h
index b004d9c..d4f60a2 100644
--- a/nsswitch/winbind_client.h
+++ b/nsswitch/winbind_client.h
@@ -1,7 +1,6 @@
 #include "winbind_nss_config.h"
 #include "winbind_struct_protocol.h"
 
-void winbindd_init_request(struct winbindd_request *req,int rq_type);
 void winbindd_free_response(struct winbindd_response *response);
 NSS_STATUS winbindd_send_request(int req_type, int need_priv,
 				 struct winbindd_request *request);
@@ -12,8 +11,6 @@ NSS_STATUS winbindd_request_response(int req_type,
 NSS_STATUS winbindd_priv_request_response(int req_type,
 					  struct winbindd_request *request,
 					  struct winbindd_response *response);
-int winbindd_read_reply(struct winbindd_response *response);
-
 #define winbind_env_set() \
 	(strcmp(getenv(WINBINDD_DONT_ENV)?getenv(WINBINDD_DONT_ENV):"0","1") == 0)
 
@@ -23,8 +20,5 @@ int winbindd_read_reply(struct winbindd_response *response);
 #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);
-void winbind_close_sock(void);
 
 const char *nss_err_str(NSS_STATUS ret);
diff --git a/source3/VERSION b/source3/VERSION
index 661b625..fd9dff0 100644
--- a/source3/VERSION
+++ b/source3/VERSION
@@ -85,7 +85,7 @@ SAMBA_VERSION_IS_GIT_SNAPSHOT=
 #                                                      #
 ########################################################
 SAMBA_VERSION_VENDOR_SUFFIX="ctdb"
-SAMBA_VERSION_VENDOR_PATCH=4
+SAMBA_VERSION_VENDOR_PATCH=5
 
 ########################################################
 # This can be set by vendors if they want..            #
diff --git a/source3/configure.in b/source3/configure.in
index d61fed8..f7c0677 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -1362,6 +1362,22 @@ if test x"$samba_cv_stat_dos_flags" = x"yes" ; then
     AC_DEFINE(HAVE_STAT_DOS_FLAGS, 1, [whether there is DOS flags support in the stat struct])
 fi
 
+AC_CACHE_CHECK([whether we can compile with __attribute__((destructor))],
+	       samba_cv_function_attribute_destructor,
+	       [
+	         AC_COMPILE_IFELSE(
+			[
+				__attribute__((destructor))
+				static void cleanup(void) { }
+			],
+			samba_cv_function_attribute_destructor=yes)
+		])
+
+if test x"$samba_cv_function_attribute_destructor" = xyes ; then
+   AC_DEFINE(HAVE_FUNCTION_ATTRIBUTE_DESTRUCTOR, 1,
+	     [whether we can compile with __attribute__((destructor))])
+fi
+
 #####################################
 # needed for SRV lookups
 AC_CHECK_LIB(resolv, dn_expand)


-- 
SAMBA-CTDB repository


More information about the samba-cvs mailing list