1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-13 13:18:06 +03:00
Commit Graph

272 Commits

Author SHA1 Message Date
Jelmer Vernooij
ddb3c48f1a pytevent: Fill in client side fnuctions. 2010-09-25 12:20:57 -07:00
Jelmer Vernooij
465cff7531 tevent: Add infrastructure for python bindings. 2010-09-25 12:20:56 -07:00
Jelmer Vernooij
1f22b63b34 tevent: Switch to using waf by default. 2010-09-25 12:20:56 -07:00
Jelmer Vernooij
bd1786f7f1 wafsamba: Fix typo: noextenion -> noextension. 2010-06-19 12:10:29 +02:00
Volker Lendecke
7f29f817fa tevent: Fix maxfd calculation in tevent_select
When doing

        fd1 = tevent_add_fd(ev, ev, 2, 0, NULL, NULL);
        fd2 = tevent_add_fd(ev, ev, 3, 0, NULL, NULL);
        TALLOC_FREE(fd2);
        fd2 = tevent_add_fd(ev, ev, 1, 0, NULL, NULL);

we end up with select_ev->maxfd==1. This is wrong.

An alternative fix might be to make select_ev->maxfd an unsigned int and make
EVENT_INVALID_MAXFD==UINT_MAX. But in theory we might end up with an fd of
UINT_MAX.

std_event_add_fd() contains exactly the same piece of code, so I'm directly
pushing it.

Volker
2010-06-10 11:24:00 +02:00
Jelmer Vernooij
3858b5db8b s4-waf: sanitize library names like the old build system did, only add
-samba4 suffix for libraries that are bundled.
2010-05-31 03:28:42 +02:00
Andreas Schneider
3addebee34 tevent: Added a description for tevent queue. 2010-05-10 10:28:37 +02:00
Andreas Schneider
d596bb1a1d tevent: Added an introduction to the tevent_queue tutorial.
Thanks Volker.
2010-05-10 10:28:37 +02:00
Andreas Schneider
b2e520a28b tevent: Fixed a doxygen problem with PRINTF_ATTRIBUTE. 2010-05-10 10:28:37 +02:00
Andreas Schneider
dc2f962aac tevent: Started a tevent_queue tutorial. 2010-05-05 09:28:04 +02:00
Andreas Schneider
239d59feab tevent: Document the tevent_queue functions. 2010-05-05 09:28:04 +02:00
Andreas Schneider
6c1bcdc2e2 tevent: Document the tevent helper functions. 2010-05-05 09:28:04 +02:00
Andreas Schneider
78fbedf369 tevent: Document missing callback typedefs. 2010-05-05 09:28:04 +02:00
Andreas Schneider
a8e575ac22 tevent: Document the missing tevent async request callback functions. 2010-05-05 09:28:04 +02:00
Andreas Schneider
d8a6b23b07 tevent: Create a typedef for the debug function callback. 2010-05-05 09:28:04 +02:00
Stephen Gallagher
e286966bba tevent: Added more documentation. 2010-05-05 09:28:04 +02:00
Stephen Gallagher
098221e886 tevent: Remove erroneous comments about TEVENT_FD_AUTOCLOSE
There is no such flag.
2010-05-05 09:28:04 +02:00
Andreas Schneider
49c89b60e6 tevent: Add doxygen tevent config file. 2010-05-05 09:28:04 +02:00
Andreas Schneider
4263983cad tevent: Added basic doxygen documentation. 2010-05-05 09:28:04 +02:00
Andrew Tridgell
7aa4c11fc4 build: more adjustments for the ABI type name maps
- use 'va_list' instead of 'struct __va_list_tag *'
  Using the C name for va_list is preferable

- add support for negative ABI name matches in abi_match=.  That is
  used to exlude ldb_*module_ops from the ldb ABI

- don't include the ldb module ops or backend ops in the ABI
2010-04-18 18:24:27 +10:00
Andrew Tridgell
f96353adcf s4-waf: rebuild signature files with the api type maps
This is not strictly necessary, as the old types would compare equal,
but it is neater to use the generic type names
2010-04-18 15:39:59 +10:00
Andrew Tridgell
5e26f65f79 tevent-waf: enabled ABI checking in tevent 2010-04-18 15:00:38 +10:00
Andrew Tridgell
2550bbc981 tevent: mark backend init fns as _PRIVATE_
these are not supposed to be exposed in the library
2010-04-18 15:00:38 +10:00
Andrew Tridgell
483d059c8e tevent-waf: added man page and pkgconfig file
this allows libtevent to build under rpmbuild

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-04-13 23:03:27 +10:00
Andrew Tridgell
ab73692bd3 s4-tevent: up tevent version number
tevent now has tevent_re_initialise() which is needed for the s4 build
2010-04-13 11:45:38 +10:00
Andrew Tridgell
98942c8d84 build: use a common autogen-waf.sh for all builds
the symlink will get updated with the right target when waf dist is
used in each directory
2010-04-12 11:17:35 +10:00
Andrew Tridgell
7ae4372124 s4-waf: fixed waf distcheck for our standalone libs and s4 2010-04-06 20:27:26 +10:00
Andrew Tridgell
fe060c8f50 s4-waf: added simple 'waf test' support for tdb, talloc and ldb 2010-04-06 20:27:26 +10:00
Andrew Tridgell
ccfce0bbae s4-waf: autogen-waf.sh for the standalone library builds 2010-04-06 20:27:25 +10:00
Andrew Tridgell
c8835f440a s4-waf: use a common pattern for finding buildtools and libs 2010-04-06 20:27:25 +10:00
Andrew Tridgell
553324bc10 s4-waf: move to a universal method of recursing into subdirs
This works with both standalone lib builds and bundled builds
2010-04-06 20:27:25 +10:00
Andrew Tridgell
8dc8d31f4a s4-waf: fixed finding of buildtools and srcdir 2010-04-06 20:27:25 +10:00
Andrew Tridgell
1883ee6dbc s4-waf: avoid having to run waf configure before waf dist
This should be useful for building tarballs from a clean checkout
2010-04-06 20:27:25 +10:00
Andrew Tridgell
9e9e878e8f s4-waf: allow standalone tarball build of libraries 2010-04-06 20:27:25 +10:00
Andrew Tridgell
528d7c7cf3 s4-waf: added 'waf dist' to our standalone libs as well 2010-04-06 20:27:25 +10:00
Andrew Tridgell
874e39cbf0 s4-waf: added implied_deps for system libraries
when we use a system version of a library such as talloc, then we
no longer get the automtica dependency propogation of talloc implying
libreplace. That means we don't get the includes for libreplace, which
means things can fail to build.

To fix this this change adds an implied_deps option to
CHECK_BUNDLED_SYSTEM(), which tells the samba_deps module to add an
implied dependency on the listed targets if the system library is
chosen.
2010-04-06 20:27:17 +10:00
Andrew Tridgell
a2b4d7e8eb s4-waf: ensure we don't end up with mixed versions of talloc/tdb/tevent 2010-04-06 20:27:15 +10:00
Andrew Tridgell
bfbf43cc36 s4-waf: support the use of system libraries
distros can set --bundled-libraries=NONE to force use of all system
libraries. If the right version isn't found then configure will fail.

Users may choose which libraries to use from the system, and which to
use bundled libs. The default is to try system libs, and use them if
their version matches the one in the source tree.
2010-04-06 20:27:13 +10:00
Andrew Tridgell
c2d17cf978 s4-waf: set default for bundled libraries 2010-04-06 20:27:12 +10:00
Andrew Tridgell
42c9380760 s4-waf: set the bundled library extension for some libs 2010-04-06 20:27:12 +10:00
Andrew Tridgell
f9eae32f4b s4-waf: mark the wscript files as python so vim/emacs knows how to highlight them 2010-04-06 20:27:11 +10:00
Andrew Tridgell
00649a9c62 build: updated configure checks or new syntax 2010-04-06 20:27:00 +10:00
Andrew Tridgell
6858e73e40 build: tevent_epoll.c is conditional on HAVE_EPOLL 2010-04-06 20:26:58 +10:00
Andrew Tridgell
5ad6369cd0 build: started to split up wafsamba.py into separate modules 2010-04-06 20:26:38 +10:00
Andrew Tridgell
a3421fe6e9 build: added BUILD_SUBDIR() wrapper 2010-04-06 20:26:35 +10:00
Andrew Tridgell
9a1cd09a10 build: added ADD_CFLAGS() and started of Samba4 build 2010-04-06 20:26:34 +10:00
Andrew Tridgell
2b5a1cc70c build: added waf build rules for ldb 2010-04-06 20:26:34 +10:00
Andrew Tridgell
8f062f4a0f build: neater way to find libreplace and start on tevent waf build 2010-04-06 20:26:33 +10:00
Andrew Tridgell
5609c50433 tevent: added tevent_re_initialise()
This allows us to re-initialise a tevent context without destroying
the pointer. That means that if someone keeps a long term ptr to the
event context across a fork it will still work.

This also brings the memory handling in single and standard process
models much closer together, which means less bugs that we don't find
with make test.
2010-03-26 21:13:27 +11:00
Brad Hards
119a8230eb Spelling fixes for tevent.
Signed-off-by: Matthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
2010-02-22 21:45:32 +01:00
Andrew Tridgell
ccfa40fdc3 util: update three other copies of our dlinklist.h macros
ldb and tevent have their own copies of these macros. This brings them
in sync with the master copy of dlinklist.h
2010-02-14 18:44:21 +11:00
Bo Yang
8c8bb51de1 s3: signals are processed twice in child.
Signed-off-by: Bo Yang <boyang@samba.org>
2010-02-09 17:05:58 +08:00
Brian Lu
f408d58d95 tevent: create symbol links to shared libraries see https://bugzilla.samba.org/show_bug.cgi?id=6991 for details
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2010-01-06 14:27:38 +01:00
Stefan Metzmacher
4b7a6b1f8f tevent: prefix types and defined with tevent_ and TEVENT_
This fixes the build warnings on some build-farm hosts.

metze
2009-12-20 14:21:50 +01:00
Volker Lendecke
4d8118f145 tevent: Fix a comment 2009-11-26 17:22:56 +01:00
Jeremy Allison
295fec2b46 NULL is not a valid event context.
Jeremy.
2009-10-01 16:18:33 -07:00
Simo Sorce
76d836570e Fixing timeval calculation
The code was always doubling microseconds when attempting to round up.
2009-09-25 11:00:19 -04:00
Rusty Russell
455d44d961 lib/tevent: a cleaner fix for be4ac22784 segv
Revert 23abcd2318 and fix logic bug.

The current code loops through the event contexts, when it sees a different
one, it notifies the current one (ev) and updates ev to point to the new one.

This is dumb, because:
(1) ev starts as NULL, so this code crashes, and
(2) The final context will not be notified.

The correct fix for this is to update ev to the new one, then notify it.
Volker's fix works because we currently always have one event context.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2009-09-22 10:50:28 +02:00
Stefan Metzmacher
d13dfbeb6c tevent: make sure we don't set errno within the signal handler function.
metze
2009-09-21 05:54:41 +02:00
Michael Adam
64bfa26f99 tevent:mksyms: fix spelling...
Michael
2009-09-11 15:39:52 +02:00
Michael Adam
6b9298191a tevent:signatures: add _tevent_req_cancel and tevent_req_set_cancel_fn
introduced in 45e4be0d96

Michael
2009-09-11 15:31:29 +02:00
Michael Adam
7165f29aea tevent:exports: add _tevent_req_cancel and tevent_req_set_cancel_fn.
These were added in 45e4be0d96

Michael
2009-09-11 15:31:28 +02:00
Michael Adam
f98470e3a4 tevent:mksigs: allow PRINTF_ATTRIBUTE(..) macros function types as funcion args
Michael
2009-09-11 15:31:28 +02:00
Michael Adam
085c07b743 tevent:mksigs: normalize bool -> _Bool
Michael
2009-09-11 15:31:28 +02:00
Michael Adam
636f8b5e5b tevent:mksigs: ignore symbols (like _DEPRECATED_) after closing function parentheses
Michael
2009-09-11 15:31:27 +02:00
Michael Adam
aa7748484f tevent:mksigs: correctly ignode multiline function typedefs
by first concatenating multilint parentheses and removing typefes afterwards.

Michael
2009-09-11 15:31:27 +02:00
Michael Adam
1e2393c178 tevent:mksigs: ignore struct forward declarations.
Michael
2009-09-11 15:31:27 +02:00
Michael Adam
1f1a900dd7 tevent:mksyms: allow characters after closing functions parenthesis.
Michael
2009-09-11 15:31:26 +02:00
Michael Adam
095a11226e tevent:mksyms: allow double pointer return value of functions.
Michael
2009-09-11 15:31:26 +02:00
Michael Adam
4fb82727b1 tevent: add abi_checks to "make test"
Michael
2009-09-11 15:31:25 +02:00
Michael Adam
cf67b1bff7 tevent: remove filese generated by "make abi_checks" in "make clean".
Michael
2009-09-11 15:31:24 +02:00
Michael Adam
40c670f8cb tevent: add a make target "make abi_checks"
Michael
2009-09-11 15:31:24 +02:00
Michael Adam
f0e276cff8 tevent: move the original abi_checks script to script/abi_checks_gcc.sh
Michael
2009-09-11 15:31:24 +02:00
Michael Adam
31ee072934 tevent: add script/abi_checks.sh. check for abi changes without gcc magic.
USAGE: abi_checks.sh LIBRARY_NAME header1 [header2 ...]

This creates symbol signature lists using the mksyms and mksigs scripts
and compares them with the checked in lists.

Michael
2009-09-11 15:31:23 +02:00
Michael Adam
ffc72b9207 tevent: add script to extract signatures from header files.
This produces output like the output gcc produces when
invoked with the -aux-info switch.

Run like this: cat include/tevent.h | ./script/mksigs.pl

This simple parser is probably too coarse to handle all
possible header files, but it treats tevent.h correctly...

Michael
2009-09-11 15:31:23 +02:00
Michael Adam
4530fcd820 tevent: add scripts to extract library symbols (exports file) from headers
Michael
2009-09-11 15:31:23 +02:00
Simo Sorce
ab6e82910a Add release script for tevent 2009-09-04 18:20:29 -04:00
Stefan Metzmacher
1bb68402a2 tevent: change version to 0.9.8 after some critical bugs have been fixed
metze
2009-09-04 13:01:06 +02:00
Jeremy Allison
c97698e762 Another part of the fix for bug 6651 - smbd SIGSEGV when breaking oplocks.
SA_INFO_QUEUE_COUNT *MUST* be a power of 2, in order for the ring buffer
wrap to work correctly at the 32 bit boundary. Thanks to Petr
Vandrovec <petr@vandrovec.name> for this.
2009-09-03 07:38:21 -07:00
Volker Lendecke
23abcd2318 tevent: Fix a segfault upon the first signal
When the first signal arrives, tevent_common_signal_handler() crashed: "ev" is
initialized to NULL, so the first "write(ev->pipe_fds[1], &c, 1);" dereferences
NULL.

Rusty, Tridge, please check. Also, can you tell me a bit more about the
environment you tested this in? I'd be curious to see where this survived.

Thanks,

Volker
2009-08-29 09:49:08 +02:00
Rusty Russell
76d91156c8 lib/tevent: close pipe_fds on event_context destruction
The "hack_fds" were never closed before; now they're inside event_context
they should be closed when that is destroyed.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2009-08-28 14:10:22 +10:00
Rusty Russell
be4ac22784 lib/tevent: handle tevent_common_add_signal on different event contexts.
I don't know if this is a problem in real life.

The code assumes there's only one tevent_context; all signals will notify
the first event context.  That's counter-intuitive if you ever use more
than one, and there's nothing else in this code which prevents it AFAICT.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2009-08-28 14:09:09 +10:00
Rusty Russell
6abb637e3e lib/tevent: fix race with signals and tevent_common_add_signal
We carefully preserve the old signal handler, but we replace it before
we've set up everything; in particular, if we fail setting up the
pipe_hack we could write a NUL char to stdout (fd 0), instead of
calling the old signal handler.

Replace the signal handler as the very last thing we do.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2009-08-28 14:03:41 +10:00
Rusty Russell
4279879c98 lib/tevent: remove spectacularly complicated manual subtraction
To be completely honest, I don't quite know whether to laugh or cry at
this one:

	1 + (0xFFFFFFFF & ~(s.seen - s.count))
	== 1 + (~(s.seen - s.count))		# s.seen, s.count are uint32_t
	== s.count - s.seen			# -A == ~A + 1

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2009-08-28 13:08:01 +10:00
Günther Deschner
965a079535 tevent: avoid using reserved c++ word.
Guenther
2009-08-24 14:31:02 +02:00
Jeremy Allison
ba52f18bfe Fix for bug 6651 - smbd SIGSEGV when breaking oplocks.
Based on a patch submitted by Petr Vandrovec <petr@vandrovec.name>.
Multiple pending signals with siginfo_t's weren't being handled correctly
leading to smbd abort with kernel oplock signals.
Jeremy
2009-08-21 15:07:25 -07:00
Michael Adam
5270efab1a tevent: fix a comment
Michael
2009-08-19 11:39:44 +02:00
Stefan Metzmacher
97a1ed53ca tevent: change version to 0.9.7 after adding tevent_req_cancel infrastructure
metze
2009-08-17 09:25:44 +02:00
Stefan Metzmacher
45e4be0d96 tevent: add tevent_req_cancel() infrastructure
This offers a generic way for callers to cancel an
async request.

metze
2009-08-17 09:25:44 +02:00
Stefan Metzmacher
95c3d3b5d8 tevent: add some more doxygen comments for tevent_req functions
metze
2009-08-15 10:46:36 +02:00
Stefan Metzmacher
39684d2cbe tevent: try to fix the build on QNX qnx18 6.4.1 it doesn't have SA_RESTART defined
metze
2009-07-16 11:41:28 +02:00
Jeremy Allison
5927ca7067 Change to talloc_zero_size instead of extra memset.
Jeremy.
2009-07-14 16:54:01 -07:00
Jeremy Allison
7be1d727a3 When tallocing a memory block for the state in a tevent_req struct,
ensure it's zeroed out. Vl & Metze please check.
Jeremy.
2009-07-14 16:42:21 -07:00
Simo Sorce
7119241c0d Sort the signature files 2009-07-03 08:45:30 -04:00
Simo Sorce
30b2014a01 Expose functions need by backend writers
move publicly needed structures and functions in the public header.
Stop installing internal headers.
Update the signature and exports files with the new exposed
function.
2009-07-03 08:45:30 -04:00
Simo Sorce
c92505817d Revert "For tevent to install tevent_util.h"
This reverts commit b112cc5503.

tevent_util.h is a private header. Must not be installed.
2009-06-18 07:56:51 -04:00
Eric Sandall
b112cc5503 For tevent to install tevent_util.h
Patch for bug #6270

This patch is for the future when samba4 builds using external libraries. With
this patch, tevent now installs tevent_util.h which is required by samba4.
2009-06-18 13:49:26 +10:00
Simo Sorce
efccef09ae Add exports file and abi checker for tevent
This is a first attempt at exporting symbols only for public functions
We also provide a rudimentary ABI checker that tries to check that
function signatures are not changed by mistake.
Given our use of macros this is not an API checker.
It's all based on tevent.h contents and the gcc -aux-info option
2009-06-15 16:31:13 -04:00
Volker Lendecke
d0aedeb46e Increase tevent version for tevent_req_notify_callback() 2009-06-04 17:50:44 +02:00
Volker Lendecke
c6f39b46a7 Add tevent_req_notify_callback
This is necessary for requests that have multiple results. Examples would be
SMBEcho and ldap_search.
2009-06-04 17:29:48 +02:00