[SCM] Samba Shared Repository - branch master updated
Andreas Schneider
asn at samba.org
Wed Jul 19 09:01:01 UTC 2023
The branch, master has been updated
via 7c0a1c1e13f s3:winbind: Set/unset the winbind_call_flow callback if log level changes
via a1b2f17c6db s3:winbind: Update winbind to tevent 0.15.0 API
via 5b130e620fa s3:winbind: Add callback winbind_call_flow()
via 24120728bb2 ldb: call tevent_set_max_debug_level(TEVENT_DEBUG_TRACE) together with ldb_tevent_debug()
via 0031a102c3d lib/util: call tevent_set_max_debug_level() in samba_tevent_set_debug()
via 6a80d170bca tevent: version 0.15.0
via 0ddf8b5645e tevent: add tevent_common_fd_str() helper
via 2645be60d7a tevent: avoid calling epoll_update_event() again if epoll_check_reopen() already did it
via e9d98097346 tevent: let epoll_check_reopen() clear all events before reopening them
via 3217d5dc1d6 tevent: avoid epoll_check_reopen() overhead unless required
via d94b9c81242 tevent: make use of TEVENT_DEBUG() when using TEVENT_DEBUG_TRACE
via 812313f1c82 tevent: add TEVENT_DEBUG() avoid argument overhead when log is not active...
via 2c78a4f527e tevent: introduce tevent_set_max_debug_level() (default TEVENT_DEBUG_WARNING)
via 86140d7c381 tevent: add fd_speed test
via d7b29125c01 tevent: Flow: add tevent_thread_call_depth_set_callback()
via 0c4d6e630f5 tevent: Flow: store cleanup function name in tevent_req
via 85e43e70b20 tevent: Flow: store cancel function name in tevent_req
via 5e83691d1ed tevent: Flow: store trigger function name in tevent_queue_entry
via deec9994eb8 tevent: Flow: store callback function name in tevent_req
via fb3a9cd7329 tevent: Flow: pass function name to tevent_req_create()
via 1c9e9f46046 tevent: Deprecate some tevent_thread_call_depth_*() functions
via e9f38f6e6d8 tevent: Move definition of _DEPRECATED_ to the top of tevent.h
via 28ddcaf4d8e s3:winbindd: set TEVENT_DEPRECATED as tevent_thread_call_depth_*() api will change soon
via c1124ec8e5d tevent: add tevent_dlinklist.h as copy from lib/util/dlinklist.h
via e3c77030fee lib/util: dlinklist.h sync with LGPL copy from lib/ldb/include/dlinklist.h
via 8edb16a3964 ldb: clarify LGPL scope of include/dlinklist.h
via 18e18006ad0 ldb: remove trailing whitespaces from include/dlinklist.h
via a665d44f22c tevent: rely on epoll_create1() for epoll interface
via 0daa9ebc235 lib:replace: rely on epoll_create1() for epoll interface
via b649c7d3c2b tdb: release 1.4.9
via 791e2817e13 talloc: release 2.4.1
from bb6fecd9ac5 netcmd: sites: add sites and subnet list and view commands to manpage
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 7c0a1c1e13fdd2209d02098e75102f46b7588fd4
Author: Pavel Filipenský <pfilipensky at samba.org>
Date: Wed May 3 11:21:11 2023 +0200
s3:winbind: Set/unset the winbind_call_flow callback if log level changes
Done only for the parent process. Works with 'smbcontrol reload-config'
Signed-off-by: Pavel Filipenský <pfilipensky at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
Autobuild-Date(master): Wed Jul 19 09:00:50 UTC 2023 on atb-devel-224
commit a1b2f17c6db3286cf991ac2ff9f62632ae0660ac
Author: Pavel Filipenský <pfilipensky at samba.org>
Date: Tue May 2 21:59:53 2023 +0200
s3:winbind: Update winbind to tevent 0.15.0 API
Signed-off-by: Pavel Filipenský <pfilipensky at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 5b130e620faf0129ae4dbc456788aea693efa11e
Author: Pavel Filipenský <pfilipensky at samba.org>
Date: Wed May 3 11:19:45 2023 +0200
s3:winbind: Add callback winbind_call_flow()
Signed-off-by: Pavel Filipenský <pfilipensky at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 24120728bb26ae814292e2e8c06eaa4707bb18b6
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Jan 31 16:25:40 2023 +0100
ldb: call tevent_set_max_debug_level(TEVENT_DEBUG_TRACE) together with ldb_tevent_debug()
This means ldb_tevent_debug() is only called for TEVENT_DEBUG_TRACE.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Ralph Boehme <slow at samba.org>
commit 0031a102c3d7b21a4fe51198db9362251970a83d
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Jan 31 16:25:40 2023 +0100
lib/util: call tevent_set_max_debug_level() in samba_tevent_set_debug()
This means samba_tevent_debug() is only called when needed.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Ralph Boehme <slow at samba.org>
commit 6a80d170bca0c938f78ab12e37481b52792a9d83
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Jan 18 15:41:37 2023 +0100
tevent: version 0.15.0
- remove py2 ifdefs
- python: Safely clear structure members
- the tevent_thread_call_depth API is updated
in order to allow better tracing.
- add tevent_set_max_debug_level() only and don't
pass TEVENT_DEBUG_TRACE to tevent_debug() callbacks by default.
- Spelling fixes
- Make use of epoll_create1() for epoll backend
- Optimize overhead in the epoll backend
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Ralph Boehme <slow at samba.org>
commit 0ddf8b5645e4f944aa9db209ed0813e94623736a
Author: Stefan Metzmacher <metze at samba.org>
Date: Fri Nov 11 22:25:34 2022 +0100
tevent: add tevent_common_fd_str() helper
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Ralph Boehme <slow at samba.org>
commit 2645be60d7a0d57d9e688b3a04fae3bb1f3f14d7
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Jan 11 08:21:47 2023 +0100
tevent: avoid calling epoll_update_event() again if epoll_check_reopen() already did it
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Ralph Boehme <slow at samba.org>
commit e9d980973468a6d03cbe31e603440c475a22e3d7
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Jan 11 08:21:47 2023 +0100
tevent: let epoll_check_reopen() clear all events before reopening them
This is clearer for multiplexed fdes as it means both sides are
already cleared before we call epoll_update_event() again.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Ralph Boehme <slow at samba.org>
commit 3217d5dc1d631d19392576436eb006e52c816a1f
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Apr 20 12:59:33 2023 +0000
tevent: avoid epoll_check_reopen() overhead unless required
The preparation, function call and cleanup for epoll_check_reopen()
is quite some overhead and not needed most of the time!
So check the pid in the caller avoids most of it.
Review with: git show -w
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Ralph Boehme <slow at samba.org>
commit d94b9c8124225afd37deae32bf403c19ade1d109
Author: Stefan Metzmacher <metze at samba.org>
Date: Fri Nov 11 22:25:34 2022 +0100
tevent: make use of TEVENT_DEBUG() when using TEVENT_DEBUG_TRACE
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Ralph Boehme <slow at samba.org>
commit 812313f1c82d3679bf5f5e22bb2b0268e9bbb152
Author: Stefan Metzmacher <metze at samba.org>
Date: Fri Nov 11 15:05:53 2022 +0100
tevent: add TEVENT_DEBUG() avoid argument overhead when log is not active...
It can be very costly to calculate the arguments passed to
tevent_debug(), just to drop the message within tevent_debug()
or the callback function.
So we add a way to avoid the overhead, it will be used in the
next commits.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Ralph Boehme <slow at samba.org>
commit 2c78a4f527eecba89973bfdb5a6d354d31e847d5
Author: Stefan Metzmacher <metze at samba.org>
Date: Fri Nov 11 15:05:53 2022 +0100
tevent: introduce tevent_set_max_debug_level() (default TEVENT_DEBUG_WARNING)
Allow an application to decide which log levels it wants to get
in the callback function passed to tevent_set_debug().
By default TEVENT_DEBUG_WARNING is the maximal reported level
and TEVENT_DEBUG_TRACE message no longer reach the callback function
by default.
It seems Samba is the only consumer of tevent_set_debug(), so it
should not be a huge problem, as Samba only reports TEVENT_DEBUG_TRACE
message with log level 50 anyway. And future Samba versions will
call tevent_set_max_debug_level() if needed.
Note the change to tevent-0.14.1.sigs will be reverted
with the release of tevent 0.15.0.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Ralph Boehme <slow at samba.org>
commit 86140d7c38166bcf2f4becc618e3c993081e3ba1
Author: Stefan Metzmacher <metze at samba.org>
Date: Fri Jan 27 12:12:45 2023 +0100
tevent: add fd_speed test
This is similar to the "context" test, but without signal handlers.
It also creates a constant load instead of being time limited,
which makes it useful to analyse using callgrind and other tools.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Ralph Boehme <slow at samba.org>
commit d7b29125c01dd2a152d83ab0dd9418bbc989fa87
Author: Pavel Filipenský <pfilipensky at samba.org>
Date: Tue May 2 21:57:16 2023 +0200
tevent: Flow: add tevent_thread_call_depth_set_callback()
Note the tevent-0.14.1.sigs changes will be reverted in
the 'tevent 0.15.0' commit.
Signed-off-by: Pavel Filipenský <pfilipensky at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 0c4d6e630f5dac681e49f776ca99e3eff13be6b7
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue May 23 06:39:06 2023 +0200
tevent: Flow: store cleanup function name in tevent_req
Note the tevent-0.14.1.sigs changes will be reverted in
the 'tevent 0.15.0' commit.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Pavel Filipenský <pfilipensky at samba.org>
commit 85e43e70b200d25e0b4afc0f9611ddae014af5cc
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue May 23 06:38:27 2023 +0200
tevent: Flow: store cancel function name in tevent_req
Note the tevent-0.14.1.sigs changes will be reverted in
the 'tevent 0.15.0' commit.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Pavel Filipenský <pfilipensky at samba.org>
commit 5e83691d1edb97805c1a270f4807aa0a8700d166
Author: Pavel Filipenský <pfilipensky at samba.org>
Date: Mon May 15 12:57:09 2023 +0200
tevent: Flow: store trigger function name in tevent_queue_entry
Note the tevent-0.14.1.sigs changes will be reverted in
the 'tevent 0.15.0' commit.
Signed-off-by: Pavel Filipenský <pfilipensky at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit deec9994eb873ad42932645361dd3eedcc351a09
Author: Pavel Filipenský <pfilipensky at samba.org>
Date: Mon Apr 24 15:04:06 2023 +0200
tevent: Flow: store callback function name in tevent_req
Note the tevent-0.14.1.sigs changes will be reverted in
the 'tevent 0.15.0' commit.
Signed-off-by: Pavel Filipenský <pfilipensky at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit fb3a9cd7329a3b1952846ef5433f59b66b017b2d
Author: Pavel Filipenský <pfilipen at redhat.com>
Date: Sat Jun 18 10:57:11 2022 +0200
tevent: Flow: pass function name to tevent_req_create()
Note the tevent-0.14.1.sigs changes will be reverted in
the 'tevent 0.15.0' commit.
Signed-off-by: Pavel Filipenský <pfilipensky at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 1c9e9f46046069a98fd58e4d3af6868b0cc45308
Author: Pavel Filipenský <pfilipensky at samba.org>
Date: Fri Apr 28 20:45:20 2023 +0200
tevent: Deprecate some tevent_thread_call_depth_*() functions
Signed-off-by: Pavel Filipenský <pfilipensky at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit e9f38f6e6d858d3efe8610a29723f50b0c72a173
Author: Pavel Filipenský <pfilipensky at samba.org>
Date: Fri Apr 28 20:13:29 2023 +0200
tevent: Move definition of _DEPRECATED_ to the top of tevent.h
Signed-off-by: Pavel Filipenský <pfilipensky at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 28ddcaf4d8ebb7a4e3498518580ff71662d3cee0
Author: Stefan Metzmacher <metze at samba.org>
Date: Fri May 19 11:16:49 2023 +0200
s3:winbindd: set TEVENT_DEPRECATED as tevent_thread_call_depth_*() api will change soon
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Pavel Filipenský <pfilipensky at samba.org>
commit c1124ec8e5d2fb38b9011b72118bb981904a011d
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Apr 24 12:39:17 2023 +0200
tevent: add tevent_dlinklist.h as copy from lib/util/dlinklist.h
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Ralph Boehme <slow at samba.org>
commit e3c77030fee120b9b73d971d39eca142920f6b49
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Apr 20 14:35:25 2023 +0000
lib/util: dlinklist.h sync with LGPL copy from lib/ldb/include/dlinklist.h
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Ralph Boehme <slow at samba.org>
commit 8edb16a3964e3a699897e2b4c84c5fad1f58b015
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Jan 30 16:10:07 2023 +0100
ldb: clarify LGPL scope of include/dlinklist.h
Removing the explicit notice about ldb in order to
have the same content in all copies of dlinklist.h
in the next commits.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Ralph Boehme <slow at samba.org>
commit 18e18006ad03e6dc1212b167e948836721b435c3
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Jan 30 16:10:07 2023 +0100
ldb: remove trailing whitespaces from include/dlinklist.h
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Ralph Boehme <slow at samba.org>
commit a665d44f22c1fea4fd9104e4e3e45ee9b6cd68cd
Author: Dmitry Antipov <dantipov at cloudlinux.com>
Date: Fri Apr 7 14:47:15 2023 +0300
tevent: rely on epoll_create1() for epoll interface
Prefer epoll_create1(2) over epoll_create(2) and
always require the former to use epoll(7) interface,
thus saving extra fcntl(2) call to set FD_CLOEXEC.
Signed-off-by: Dmitry Antipov <dantipov at cloudlinux.com>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 0daa9ebc2354d65a9d77a6a7d1616ef357056fd2
Author: Dmitry Antipov <dantipov at cloudlinux.com>
Date: Fri Apr 7 14:42:10 2023 +0300
lib:replace: rely on epoll_create1() for epoll interface
Prefer epoll_create1(2) over epoll_create(2) and
always require the former to use epoll(7) interface.
Signed-off-by: Dmitry Antipov <dantipov at cloudlinux.com>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit b649c7d3c2b1e13e900c80ff7a20959a70b1c528
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Jul 18 11:39:38 2023 +0200
tdb: release 1.4.9
* Remove remaining, but broken python2 support
* Spelling fixes
* python: Safely clear structure members
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 791e2817e13182344447590313f7e372a27c1d48
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Jul 18 11:39:38 2023 +0200
talloc: release 2.4.1
* Remove remaining, but broken python2 support
* Spelling fixes
* Remove unneeded va_copy()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
-----------------------------------------------------------------------
Summary of changes:
lib/ldb/common/ldb.c | 2 +
lib/ldb/include/dlinklist.h | 9 +-
lib/replace/wscript | 4 +-
...oc-util-2.3.0.sigs => pytalloc-util-2.4.1.sigs} | 0
.../ABI/{talloc-2.3.5.sigs => talloc-2.4.1.sigs} | 0
lib/talloc/wscript | 2 +-
lib/tdb/ABI/{tdb-1.3.17.sigs => tdb-1.4.9.sigs} | 0
lib/tdb/wscript | 2 +-
.../ABI/{tevent-0.14.0.sigs => tevent-0.15.0.sigs} | 10 ++
lib/tevent/testsuite.c | 114 +++++++++++++
lib/tevent/tevent.c | 5 +-
lib/tevent/tevent.h | 177 ++++++++++++++++----
lib/tevent/tevent_debug.c | 73 ++++++--
.../dlinklist.h => tevent/tevent_dlinklist.h} | 9 +-
lib/tevent/tevent_epoll.c | 96 ++++++-----
lib/tevent/tevent_fd.c | 16 ++
lib/tevent/tevent_immediate.c | 6 +-
lib/tevent/tevent_internal.h | 42 ++++-
lib/tevent/tevent_queue.c | 68 +++++++-
lib/tevent/tevent_req.c | 86 ++++++++--
lib/tevent/tevent_threads.c | 2 +-
lib/tevent/tevent_timed.c | 8 +-
lib/tevent/tevent_util.h | 185 ++-------------------
lib/tevent/tevent_wrapper.c | 2 +-
lib/tevent/wscript | 6 +-
lib/util/dlinklist.h | 29 ++--
lib/util/tevent_debug.c | 11 ++
source3/winbindd/winbindd.c | 7 +-
source3/winbindd/winbindd_dual.c | 10 +-
source3/winbindd/winbindd_misc.c | 36 ++++
source3/winbindd/winbindd_proto.h | 6 +
31 files changed, 701 insertions(+), 322 deletions(-)
copy lib/talloc/ABI/{pytalloc-util-2.3.0.sigs => pytalloc-util-2.4.1.sigs} (100%)
copy lib/talloc/ABI/{talloc-2.3.5.sigs => talloc-2.4.1.sigs} (100%)
copy lib/tdb/ABI/{tdb-1.3.17.sigs => tdb-1.4.9.sigs} (100%)
copy lib/tevent/ABI/{tevent-0.14.0.sigs => tevent-0.15.0.sigs} (91%)
copy lib/{ldb/include/dlinklist.h => tevent/tevent_dlinklist.h} (96%)
Changeset truncated at 500 lines:
diff --git a/lib/ldb/common/ldb.c b/lib/ldb/common/ldb.c
index 6145bc7e500..fe7c4d18f5c 100644
--- a/lib/ldb/common/ldb.c
+++ b/lib/ldb/common/ldb.c
@@ -117,6 +117,7 @@ struct ldb_context *ldb_init(TALLOC_CTX *mem_ctx, struct tevent_context *ev_ctx)
return NULL;
}
tevent_set_debug(ev_ctx, ldb_tevent_debug, ldb);
+ tevent_set_max_debug_level(ev_ctx, TEVENT_DEBUG_TRACE);
tevent_loop_allow_nesting(ev_ctx);
}
@@ -745,6 +746,7 @@ struct ldb_handle *ldb_handle_new(TALLOC_CTX *mem_ctx, struct ldb_context *ldb)
return NULL;
}
tevent_set_debug(h->event_context, ldb_tevent_debug, ldb);
+ tevent_set_max_debug_level(h->event_context, TEVENT_DEBUG_TRACE);
tevent_loop_allow_nesting(h->event_context);
}
diff --git a/lib/ldb/include/dlinklist.h b/lib/ldb/include/dlinklist.h
index 822a8266e04..a775e8dcdc1 100644
--- a/lib/ldb/include/dlinklist.h
+++ b/lib/ldb/include/dlinklist.h
@@ -1,13 +1,12 @@
-/*
+/*
Unix SMB/CIFS implementation.
some simple double linked list macros
Copyright (C) Andrew Tridgell 1998-2010
- ** NOTE! The following LGPL license applies to the ldb
- ** library. This does NOT imply that all of Samba is released
- ** under the LGPL
-
+ ** NOTE! The following LGPL license applies to this file (*dlinklist.h).
+ ** This does NOT imply that all of Samba is released under the LGPL
+
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
diff --git a/lib/replace/wscript b/lib/replace/wscript
index 199e636aa02..37d77593900 100644
--- a/lib/replace/wscript
+++ b/lib/replace/wscript
@@ -487,7 +487,7 @@ def configure(conf):
conf.CHECK_FUNCS('gai_strerror get_current_dir_name')
conf.CHECK_FUNCS('timegm getifaddrs freeifaddrs mmap setgroups syscall setsid')
conf.CHECK_FUNCS('getgrent_r getgrgid_r getgrnam_r getgrouplist getpagesize')
- conf.CHECK_FUNCS('getpwent_r getpwnam_r getpwuid_r epoll_create')
+ conf.CHECK_FUNCS('getpwent_r getpwnam_r getpwuid_r epoll_create1')
conf.CHECK_FUNCS('getprogname')
if not conf.CHECK_FUNCS('copy_file_range'):
conf.CHECK_CODE('''
@@ -710,7 +710,7 @@ syscall(SYS_copy_file_range,0,NULL,0,NULL,0,0);
conf.CHECK_DECLS('getgrent_r getpwent_r', reverse=True, headers='pwd.h grp.h')
conf.CHECK_DECLS('pread pwrite setenv setresgid setresuid', reverse=True)
- if conf.CONFIG_SET('HAVE_EPOLL_CREATE') and conf.CONFIG_SET('HAVE_SYS_EPOLL_H'):
+ if conf.CONFIG_SET('HAVE_EPOLL_CREATE1') and conf.CONFIG_SET('HAVE_SYS_EPOLL_H'):
conf.DEFINE('HAVE_EPOLL', 1)
if conf.CHECK_FUNCS('eventfd', headers='sys/eventfd.h'):
diff --git a/lib/talloc/ABI/pytalloc-util-2.3.0.sigs b/lib/talloc/ABI/pytalloc-util-2.4.1.sigs
similarity index 100%
copy from lib/talloc/ABI/pytalloc-util-2.3.0.sigs
copy to lib/talloc/ABI/pytalloc-util-2.4.1.sigs
diff --git a/lib/talloc/ABI/talloc-2.3.5.sigs b/lib/talloc/ABI/talloc-2.4.1.sigs
similarity index 100%
copy from lib/talloc/ABI/talloc-2.3.5.sigs
copy to lib/talloc/ABI/talloc-2.4.1.sigs
diff --git a/lib/talloc/wscript b/lib/talloc/wscript
index 503295eeceb..075f1ec4417 100644
--- a/lib/talloc/wscript
+++ b/lib/talloc/wscript
@@ -1,7 +1,7 @@
#!/usr/bin/env python
APPNAME = 'talloc'
-VERSION = '2.4.0'
+VERSION = '2.4.1'
import os
import sys
diff --git a/lib/tdb/ABI/tdb-1.3.17.sigs b/lib/tdb/ABI/tdb-1.4.9.sigs
similarity index 100%
copy from lib/tdb/ABI/tdb-1.3.17.sigs
copy to lib/tdb/ABI/tdb-1.4.9.sigs
diff --git a/lib/tdb/wscript b/lib/tdb/wscript
index 9c9bf77f115..5e6a928d5bc 100644
--- a/lib/tdb/wscript
+++ b/lib/tdb/wscript
@@ -1,7 +1,7 @@
#!/usr/bin/env python
APPNAME = 'tdb'
-VERSION = '1.4.8'
+VERSION = '1.4.9'
import sys, os
diff --git a/lib/tevent/ABI/tevent-0.14.0.sigs b/lib/tevent/ABI/tevent-0.15.0.sigs
similarity index 91%
copy from lib/tevent/ABI/tevent-0.14.0.sigs
copy to lib/tevent/ABI/tevent-0.15.0.sigs
index f2a11902a80..f7eba5775df 100644
--- a/lib/tevent/ABI/tevent-0.14.0.sigs
+++ b/lib/tevent/ABI/tevent-0.15.0.sigs
@@ -1,3 +1,4 @@
+__tevent_req_create: struct tevent_req *(TALLOC_CTX *, void *, size_t, const char *, const char *, const char *)
_tevent_add_fd: struct tevent_fd *(struct tevent_context *, TALLOC_CTX *, int, uint16_t, tevent_fd_handler_t, void *, const char *, const char *)
_tevent_add_signal: struct tevent_signal *(struct tevent_context *, TALLOC_CTX *, int, int, tevent_signal_handler_t, void *, const char *, const char *)
_tevent_add_timer: struct tevent_timer *(struct tevent_context *, TALLOC_CTX *, struct timeval, tevent_timer_handler_t, void *, const char *, const char *)
@@ -8,6 +9,9 @@ _tevent_create_immediate: struct tevent_immediate *(TALLOC_CTX *, const char *)
_tevent_loop_once: int (struct tevent_context *, const char *)
_tevent_loop_until: int (struct tevent_context *, bool (*)(void *), void *, const char *)
_tevent_loop_wait: int (struct tevent_context *, const char *)
+_tevent_queue_add: bool (struct tevent_queue *, struct tevent_context *, struct tevent_req *, tevent_queue_trigger_fn_t, const char *, void *)
+_tevent_queue_add_entry: struct tevent_queue_entry *(struct tevent_queue *, struct tevent_context *, struct tevent_req *, tevent_queue_trigger_fn_t, const char *, void *)
+_tevent_queue_add_optimize_empty: struct tevent_queue_entry *(struct tevent_queue *, struct tevent_context *, struct tevent_req *, tevent_queue_trigger_fn_t, const char *, void *)
_tevent_queue_create: struct tevent_queue *(TALLOC_CTX *, const char *, const char *)
_tevent_req_callback_data: void *(struct tevent_req *)
_tevent_req_cancel: bool (struct tevent_req *, const char *)
@@ -18,7 +22,11 @@ _tevent_req_error: bool (struct tevent_req *, uint64_t, const char *)
_tevent_req_nomem: bool (const void *, struct tevent_req *, const char *)
_tevent_req_notify_callback: void (struct tevent_req *, const char *)
_tevent_req_oom: void (struct tevent_req *, const char *)
+_tevent_req_set_callback: void (struct tevent_req *, tevent_req_fn, const char *, void *)
+_tevent_req_set_cancel_fn: void (struct tevent_req *, tevent_req_cancel_fn, const char *)
+_tevent_req_set_cleanup_fn: void (struct tevent_req *, tevent_req_cleanup_fn, const char *)
_tevent_schedule_immediate: void (struct tevent_immediate *, struct tevent_context *, tevent_immediate_handler_t, void *, const char *, const char *)
+_tevent_thread_call_depth_reset_from_req: void (struct tevent_req *, const char *)
_tevent_threaded_schedule_immediate: void (struct tevent_threaded_context *, struct tevent_immediate *, tevent_immediate_handler_t, void *, const char *, const char *)
tevent_abort: void (struct tevent_context *, const char *)
tevent_backend_list: const char **(TALLOC_CTX *)
@@ -120,6 +128,7 @@ tevent_set_abort_fn: void (void (*)(const char *))
tevent_set_debug: int (struct tevent_context *, void (*)(void *, enum tevent_debug_level, const char *, va_list), void *)
tevent_set_debug_stderr: int (struct tevent_context *)
tevent_set_default_backend: void (const char *)
+tevent_set_max_debug_level: enum tevent_debug_level (struct tevent_context *, enum tevent_debug_level)
tevent_set_trace_callback: void (struct tevent_context *, tevent_trace_callback_t, void *)
tevent_set_trace_fd_callback: void (struct tevent_context *, tevent_trace_fd_callback_t, void *)
tevent_set_trace_immediate_callback: void (struct tevent_context *, tevent_trace_immediate_callback_t, void *)
@@ -132,6 +141,7 @@ tevent_signal_support: bool (struct tevent_context *)
tevent_thread_call_depth_activate: void (size_t *)
tevent_thread_call_depth_deactivate: void (void)
tevent_thread_call_depth_reset_from_req: void (struct tevent_req *)
+tevent_thread_call_depth_set_callback: void (tevent_call_depth_callback_t, void *)
tevent_thread_call_depth_start: void (struct tevent_req *)
tevent_thread_proxy_create: struct tevent_thread_proxy *(struct tevent_context *)
tevent_thread_proxy_schedule: void (struct tevent_thread_proxy *, struct tevent_immediate **, tevent_immediate_handler_t, void *)
diff --git a/lib/tevent/testsuite.c b/lib/tevent/testsuite.c
index e7583e64059..c5f7ef32146 100644
--- a/lib/tevent/testsuite.c
+++ b/lib/tevent/testsuite.c
@@ -261,6 +261,112 @@ static bool test_event_context(struct torture_context *test,
return true;
}
+static void fde_handler_do_read(struct tevent_context *ev_ctx, struct tevent_fd *f,
+ uint16_t flags, void *private_data)
+{
+ int *fd = (int *)private_data;
+ char c = 0;
+
+ do_read(fd[0], &c, 1);
+ fde_count++;
+}
+
+static void fde_handler_do_write(struct tevent_context *ev_ctx, struct tevent_fd *f,
+ uint16_t flags, void *private_data)
+{
+ int *fd = (int *)private_data;
+ char c = 0;
+
+ do_write(fd[1], &c, 1);
+}
+
+static void fde_handler_ignore(struct tevent_context *ev_ctx, struct tevent_fd *f,
+ uint16_t flags, void *private_data)
+{
+}
+
+static bool test_fd_speedX(struct torture_context *test,
+ const void *test_data,
+ size_t additional_fdes)
+{
+ struct tevent_context *ev_ctx = NULL;
+ int fd[2] = { -1, -1 };
+ const char *backend = (const char *)test_data;
+ struct tevent_fd *fde_read = NULL;
+ struct tevent_fd *fde_write = NULL;
+ int finished=0;
+ struct timeval t;
+ size_t i;
+ int ret;
+
+ ev_ctx = test_tevent_context_init_byname(test, backend);
+ if (ev_ctx == NULL) {
+ torture_comment(test, "event backend '%s' not supported\n", backend);
+ return true;
+ }
+
+ torture_comment(test, "backend '%s' - test_fd_speed%zu\n",
+ backend, 1 + additional_fdes);
+
+ /* reset globals */
+ fde_count = 0;
+
+ /* create a pipe */
+ ret = pipe(fd);
+ torture_assert_int_equal(test, ret, 0, "pipe failed");
+
+ fde_read = tevent_add_fd(ev_ctx, ev_ctx, fd[0], TEVENT_FD_READ,
+ fde_handler_do_read, fd);
+
+ fde_write = tevent_add_fd(ev_ctx, ev_ctx, fd[1], TEVENT_FD_WRITE,
+ fde_handler_do_write, fd);
+
+ for (i = 0; i < additional_fdes; i++) {
+ tevent_add_fd(ev_ctx, ev_ctx, fd[0], TEVENT_FD_WRITE,
+ fde_handler_ignore, fd);
+ tevent_add_fd(ev_ctx, ev_ctx, fd[1], TEVENT_FD_READ,
+ fde_handler_ignore, fd);
+ }
+
+ tevent_fd_set_auto_close(fde_read);
+ tevent_fd_set_auto_close(fde_write);
+
+ tevent_add_timer(ev_ctx, ev_ctx, timeval_current_ofs(600,0),
+ finished_handler, &finished);
+
+ t = timeval_current();
+ while (!finished && fde_count < 1000000) {
+ errno = 0;
+ if (tevent_loop_once(ev_ctx) == -1) {
+ TALLOC_FREE(ev_ctx);
+ torture_fail(test, talloc_asprintf(test, "Failed event loop %s\n", strerror(errno)));
+ return false;
+ }
+ }
+
+ talloc_free(fde_read);
+ talloc_free(fde_write);
+
+ torture_comment(test, "Got %.2f pipe events\n", (double)fde_count);
+ torture_comment(test, "Got %.2f pipe events/sec\n", fde_count/timeval_elapsed(&t));
+
+ talloc_free(ev_ctx);
+
+ return true;
+}
+
+static bool test_fd_speed1(struct torture_context *test,
+ const void *test_data)
+{
+ return test_fd_speedX(test, test_data, 0);
+}
+
+static bool test_fd_speed2(struct torture_context *test,
+ const void *test_data)
+{
+ return test_fd_speedX(test, test_data, 1);
+}
+
struct test_event_fd1_state {
struct torture_context *tctx;
const char *backend;
@@ -1865,6 +1971,14 @@ struct torture_suite *torture_local_event(TALLOC_CTX *mem_ctx)
"context",
test_event_context,
(const void *)list[i]);
+ torture_suite_add_simple_tcase_const(backend_suite,
+ "fd_speed1",
+ test_fd_speed1,
+ (const void *)list[i]);
+ torture_suite_add_simple_tcase_const(backend_suite,
+ "fd_speed2",
+ test_fd_speed2,
+ (const void *)list[i]);
torture_suite_add_simple_tcase_const(backend_suite,
"fd1",
test_event_fd1,
diff --git a/lib/tevent/tevent.c b/lib/tevent/tevent.c
index 4142da78f60..63ef4dbd7ba 100644
--- a/lib/tevent/tevent.c
+++ b/lib/tevent/tevent.c
@@ -824,7 +824,10 @@ int _tevent_loop_once(struct tevent_context *ev, const char *location)
tevent_trace_point_callback(ev, TEVENT_TRACE_AFTER_LOOP_ONCE);
/* New event (and request) will always start with call depth 0. */
- tevent_thread_call_depth_set(0);
+ tevent_thread_call_depth_notify(TEVENT_CALL_FLOW_REQ_RESET,
+ NULL,
+ 0,
+ __func__);
if (ev->nesting.level > 0) {
if (ev->nesting.hook_fn) {
diff --git a/lib/tevent/tevent.h b/lib/tevent/tevent.h
index ba564bc0195..fec8c2a1744 100644
--- a/lib/tevent/tevent.h
+++ b/lib/tevent/tevent.h
@@ -39,6 +39,15 @@
#define __has_attribute(x) 0
#endif
+#ifdef TEVENT_DEPRECATED
+#ifndef _DEPRECATED_
+#if __has_attribute(deprecated) || (__GNUC__ >= 3)
+#define _DEPRECATED_ __attribute__ ((deprecated))
+#else
+#define _DEPRECATED_
+#endif
+#endif
+#endif
struct tevent_context;
struct tevent_ops;
@@ -615,6 +624,18 @@ typedef void (*tevent_debug_fn)(void *context,
/**
* Set destination for tevent debug messages
*
+ * As of version 0.15.0 the invocation of
+ * the debug function for indiviual messages
+ * is limited by the current max_debug_level,
+ * which means TEVENT_DEBUG_TRACE messages
+ * are not passed by default:
+ *
+ * - tevent_set_debug() with debug == NULL implies
+ * tevent_set_max_debug_level(ev, TEVENT_DEBUG_FATAL).
+ *
+ * - tevent_set_debug() with debug != NULL implies
+ * tevent_set_max_debug_level(ev, TEVENT_DEBUG_WARNING).
+ *
* @param[in] ev Event context to debug
* @param[in] debug Function to handle output printing
* @param[in] context The context to pass to the debug function.
@@ -622,11 +643,29 @@ typedef void (*tevent_debug_fn)(void *context,
* @return Always returns 0 as of version 0.9.8
*
* @note Default is to emit no debug messages
+ *
+ * @see tevent_set_max_debug_level()
*/
int tevent_set_debug(struct tevent_context *ev,
tevent_debug_fn debug,
void *context);
+/**
+ * Set maximum debug level for tevent debug messages
+ *
+ * @param[in] ev Event context to debug
+ * @param[in] max_level Function to handle output printing
+ *
+ * @return The former max level is returned.
+ *
+ * @see tevent_set_debug()
+ *
+ * @note Available as of tevent 0.15.0
+ */
+enum tevent_debug_level
+tevent_set_max_debug_level(struct tevent_context *ev,
+ enum tevent_debug_level max_level);
+
/**
* Designate stderr for debug message output
*
@@ -1010,6 +1049,13 @@ typedef void (*tevent_req_fn)(struct tevent_req *subreq);
* callback.
*/
void tevent_req_set_callback(struct tevent_req *req, tevent_req_fn fn, void *pvt);
+void _tevent_req_set_callback(struct tevent_req *req,
+ tevent_req_fn fn,
+ const char *fn_name,
+ void *pvt);
+
+#define tevent_req_set_callback(req, fn, pvt) \
+ _tevent_req_set_callback(req, fn, #fn, pvt)
#ifdef DOXYGEN
/**
@@ -1166,6 +1212,11 @@ typedef bool (*tevent_req_cancel_fn)(struct tevent_req *req);
* @param[in] fn A pointer to the cancel function.
*/
void tevent_req_set_cancel_fn(struct tevent_req *req, tevent_req_cancel_fn fn);
+void _tevent_req_set_cancel_fn(struct tevent_req *req,
+ tevent_req_cancel_fn fn,
+ const char *fn_name);
+#define tevent_req_set_cancel_fn(req, fn) \
+ _tevent_req_set_cancel_fn(req, fn, #fn)
#ifdef DOXYGEN
/**
@@ -1227,6 +1278,11 @@ typedef void (*tevent_req_cleanup_fn)(struct tevent_req *req,
* @param[in] fn A pointer to the cancel function.
*/
void tevent_req_set_cleanup_fn(struct tevent_req *req, tevent_req_cleanup_fn fn);
+void _tevent_req_set_cleanup_fn(struct tevent_req *req,
+ tevent_req_cleanup_fn fn,
+ const char *fn_name);
+#define tevent_req_set_cleanup_fn(req, fn) \
+ _tevent_req_set_cleanup_fn(req, fn, #fn)
#ifdef DOXYGEN
/**
@@ -1262,9 +1318,20 @@ struct tevent_req *_tevent_req_create(TALLOC_CTX *mem_ctx,
const char *type,
const char *location);
+struct tevent_req *__tevent_req_create(TALLOC_CTX *mem_ctx,
+ void *pstate,
+ size_t state_size,
+ const char *type,
+ const char *func,
+ const char *location);
+
#define tevent_req_create(_mem_ctx, _pstate, _type) \
- _tevent_req_create((_mem_ctx), (_pstate), sizeof(_type), \
- #_type, __location__)
+ __tevent_req_create((_mem_ctx), \
+ (_pstate), \
+ sizeof(_type), \
+ #_type, \
+ __func__, \
+ __location__)
#endif
/**
@@ -2029,10 +2096,9 @@ pid_t tevent_cached_getpid(void);
*
* Part 1: activation/deactivation
*
- * tevent_thread_call_depth_activate(), tevent_thread_call_depth_deactivate()
- *
- * Activating registers external size_t variable that will be maintained with
- * the current call depth.
+ * void tevent_thread_call_depth_set_callback(f, private_data)
+ * Register a callback that can track 'call depth' and 'request flow'
+ * NULL as a function callback means deactivation.
*
* Part 2: Mark the request (and its subrequests) to be tracked
*
@@ -2060,34 +2126,62 @@ pid_t tevent_cached_getpid(void);
* @{
*/
+enum tevent_thread_call_depth_cmd {
+ TEVENT_CALL_FLOW_REQ_RESET,
+ TEVENT_CALL_FLOW_REQ_CREATE,
+ TEVENT_CALL_FLOW_REQ_CANCEL,
+ TEVENT_CALL_FLOW_REQ_CLEANUP,
+ TEVENT_CALL_FLOW_REQ_NOTIFY_CB,
+ TEVENT_CALL_FLOW_REQ_QUEUE_ENTER,
+ TEVENT_CALL_FLOW_REQ_QUEUE_TRIGGER,
+ TEVENT_CALL_FLOW_REQ_QUEUE_LEAVE,
+};
+
+typedef void (*tevent_call_depth_callback_t)(
+ void *private_data,
+ enum tevent_thread_call_depth_cmd cmd,
+ struct tevent_req *req,
+ size_t depth,
+ const char *fname);
+
+struct tevent_thread_call_depth_state {
+ tevent_call_depth_callback_t cb;
+ void *cb_private;
+};
+
+extern __thread struct tevent_thread_call_depth_state
+ tevent_thread_call_depth_state_g;
+
/**
- * Activate call depth tracking and register external variable that will
- * be updated to the call depth of currently processed tevent request.
+ * Register callback function for request/subrequest call depth / flow tracking.
*
- * @param[in] ptr Address of external variable
+ * @param[in] f External call depth and flow handling function
*/
-void tevent_thread_call_depth_activate(size_t *ptr);
+void tevent_thread_call_depth_set_callback(tevent_call_depth_callback_t f,
+ void *private_data);
-/**
- * Deactivate call depth tracking. Can be used in the child process,
- * after fork.
- */
-void tevent_thread_call_depth_deactivate(void);
+#ifdef TEVENT_DEPRECATED
-/**
- * This request will have call depth set to 1, its subrequest will get 2 and so
- * on. All other requests will have call depth 0.
- */
-void tevent_thread_call_depth_start(struct tevent_req *req);
+void tevent_thread_call_depth_activate(size_t *ptr) _DEPRECATED_;
+void tevent_thread_call_depth_deactivate(void) _DEPRECATED_;
--
Samba Shared Repository
More information about the samba-cvs
mailing list