Build status as of Sun Mar 22 00:00:02 2009
URL: http://build.samba.org/ --- /home/build/master/cache/broken_results.txt.old 2009-03-21 00:00:30.0 + +++ /home/build/master/cache/broken_results.txt 2009-03-22 00:00:17.0 + @@ -1,4 +1,4 @@ -Build status as of Sat Mar 21 00:00:02 2009 +Build status as of Sun Mar 22 00:00:02 2009 Build counts: Tree Total Broken Panic @@ -6,16 +6,16 @@ ccache 30 5 0 ctdb 0 0 0 distcc 0 0 0 -ldb 29 30 0 -libreplace 28 11 0 +ldb 30 30 0 +libreplace 30 11 0 lorikeet-heimdal 27 14 0 pidl 21 3 0 ppp 13 0 0 -rsync30 10 0 +rsync29 10 0 samba-docs 0 0 0 samba-gtk5 5 0 samba_3_X_devel 29 28 0 -samba_3_X_test 27 25 1 +samba_3_X_test 28 25 1 samba_4_0_test 30 29 1 smb-build29 6 0 talloc 30 30 0
[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha7-644-g59dff57
The branch, master has been updated via 59dff5745528a3efe585cdeb03e2bedd6b2e404a (commit) from 986c2e01cca0be993f1e52d3a27819f4044bfe4b (commit) http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit 59dff5745528a3efe585cdeb03e2bedd6b2e404a Author: Volker Lendecke Date: Sat Mar 21 23:57:14 2009 +0100 Document talloc_zero_array() --- Summary of changes: lib/talloc/talloc.h | 16 1 files changed, 16 insertions(+), 0 deletions(-) Changeset truncated at 500 lines: diff --git a/lib/talloc/talloc.h b/lib/talloc/talloc.h index 9806bdd..ae488ba 100644 --- a/lib/talloc/talloc.h +++ b/lib/talloc/talloc.h @@ -426,6 +426,22 @@ typedef void TALLOC_CTX; #define talloc_zero_size(ctx, size) _talloc_zero(ctx, size, __location__) +/** + * \def talloc_zero_array(ctx, type, count) + * \brief Allocate a 0-initialized array + * \param ctx The talloc context to hang the result off + * \param type The type that we want to allocate + * \param count The number of "type" elements you want to allocate + * \return The allocated result, properly cast to "type *" + * \ingroup talloc_array + * + * The talloc_zero_array() macro is equivalent to: + * + * \code + * ptr = talloc_array(ctx, type, count); + * if (ptr) memset(ptr, sizeof(type) * count); + * \endcode + */ #define talloc_zero_array(ctx, type, count) (type *)_talloc_zero_array(ctx, sizeof(type), count, #type) /** -- Samba Shared Repository
[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha7-643-g986c2e0
The branch, master has been updated via 986c2e01cca0be993f1e52d3a27819f4044bfe4b (commit) from 3f81649b8dcadb3bd424f41d803dbd59f770b9ba (commit) http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit 986c2e01cca0be993f1e52d3a27819f4044bfe4b Author: Volker Lendecke Date: Sat Mar 21 23:49:30 2009 +0100 Document talloc_parent, talloc_parent_name and talloc_is_parent --- Summary of changes: lib/talloc/talloc.h | 29 + 1 files changed, 29 insertions(+), 0 deletions(-) Changeset truncated at 500 lines: diff --git a/lib/talloc/talloc.h b/lib/talloc/talloc.h index d103d6f..9806bdd 100644 --- a/lib/talloc/talloc.h +++ b/lib/talloc/talloc.h @@ -849,7 +849,25 @@ const char *talloc_get_name(const void *ptr); void *talloc_check_name(const void *ptr, const char *name); void *_talloc_get_type_abort(const void *ptr, const char *name, const char *location); + +/** + * \brief Return the parent chunk of a pointer + * \param ptr The talloc pointer to inspect + * \return The talloc parent of "ptr" + * \ingroup talloc_basic + * + * Return the parent chunk of a pointer + */ void *talloc_parent(const void *ptr); + +/** + * \brief Return a talloc chunk's parent name + * \param ptr The talloc pointer to inspect + * \return The name of ptr's parent chunk + * \ingroup talloc_basic + * + * Return a talloc chunk's parent name + */ const char *talloc_parent_name(const void *ptr); /** @@ -1149,6 +1167,17 @@ size_t talloc_get_size(const void *ctx); */ void *talloc_find_parent_byname(const void *ctx, const char *name); void talloc_show_parents(const void *context, FILE *file); + +/** + * \brief Check if a context is parent of a talloc chunk + * \param context The assumed talloc context + * \param ptr The talloc chunk to check + * \return Is context an anchestor of ptr + * \ingroup talloc_basic + * + * talloc_is_parent() checks if context is referenced in the talloc + * hierarchy above ptr. Return 1 if this is the case, 0 if not. + */ int talloc_is_parent(const void *context, const void *ptr); /** -- Samba Shared Repository
[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha7-642-g3f81649
The branch, master has been updated via 3f81649b8dcadb3bd424f41d803dbd59f770b9ba (commit) via 2ce70d4f5a30973b4cc083dbbb38b519007a31bd (commit) via 02662d56c64f367bffa2febba9a396c15454cfdb (commit) from 27944ed7452207ef3c686ff6bcd9c4e1cb7f36d8 (commit) http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit 3f81649b8dcadb3bd424f41d803dbd59f770b9ba Author: Volker Lendecke Date: Sat Mar 21 20:02:50 2009 +0100 Document TALLOC_FREE() commit 2ce70d4f5a30973b4cc083dbbb38b519007a31bd Author: Volker Lendecke Date: Sat Mar 21 20:02:42 2009 +0100 Document _talloc commit 02662d56c64f367bffa2febba9a396c15454cfdb Author: Volker Lendecke Date: Sat Mar 21 20:02:19 2009 +0100 Add a talloc_internal "module" --- Summary of changes: lib/talloc/talloc.h | 30 +- 1 files changed, 29 insertions(+), 1 deletions(-) Changeset truncated at 500 lines: diff --git a/lib/talloc/talloc.h b/lib/talloc/talloc.h index e44d924..d103d6f 100644 --- a/lib/talloc/talloc.h +++ b/lib/talloc/talloc.h @@ -125,6 +125,15 @@ */ /** + * \defgroup talloc_internal Internal routines + * + * To achieve type-safety, talloc.h defines a lot of macros with type + * casts. These macros define the user interface to the internal routines you + * find here. You should not really use these routines directly but go through + * the external API. + */ + +/** * \defgroup talloc_undoc Default group of undocumented stuff * * This should be empty... @@ -624,9 +633,28 @@ typedef void TALLOC_CTX; #define talloc_append_string(c, s, a) (s?talloc_strdup_append(s,a):talloc_strdup(c, a)) #endif +/** + * \def TALLOC_FREE(ctx) + * \brief talloc_free a chunk and NULL out the pointer + * \param ctx The chunk to be freed + * \ingroup talloc_basic + * + * TALLOC_FREE() frees a pointer and sets it to NULL. Use this if you want + * immediate feedback (i.e. crash) if you use a pointer after having free'ed + * it. + */ #define TALLOC_FREE(ctx) do { talloc_free(ctx); ctx=NULL; } while(0) -/* The following definitions come from talloc.c */ +/** + * \brief Allocate untyped, unnamed memory + * \param context The talloc context to hang the result off + * \param size Number of char's that you want to allocate + * \return The allocated memory chunk + * \ingroup talloc_internal + * + * Essentially the same as talloc_size() without setting the chunk name to the + * current file/line number. + */ void *_talloc(const void *context, size_t size); /** -- Samba Shared Repository
[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha7-639-g27944ed
The branch, master has been updated via 27944ed7452207ef3c686ff6bcd9c4e1cb7f36d8 (commit) from db447d0c476699dbf7fa0567c67f5938674ec811 (commit) http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit 27944ed7452207ef3c686ff6bcd9c4e1cb7f36d8 Author: Volker Lendecke Date: Sat Mar 21 19:48:54 2009 +0100 Document talloc_pool() --- Summary of changes: lib/talloc/talloc.h | 35 +++ 1 files changed, 35 insertions(+), 0 deletions(-) Changeset truncated at 500 lines: diff --git a/lib/talloc/talloc.h b/lib/talloc/talloc.h index 4adc67b..e44d924 100644 --- a/lib/talloc/talloc.h +++ b/lib/talloc/talloc.h @@ -628,6 +628,41 @@ typedef void TALLOC_CTX; /* The following definitions come from talloc.c */ void *_talloc(const void *context, size_t size); + +/** + * \brief Allocate a talloc pool + * \param context The talloc context to hang the result off + * \param size Size of the talloc pool + * \result The talloc pool + * \ingroup talloc_basic + * + * A talloc pool is a pure optimization for specific situations. In the + * release process for Samba 3.2 we found out that we had become considerably + * slower than Samba 3.0 was. Profiling showed that malloc(3) was a large CPU + * consumer in benchmarks. For Samba 3.2 we have internally converted many + * static buffers to dynamically allocated ones, so malloc(3) being beaten + * more was no surprise. But it made us slower. + * + * talloc_pool() is an optimization to call malloc(3) a lot less for the use + * pattern Samba has: The SMB protocol is mainly a request/response protocol + * where we have to allocate a certain amount of memory per request and free + * that after the SMB reply is sent to the client. + * + * talloc_pool() creates a talloc chunk that you can use as a talloc parent + * exactly as you would use any other ::TALLOC_CTX. The difference is that + * when you talloc a child of this pool, no malloc(3) is done. Instead, talloc + * just increments a pointer inside the talloc_pool. This also works + * recursively. If you use the child of the talloc pool as a parent for + * grand-children, their memory is also taken from the talloc pool. + * + * If you talloc_free() children of a talloc pool, the memory is not given + * back to the system. Instead, free(3) is only called if the talloc_pool() + * itself is released with talloc_free(). + * + * The downside of a talloc pool is that if you talloc_move() a child of a + * talloc pool to a talloc parent outside the pool, the whole pool memory is + * not free(3)'ed until that moved chunk is also talloc_free()ed. + */ void *talloc_pool(const void *context, size_t size); void _talloc_set_destructor(const void *ptr, int (*destructor)(void *)); -- Samba Shared Repository
[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha7-638-gdb447d0
The branch, master has been updated via db447d0c476699dbf7fa0567c67f5938674ec811 (commit) via cfce2d3611f225244fadf3d27d76371827fd6422 (commit) via ba42320c7e9f5ccbd32eccbfb1f2d77e13b3a318 (commit) via 3f9c30022a53a37ad829f8882a9a5161fcadda8b (commit) via d21212c9192b41a3fdc7e96cb9bf0125a1dc6c2d (commit) via f55e84e904173bed8dc9099ad523ca1e7be12355 (commit) from 3b73cdb41201dd545e019e8e8313f6b8c51c7226 (commit) http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit db447d0c476699dbf7fa0567c67f5938674ec811 Author: Volker Lendecke Date: Sat Mar 21 16:58:54 2009 +0100 Reformatting commit cfce2d3611f225244fadf3d27d76371827fd6422 Author: Volker Lendecke Date: Sat Mar 21 16:52:13 2009 +0100 Add some initial hook to the front page commit ba42320c7e9f5ccbd32eccbfb1f2d77e13b3a318 Author: Volker Lendecke Date: Sat Mar 21 16:50:58 2009 +0100 Add a default "undocumented" module commit 3f9c30022a53a37ad829f8882a9a5161fcadda8b Author: Volker Lendecke Date: Sat Mar 21 16:40:33 2009 +0100 Delete talloc_guide.txt commit d21212c9192b41a3fdc7e96cb9bf0125a1dc6c2d Author: Volker Lendecke Date: Sat Mar 21 12:43:08 2009 +0100 Convert the contents of talloc_guide.txt to doxygen-style talloc.h comments talloc_guide.txt was partly outdated, and as going through talloc.h now shows it was incomplete. commit f55e84e904173bed8dc9099ad523ca1e7be12355 Author: Volker Lendecke Date: Sat Mar 21 10:17:24 2009 +0100 Add a basic Doxyfile for talloc --- Summary of changes: lib/talloc/Doxyfile |8 + lib/talloc/talloc.h | 1041 ++- lib/talloc/talloc_guide.txt | 694 3 files changed, 1048 insertions(+), 695 deletions(-) create mode 100644 lib/talloc/Doxyfile delete mode 100644 lib/talloc/talloc_guide.txt Changeset truncated at 500 lines: diff --git a/lib/talloc/Doxyfile b/lib/talloc/Doxyfile new file mode 100644 index 000..0ccf563 --- /dev/null +++ b/lib/talloc/Doxyfile @@ -0,0 +1,8 @@ +OUTPUT_DIRECTORY = doc +PROJECT_NAME = Talloc +OPTIMIZE_OUTPUT_FOR_C = YES +GENERATE_LATEX = NO +GENERATE_MAN = YES +MACRO_EXPANSION= YES +EXPAND_ONLY_PREDEF = YES +PREDEFINED = PRINTF_ATTRIBUTE(x,y)= diff --git a/lib/talloc/talloc.h b/lib/talloc/talloc.h index 5c8d5c5..4adc67b 100644 --- a/lib/talloc/talloc.h +++ b/lib/talloc/talloc.h @@ -29,7 +29,134 @@ #include #include -/* this is only needed for compatibility with the old talloc */ +/** \mainpage + * + * \section intro_sec Introduction + * + * Talloc is a hierarchical, reference counted memory pool system with + * destructors. Quite a mouthful really, but not too bad once you get used to + * it. + * + * Perhaps the biggest difference from other memory pool systems is that there + * is no distinction between a "talloc context" and a "talloc pointer". Any + * pointer returned from talloc() is itself a valid talloc context. This means + * you can do this: + * + * \code + * struct foo *X = talloc(mem_ctx, struct foo); + * X->name = talloc_strdup(X, "foo"); + * \endcode + * + * and the pointer X->name would be a "child" of the talloc context "X" which + * is itself a child of mem_ctx. So if you do talloc_free(mem_ctx) then it is + * all destroyed, whereas if you do talloc_free(X) then just X and X->name are + * destroyed, and if you do talloc_free(X->name) then just the name element of + * X is destroyed. + * + * If you think about this, then what this effectively gives you is an n-ary + * tree, where you can free any part of the tree with talloc_free(). + * + * To start, you should probably first look at the definitions of + * ::TALLOC_CTX, talloc_init(), talloc() and talloc_free(). + * + * \section named_blocks Named blocks + * + * Every talloc chunk has a name that can be used as a dynamic type-checking + * system. If for some reason like a callback function you had to cast a + * "struct foo *" to a "void *" variable, later you can safely reassign the + * "void *" pointer to a "struct foo *" by using the talloc_get_type() or + * talloc_get_type_abort() macros. + * + * \code + * struct foo *X = talloc_get_type_abort(ptr, struct foo); + * \endcode + * + * This will abort if "ptr" does not contain a pointer that has been created + * with talloc(mem_ctx, struct foo). + * + * \section multi_threading Multi-Threading + * + * talloc itself does not deal with threads. It is thread-safe (assuming the + * underlying "malloc" is), as long as each thread uses different memory + * contexts. + * + * If two threads uses the same context then they need to synchronize in order + * to be safe. In particular: + * + * + * - when using talloc_enable_leak_report(), giving directly NULL as a + * pare
[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha7-632-g3b73cdb
The branch, master has been updated via 3b73cdb41201dd545e019e8e8313f6b8c51c7226 (commit) via 431fc718c13d259748ac20019997241981639c95 (commit) via 593ab6ac00c217f6d661b4babface40a0b0dd4ce (commit) via 6ef1442360a35284e498eea701fc2eab43c5 (commit) via 66dc53ee017d74a6f610bbe04337f064901fe2a1 (commit) from 62ab39dde37f5570b336b9db5b4e3c2e4640e877 (commit) http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log - commit 3b73cdb41201dd545e019e8e8313f6b8c51c7226 Author: Stefan Metzmacher Date: Wed Jan 28 10:10:12 2009 +0100 s3:nmbd: implement a MAILSLOT => CLDAP proxy for NETLOGON_SAMLOGON requests This will be used as part a the franky setup, where nmbd will forward the MAILSLOT requests to the local samba4 CLDAP server. "nmbd_proxy_logon:cldap_server = 127.0.0.1" would configure and activate this feature. metze commit 431fc718c13d259748ac20019997241981639c95 Author: Stefan Metzmacher Date: Fri Mar 20 16:18:47 2009 +0100 selftest/Samba3: always use the same timeout for all servers metze commit 593ab6ac00c217f6d661b4babface40a0b0dd4ce Author: Stefan Metzmacher Date: Fri Mar 20 16:11:14 2009 +0100 s4:selftest: rename SMBD_VALGRIND => SAMBA_VALGRIND metze commit 6ef1442360a35284e498eea701fc2eab43c5 Author: Stefan Metzmacher Date: Fri Mar 20 15:13:39 2009 +0100 s4:smbd: the name of the binary is "samba" now metze commit 66dc53ee017d74a6f610bbe04337f064901fe2a1 Author: Stefan Metzmacher Date: Fri Mar 20 16:27:17 2009 +0100 socket_wrapper: fix connect() for dgram sockets, if the destination isn't there yet metze --- Summary of changes: lib/socket_wrapper/socket_wrapper.c | 10 +- selftest/target/Samba3.pm | 32 +++--- selftest/target/Samba4.pm |8 +- source3/include/proto.h |2 + source3/nmbd/nmbd.c |6 + source3/nmbd/nmbd_processlogon.c| 238 +++ source3/samba4.mk | 12 +- source4/selftest/config.mk | 12 +- source4/smbd/server.c |2 +- 9 files changed, 285 insertions(+), 37 deletions(-) Changeset truncated at 500 lines: diff --git a/lib/socket_wrapper/socket_wrapper.c b/lib/socket_wrapper/socket_wrapper.c index 44082e7..1d35c8d 100644 --- a/lib/socket_wrapper/socket_wrapper.c +++ b/lib/socket_wrapper/socket_wrapper.c @@ -1686,10 +1686,14 @@ _PUBLIC_ int swrap_connect(int s, const struct sockaddr *serv_addr, socklen_t ad ret = sockaddr_convert_to_un(si, (const struct sockaddr *)serv_addr, addrlen, &un_addr, 0, NULL); if (ret == -1) return -1; - swrap_dump_packet(si, serv_addr, SWRAP_CONNECT_SEND, NULL, 0); + if (si->type == SOCK_DGRAM) { + ret = 0; + } else { + swrap_dump_packet(si, serv_addr, SWRAP_CONNECT_SEND, NULL, 0); - ret = real_connect(s, (struct sockaddr *)&un_addr, - sizeof(struct sockaddr_un)); + ret = real_connect(s, (struct sockaddr *)&un_addr, + sizeof(struct sockaddr_un)); + } /* to give better errors */ if (ret == -1 && errno == ENOENT) { diff --git a/selftest/target/Samba3.pm b/selftest/target/Samba3.pm index 2b96226..78aafa7 100644 --- a/selftest/target/Samba3.pm +++ b/selftest/target/Samba3.pm @@ -126,9 +126,8 @@ sub setup_dc($$) $dc_options); $self->check_or_start($vars, - ($ENV{NMBD_MAXTIME} or 2700), - ($ENV{WINBINDD_MAXTIME} or 2700), - ($ENV{SMBD_MAXTIME} or 2700)); + ($ENV{SMBD_MAXTIME} or 2700), + "yes", "yes", "yes"); $self->wait_for_start($vars); @@ -163,9 +162,8 @@ sub setup_member($$$) system($cmd) == 0 or die("Join failed\n$cmd"); $self->check_or_start($ret, - ($ENV{NMBD_MAXTIME} or 2700), - ($ENV{WINBINDD_MAXTIME} or 2700), - ($ENV{SMBD_MAXTIME} or 2700)); + ($ENV{SMBD_MAXTIME} or 2700), + "yes", "yes", "yes"); $self->wait_for_start($ret); @@ -212,8 +210,8 @@ sub read_pid($$) return $pid; } -sub check_or_start() { - my ($self, $env_vars, $nmbd_maxtime, $winbindd_maxtime, $smbd_maxtime) = @_; +sub check_or_start($) { + my ($self, $env_vars, $maxtime, $nmbd, $winbindd, $smbd) = @_; unlink($env_vars->{NMBD_TEST_LOG}); print "STARTING NMBD..."; @@ -229,13 +227,13 @@ sub check_or_start() { $ENV{NSS_WRAPPER_PASSWD} = $env_vars->