[SCM] CTDB repository - branch master updated - ctdb-1.0.114-247-g7ef2cdd

Ronnie Sahlberg sahlberg at samba.org
Tue Aug 17 19:12:16 MDT 2010


The branch, master has been updated
       via  7ef2cddad5326fdcc26138906948342039829495 (commit)
       via  6aabe52d5ba629291aa630bc96a2b74dcecc5209 (commit)
       via  5bf6bd5e7f33aabbeb7b9707716ef99cf471e590 (commit)
       via  1566d2d23ab698896b3b6a76974a5c7452db4a62 (commit)
       via  85e5e760cc91eb3157d3a88996ce474491646726 (commit)
       via  cecd93be0a0aab868430dd43f8276bfb4e35f02e (commit)
       via  332375246eccd95da626f434f6d49dd9458a9787 (commit)
       via  67ca040b07713d83385db63489c887f7156b7853 (commit)
       via  1a23581c70a0c8c3b9c8fd4651ce1b2bb4464f97 (commit)
       via  d48ec16bd2b4932442d95fc43bea52baa0425501 (commit)
       via  be7c0bffb0d924c3e72753045d5b85ce90407579 (commit)
       via  5fb6da30b5b5a8b761c8ab9a8124b87b759ef055 (commit)
       via  8ac006cf6c6cbfd3fe1606178eb0f0127d33f632 (commit)
       via  b4aab4199a57898877b6545a54f212087ed4b35a (commit)
       via  1f20b938d46d4fcd50d2b473c1ab8dc31d178d2d (commit)
       via  18a212aa40d0ff9ff59775c6fcf9dc973e991460 (commit)
       via  936b02443d36306407d6a26e8037cf31e3190b32 (commit)
       via  680ee6afaa89f21115a1bf33a8b9e7e92084a1a1 (commit)
       via  0e8210f19edf2ae14154afb85d9b96951881f31f (commit)
       via  70f6ed2634fb10749cdad3deffa96a1aa439c235 (commit)
       via  cd6b2f46075bfb64561496960af7fc2e95500e52 (commit)
       via  54c1036090d930c19231038ca861297153c1d0cf (commit)
       via  256653a223c48ed932ce85f89fc2c2dda14f8c27 (commit)
      from  a69916d0687309766b0014dc9cee6a966aaa89da (commit)

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


- Log -----------------------------------------------------------------
commit 7ef2cddad5326fdcc26138906948342039829495
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Aug 18 11:09:32 2010 +1000

    Add a new "ctdb addtickle" command to manually add tickles to ctdbd
    
    This can be used to set ctdbd up to generate a tickle for non-samba
    services.
    (samba contains code to set tickles up automatically)

commit 6aabe52d5ba629291aa630bc96a2b74dcecc5209
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Aug 18 10:18:35 2010 +1000

    update the example for the new signature of
    ctdb_set_message_handler_send()

commit 5bf6bd5e7f33aabbeb7b9707716ef99cf471e590
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Aug 18 10:11:59 2010 +1000

    We use eventloop nesting in a couple of places, notably the sync
    parts of the recovery daemon.
    
    Initialize all event contexts to allow nesting

commit 1566d2d23ab698896b3b6a76974a5c7452db4a62
Merge: a69916d0687309766b0014dc9cee6a966aaa89da 85e5e760cc91eb3157d3a88996ce474491646726
Author: Ronnie Sahlberg <ronniesahlberg at gmail.com>
Date:   Wed Aug 18 09:53:52 2010 +1000

    Merge commit 'rusty/libctdb-new' into foo

commit 85e5e760cc91eb3157d3a88996ce474491646726
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Wed Aug 18 09:16:31 2010 +0930

    event: Update events to latest Samba version 0.9.8
    
    In Samba this is now called "tevent", and while we use the backwards
    compatibility wrappers they don't offer EVENT_FD_AUTOCLOSE: that is now
    a separate tevent_fd_set_auto_close() function.
    
    This is based on Samba version 7f29f817fa939ef1bbb740584f09e76e2ecd5b06.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit cecd93be0a0aab868430dd43f8276bfb4e35f02e
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Wed Aug 18 09:11:58 2010 +0930

    talloc: update to 2.0.3 version from SAMBA
    
    This is based on SAMBA as at revision 2de63aa2801a907905b3e05557074af5b896d486.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 332375246eccd95da626f434f6d49dd9458a9787
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Aug 9 15:41:32 2010 +0930

    libctdb: add synchronous message handling and unregister, with tests.
    
    It turns out that we *do* want a separate private arg for the message
    handler and the completion callback, so we change that.
    
    We also fix the prototypes of the remove_message functions as we
    implement them.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 67ca040b07713d83385db63489c887f7156b7853
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Jun 21 16:09:16 2010 +0930

    libctdb: test: run.sh script
    
    This is a script which starts up a fake ctdbd and runs the libctdb
    test suite.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 1a23581c70a0c8c3b9c8fd4651ce1b2bb4464f97
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Jun 21 16:06:00 2010 +0930

    libctdb: test: add readrecordlock support
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit d48ec16bd2b4932442d95fc43bea52baa0425501
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Jun 21 15:00:46 2010 +0930

    libctdb: test: add database save and restore
    
    Once we do operations which alter the TDBs, we need to restore them to
    pristine state after a failed child dies.
    
    The method used here is a terrible hack: it should at least do a
    tdb_lockall() on the database before blatting it.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit be7c0bffb0d924c3e72753045d5b85ce90407579
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Jun 21 14:48:54 2010 +0930

    libctdb: test: --no-failtest
    
    Sometimes you just want to test that the basic test case is sane,
    without all the failure paths being tested.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 5fb6da30b5b5a8b761c8ab9a8124b87b759ef055
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Jun 21 14:57:11 2010 +0930

    libctdb: test: improve logging of failure paths
    
    We include the file and line which called the functions, so the printed
    failure path now looks like:
    
    	[malloc(ctdb.c:144)]:1:S[socket(ctdb.c:168)]:1:S...
    
    The form is:
        [ <function> ( <caller> ) ] : <input line> : <result>
    
    <function> is the function which is called (eg. malloc).
    <caller> is the file and line number which called <function>.
    <input line> is the 1-based line number in the input which we were up to.
    <result> is 'S' (success) or 'F' (failure).
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 8ac006cf6c6cbfd3fe1606178eb0f0127d33f632
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Jun 21 15:02:05 2010 +0930

    libctdb: test: logging enhancement
    
    Make children log through a pipe to the parent, which then spits it out
    only if the child has a problem.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit b4aab4199a57898877b6545a54f212087ed4b35a
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Fri Jul 16 14:12:40 2010 +0930

    libctdb: test infrastructure
    
    This introduces 'ctdb-test', a program for testing libctdb.  It takes
    commands on standard input (with reduced functionality) or an input file.
    
    It still needs some cleaning up, but you can uncover a bug in libctdb
    today simply by running a simple attachdb test:
    
    	$ ctdb-test tests/attachdb1.txt
    
    It will print out a crash, and the path of successful and failed
    operations which lead to it:
    
    	...
    	Child signalled 11 on failure path: [malloc]:1:S[socket]:1:S[connect]:1:S[malloc]:1:S[malloc]:1:S[malloc]:1:S[malloc]:4:S[malloc]:4:F
    
    Feed that failure path into ctdb-test using --failpath (under a debugger):
    
    	gdb --args ctdb-test tests/attachdb1.txt --failpath=[malloc]:1:S[socket]:1:S[connect]:1:S[malloc]:1:S[malloc]:1:S[malloc]:1:S[malloc]:4:S[malloc]:4:F
    
    And you hit the exact error.
    
    It is based on the fork-to-fail model of nfsim.  The relevant parts are
    from page 154 of the proceedings of 2005 Ottawa Linux Symposium Volume II:
    	http://www.linuxsymposium.org/2005/linuxsymposium_procv2.pdf
    
    Or our presentation of same (from slide 21):
    	http://ozlabs.org/~jk/projects/nfsim/nfsim.sxi
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 1f20b938d46d4fcd50d2b473c1ab8dc31d178d2d
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Jun 21 14:47:34 2010 +0930

    libctdb: implement synchronous readrecordlock interface.
    
    Because this doesn't use a generic callback, it's not quite as trivial
    as the other sync wrappers.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 18a212aa40d0ff9ff59775c6fcf9dc973e991460
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Fri Jun 18 15:35:52 2010 +0930

    libctdb: implement ctdb_disconnect and ctdb_detachdb
    
    These are important for testing, since we can easily tell if we
    leak memory if there are outstanding allocations after calling
    these.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 936b02443d36306407d6a26e8037cf31e3190b32
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Fri Jun 18 15:48:48 2010 +0930

    libctdb: fix io_elem resource leak on realloc failure.
    
    Found by nfsim.
    
    I knew about this, but as we stop when it happens anyway I didn't fix
    it.  But it bugs nfsim, so fix it.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 680ee6afaa89f21115a1bf33a8b9e7e92084a1a1
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Mon Jun 21 14:45:37 2010 +0930

    libctdb: fix writerecord() to actually write the record.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 0e8210f19edf2ae14154afb85d9b96951881f31f
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Fri Jun 18 15:13:54 2010 +0930

    libctdb: ctdb_service() never returns < 0
    
    Found by ctdb-test.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 70f6ed2634fb10749cdad3deffa96a1aa439c235
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Fri Jun 18 15:15:11 2010 +0930

    libctdb: check ctdb_request_free & ctdb_cancel used appropriately.
    
    Since I made this mistake myself, we should check for it.
    
    We could have one function that does both, but from a user's point of
    view they are very different and it's quite possibly a bug if they
    think the request is finished/unfinished when it's not.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit cd6b2f46075bfb64561496960af7fc2e95500e52
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Fri Jun 18 15:15:27 2010 +0930

    libctdb: synchronous should be using ctdb_cancel to kill unfinished requests.
    
    Found by ctdb-test.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 54c1036090d930c19231038ca861297153c1d0cf
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Fri Jun 18 15:47:23 2010 +0930

    libctdb: fix uninitialized field usage on ctdb_attach failure path
    
    Found by ctdb-test.
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

commit 256653a223c48ed932ce85f89fc2c2dda14f8c27
Author: Rusty Russell <rusty at rustcorp.com.au>
Date:   Fri Jun 18 15:47:14 2010 +0930

    libctdb: removed unused lock field from struct ctdb_db
    
    Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>

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

Summary of changes:
 Makefile.in                          |    4 +-
 autogen.sh                           |    2 +-
 client/ctdb_client.c                 |    3 +-
 common/cmdline.c                     |    2 +-
 common/ctdb_io.c                     |    5 +-
 common/ctdb_logging.c                |    2 +-
 common/ctdb_ltdb.c                   |    2 +-
 common/ctdb_message.c                |    2 +-
 common/ctdb_util.c                   |    2 +-
 common/system_linux.c                |    2 +-
 configure.ac                         |    2 +-
 ib/ibw_ctdb.c                        |    2 +-
 ib/ibw_ctdb_init.c                   |    2 +-
 ib/ibwrapper_test.c                  |    4 +-
 include/ctdb.h                       |   63 +-
 include/ctdb_client.h                |    6 +-
 include/ctdb_private.h               |    2 +-
 lib/events/config.m4                 |   18 -
 lib/events/config.mk                 |   38 -
 lib/events/events.c                  |  321 -------
 lib/events/events.h                  |   94 --
 lib/events/events_aio.c              |  577 ------------
 lib/events/events_epoll.c            |  501 ----------
 lib/events/events_internal.h         |  117 ---
 lib/events/events_liboop.c           |  289 ------
 lib/events/events_select.c           |  320 -------
 lib/events/events_signal.c           |  291 ------
 lib/events/events_standard.c         |  615 -------------
 lib/events/events_timed.c            |  162 ----
 lib/events/libevents.m4              |   11 -
 lib/replace/replace.h                |    3 +
 lib/talloc/configure.ac              |   33 +-
 lib/talloc/doc/mainpage.dox          |  105 +++
 lib/talloc/doxy.config               | 1538 +++++++++++++++++++++++++++++++
 lib/talloc/libtalloc.m4              |   13 +-
 lib/talloc/talloc.3.xml              |   84 ++-
 lib/talloc/talloc.c                  |  928 +++++++++++++++----
 lib/talloc/talloc.h                  | 1644 +++++++++++++++++++++++++++++++--
 lib/talloc/talloc.pc.in              |    2 +-
 lib/talloc/talloc_guide.txt          |  140 +++-
 lib/talloc/testsuite.c               |  220 ++++-
 lib/talloc/testsuite_main.c          |   37 +
 lib/talloc/web/index.html            |   28 +-
 lib/tevent/ABI/tevent-0.9.9.sigs     |   73 ++
 lib/tevent/Makefile.in               |   79 ++
 lib/tevent/autogen-waf.sh            |    1 +
 lib/tevent/autogen.sh                |   13 +
 lib/tevent/build_macros.m4           |   14 +
 lib/tevent/config.guess              | 1561 +++++++++++++++++++++++++++++++
 lib/tevent/config.sub                | 1686 ++++++++++++++++++++++++++++++++++
 lib/tevent/configure.ac              |   25 +
 lib/tevent/doc/mainpage.dox          |   42 +
 lib/tevent/doc/tutorials.dox         |   43 +
 lib/tevent/doxy.config               | 1538 +++++++++++++++++++++++++++++++
 lib/tevent/install-sh                |  238 +++++
 lib/tevent/libtalloc.m4              |    7 +
 lib/tevent/libtevent.m4              |   44 +
 lib/tevent/pkg.m4                    |  156 ++++
 lib/tevent/release-script.sh         |   48 +
 lib/tevent/rules.mk                  |   18 +
 lib/tevent/samba.m4                  |   11 +
 lib/tevent/script/abi_checks.sh      |   91 ++
 lib/tevent/script/abi_checks_gcc.sh  |   31 +
 lib/{tdb => tevent}/script/mksigs.pl |    0 
 lib/tevent/script/mksyms.awk         |   75 ++
 lib/tevent/script/mksyms.sh          |   45 +
 lib/tevent/testsuite.c               |  160 ++++
 lib/tevent/tevent.c                  |  630 +++++++++++++
 lib/tevent/tevent.exports            |   62 ++
 lib/tevent/tevent.h                  | 1441 +++++++++++++++++++++++++++++
 lib/tevent/tevent.mk                 |   46 +
 lib/tevent/tevent.pc.in              |   12 +
 lib/tevent/tevent.signatures         |   57 ++
 lib/tevent/tevent_debug.c            |   95 ++
 lib/tevent/tevent_epoll.c            |  443 +++++++++
 lib/tevent/tevent_fd.c               |   89 ++
 lib/tevent/tevent_immediate.c        |  138 +++
 lib/tevent/tevent_internal.h         |  308 +++++++
 lib/tevent/tevent_liboop.c           |  292 ++++++
 lib/tevent/tevent_queue.c            |  217 +++++
 lib/tevent/tevent_req.c              |  277 ++++++
 lib/tevent/tevent_select.c           |  248 +++++
 lib/tevent/tevent_signal.c           |  423 +++++++++
 lib/tevent/tevent_standard.c         |  568 ++++++++++++
 lib/tevent/tevent_timed.c            |  267 ++++++
 lib/tevent/tevent_util.c             |   90 ++
 lib/tevent/tevent_util.h             |  191 ++++
 lib/tevent/tevent_wakeup.c           |   69 ++
 lib/tevent/wscript                   |   75 ++
 lib/util/db_wrap.c                   |    2 +-
 lib/util/util.h                      |    7 -
 libctdb/ctdb.c                       |   88 ++-
 libctdb/io_elem.c                    |    6 +-
 libctdb/local_tdb.c                  |    2 +
 libctdb/messages.c                   |   85 ++-
 libctdb/messages.h                   |    1 +
 libctdb/sync.c                       |   84 ++-
 libctdb/test/Makefile                |   23 +
 libctdb/test/attachdb.c              |  177 ++++
 libctdb/test/ctdb-test.c             |  454 +++++++++
 libctdb/test/ctdb-test.h             |   28 +
 libctdb/test/databases.c             |  134 +++
 libctdb/test/expect.c                |  300 ++++++
 libctdb/test/expect.h                |   35 +
 libctdb/test/failtest.c              |  344 +++++++
 libctdb/test/failtest.h              |   15 +
 libctdb/test/log.c                   |  233 +++++
 libctdb/test/log.h                   |   47 +
 libctdb/test/readrecordlock.c        |  197 ++++
 libctdb/test/run.sh                  |   83 ++
 libctdb/test/tests/attachdb1.txt     |    8 +
 libctdb/test/tests/connect1.txt      |    3 +
 libctdb/test/tests/connect2.txt      |    3 +
 libctdb/test/tests/lockrecord1.txt   |    8 +
 libctdb/test/tests/lockrecord2.txt   |   13 +
 libctdb/test/tools/create-links      |   39 +
 libctdb/test/tools/extract-help      |   10 +
 libctdb/test/tools/gen-help          |   52 +
 libctdb/test/tools/gen-usage         |   56 ++
 libctdb/test/tools/text.xsl          |  111 +++
 libctdb/test/tools/usage.xsl         |   17 +
 libctdb/test/tui.c                   |  460 +++++++++
 libctdb/test/tui.h                   |   54 ++
 libctdb/test/utils.h                 |   86 ++
 libctdb/tst.c                        |    3 +-
 server/ctdb_banning.c                |    2 +-
 server/ctdb_call.c                   |    2 +-
 server/ctdb_control.c                |    2 +-
 server/ctdb_daemon.c                 |    6 +-
 server/ctdb_freeze.c                 |    5 +-
 server/ctdb_keepalive.c              |    2 +-
 server/ctdb_lockwait.c               |    5 +-
 server/ctdb_logging.c                |   26 +-
 server/ctdb_ltdb_server.c            |    2 +-
 server/ctdb_monitor.c                |    2 +-
 server/ctdb_persistent.c             |    5 +-
 server/ctdb_recover.c                |    5 +-
 server/ctdb_recoverd.c               |    9 +-
 server/ctdb_server.c                 |    2 +-
 server/ctdb_takeover.c               |    5 +-
 server/ctdb_traverse.c               |    2 +-
 server/ctdb_uptime.c                 |    2 +-
 server/ctdb_vacuum.c                 |   12 +-
 server/ctdbd.c                       |    3 +-
 server/eventscript.c                 |    9 +-
 tcp/tcp_connect.c                    |   12 +-
 tcp/tcp_init.c                       |    2 +-
 tcp/tcp_io.c                         |    2 +-
 tests/src/ctdb_bench.c               |    2 +-
 tests/src/ctdb_fetch.c               |    2 +-
 tests/src/ctdb_fetch_one.c           |    2 +-
 tests/src/ctdb_persistent.c          |    2 +-
 tests/src/ctdb_randrec.c             |    2 +-
 tests/src/ctdb_store.c               |    2 +-
 tests/src/ctdb_transaction.c         |    2 +-
 tests/src/ctdb_traverse.c            |    2 +-
 tests/src/rb_test.c                  |    2 +-
 tools/ctdb.c                         |   41 +-
 tools/ctdb_vacuum.c                  |    2 +-
 159 files changed, 19919 insertions(+), 3807 deletions(-)
 delete mode 100644 lib/events/config.m4
 delete mode 100644 lib/events/config.mk
 delete mode 100644 lib/events/events.c
 delete mode 100644 lib/events/events.h
 delete mode 100644 lib/events/events_aio.c
 delete mode 100644 lib/events/events_epoll.c
 delete mode 100644 lib/events/events_internal.h
 delete mode 100644 lib/events/events_liboop.c
 delete mode 100644 lib/events/events_select.c
 delete mode 100644 lib/events/events_signal.c
 delete mode 100644 lib/events/events_standard.c
 delete mode 100644 lib/events/events_timed.c
 delete mode 100644 lib/events/libevents.m4
 create mode 100644 lib/talloc/doc/mainpage.dox
 create mode 100644 lib/talloc/doxy.config
 create mode 100644 lib/talloc/testsuite_main.c
 create mode 100644 lib/tevent/ABI/tevent-0.9.9.sigs
 create mode 100644 lib/tevent/Makefile.in
 create mode 120000 lib/tevent/autogen-waf.sh
 create mode 100755 lib/tevent/autogen.sh
 create mode 100644 lib/tevent/build_macros.m4
 create mode 100755 lib/tevent/config.guess
 create mode 100755 lib/tevent/config.sub
 create mode 100644 lib/tevent/configure.ac
 create mode 100644 lib/tevent/doc/mainpage.dox
 create mode 100644 lib/tevent/doc/tutorials.dox
 create mode 100644 lib/tevent/doxy.config
 create mode 100755 lib/tevent/install-sh
 create mode 100644 lib/tevent/libtalloc.m4
 create mode 100644 lib/tevent/libtevent.m4
 create mode 100644 lib/tevent/pkg.m4
 create mode 100755 lib/tevent/release-script.sh
 create mode 100644 lib/tevent/rules.mk
 create mode 100644 lib/tevent/samba.m4
 create mode 100755 lib/tevent/script/abi_checks.sh
 create mode 100755 lib/tevent/script/abi_checks_gcc.sh
 copy lib/{tdb => tevent}/script/mksigs.pl (100%)
 create mode 100644 lib/tevent/script/mksyms.awk
 create mode 100755 lib/tevent/script/mksyms.sh
 create mode 100644 lib/tevent/testsuite.c
 create mode 100644 lib/tevent/tevent.c
 create mode 100644 lib/tevent/tevent.exports
 create mode 100644 lib/tevent/tevent.h
 create mode 100644 lib/tevent/tevent.mk
 create mode 100644 lib/tevent/tevent.pc.in
 create mode 100644 lib/tevent/tevent.signatures
 create mode 100644 lib/tevent/tevent_debug.c
 create mode 100644 lib/tevent/tevent_epoll.c
 create mode 100644 lib/tevent/tevent_fd.c
 create mode 100644 lib/tevent/tevent_immediate.c
 create mode 100644 lib/tevent/tevent_internal.h
 create mode 100644 lib/tevent/tevent_liboop.c
 create mode 100644 lib/tevent/tevent_queue.c
 create mode 100644 lib/tevent/tevent_req.c
 create mode 100644 lib/tevent/tevent_select.c
 create mode 100644 lib/tevent/tevent_signal.c
 create mode 100644 lib/tevent/tevent_standard.c
 create mode 100644 lib/tevent/tevent_timed.c
 create mode 100644 lib/tevent/tevent_util.c
 create mode 100644 lib/tevent/tevent_util.h
 create mode 100644 lib/tevent/tevent_wakeup.c
 create mode 100644 lib/tevent/wscript
 create mode 100644 libctdb/test/Makefile
 create mode 100644 libctdb/test/attachdb.c
 create mode 100644 libctdb/test/ctdb-test.c
 create mode 100644 libctdb/test/ctdb-test.h
 create mode 100644 libctdb/test/databases.c
 create mode 100644 libctdb/test/expect.c
 create mode 100644 libctdb/test/expect.h
 create mode 100644 libctdb/test/failtest.c
 create mode 100644 libctdb/test/failtest.h
 create mode 100644 libctdb/test/log.c
 create mode 100644 libctdb/test/log.h
 create mode 100644 libctdb/test/readrecordlock.c
 create mode 100755 libctdb/test/run.sh
 create mode 100644 libctdb/test/tests/attachdb1.txt
 create mode 100644 libctdb/test/tests/connect1.txt
 create mode 100644 libctdb/test/tests/connect2.txt
 create mode 100644 libctdb/test/tests/lockrecord1.txt
 create mode 100644 libctdb/test/tests/lockrecord2.txt
 create mode 100755 libctdb/test/tools/create-links
 create mode 100755 libctdb/test/tools/extract-help
 create mode 100755 libctdb/test/tools/gen-help
 create mode 100755 libctdb/test/tools/gen-usage
 create mode 100644 libctdb/test/tools/text.xsl
 create mode 100644 libctdb/test/tools/usage.xsl
 create mode 100644 libctdb/test/tui.c
 create mode 100644 libctdb/test/tui.h
 create mode 100644 libctdb/test/utils.h


Changeset truncated at 500 lines:

diff --git a/Makefile.in b/Makefile.in
index 15231b6..8df8ff2 100755
--- a/Makefile.in
+++ b/Makefile.in
@@ -16,7 +16,7 @@ sbindir = @sbindir@
 mandir = @mandir@
 localstatedir = @localstatedir@
 logdir = @LOGDIR@
-VPATH = @srcdir@:@tdbdir@:@tallocdir@:@libreplacedir@:@poptdir@
+VPATH = @srcdir@:@tdbdir@:@tallocdir@:@libreplacedir@:@poptdir@:@teventdir@:
 srcdir = @srcdir@
 etcdir = @sysconfdir@
 builddir = @builddir@
@@ -54,7 +54,7 @@ CTDB_TCP_OBJ = tcp/tcp_connect.o tcp/tcp_io.o tcp/tcp_init.o
 
 CTDB_CLIENT_OBJ = client/ctdb_client.o \
 	$(CTDB_COMMON_OBJ) $(POPT_OBJ) $(UTIL_OBJ) @TALLOC_OBJ@ @TDB_OBJ@ \
-	@LIBREPLACEOBJ@ $(EXTRA_OBJ) @EVENTS_OBJ@ 
+	@LIBREPLACEOBJ@ $(EXTRA_OBJ) @TEVENT_OBJ@
 
 CTDB_SERVER_OBJ = server/ctdbd.o server/ctdb_daemon.o server/ctdb_lockwait.o \
 	server/ctdb_recoverd.o server/ctdb_recover.o server/ctdb_freeze.o \
diff --git a/autogen.sh b/autogen.sh
index e333898..12603d2 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -7,7 +7,7 @@ IPATHS="-I libreplace -I lib/replace -I ../libreplace -I ../replace"
 IPATHS="$IPATHS -I lib/talloc -I talloc -I ../talloc"
 IPATHS="$IPATHS -I lib/tdb -I tdb -I ../tdb"
 IPATHS="$IPATHS -I lib/popt -I popt -I ../popt"
-IPATHS="$IPATHS -I lib/events"
+IPATHS="$IPATHS -I lib/tevent"
 
 autoheader $IPATHS || exit 1
 autoconf $IPATHS || exit 1
diff --git a/client/ctdb_client.c b/client/ctdb_client.c
index adba17c..51830ab 100644
--- a/client/ctdb_client.c
+++ b/client/ctdb_client.c
@@ -22,7 +22,7 @@
 #include "db_wrap.h"
 #include "lib/tdb/include/tdb.h"
 #include "lib/util/dlinklist.h"
-#include "lib/events/events.h"
+#include "lib/tevent/tevent.h"
 #include "system/network.h"
 #include "system/filesys.h"
 #include "system/locale.h"
@@ -3839,6 +3839,7 @@ int switch_from_server_to_client(struct ctdb_context *ctdb)
 	/* get a new event context */
 	talloc_free(ctdb->ev);
 	ctdb->ev = event_context_init(ctdb);
+	tevent_loop_allow_nesting(ctdb->ev);
 
 	close(ctdb->daemon.sd);
 	ctdb->daemon.sd = -1;
diff --git a/common/cmdline.c b/common/cmdline.c
index 38af6eb..145a13a 100644
--- a/common/cmdline.c
+++ b/common/cmdline.c
@@ -18,7 +18,7 @@
 */
 
 #include "includes.h"
-#include "lib/events/events.h"
+#include "lib/tevent/tevent.h"
 #include "system/filesys.h"
 #include "popt.h"
 #include "../include/ctdb_client.h"
diff --git a/common/ctdb_io.c b/common/ctdb_io.c
index 102f0b6..81f9451 100644
--- a/common/ctdb_io.c
+++ b/common/ctdb_io.c
@@ -22,7 +22,7 @@
 
 #include "includes.h"
 #include "lib/tdb/include/tdb.h"
-#include "lib/events/events.h"
+#include "lib/tevent/tevent.h"
 #include "lib/util/dlinklist.h"
 #include "system/network.h"
 #include "system/filesys.h"
@@ -357,11 +357,12 @@ int ctdb_queue_set_fd(struct ctdb_queue *queue, int fd)
 	queue->fde = NULL;
 
 	if (fd != -1) {
-		queue->fde = event_add_fd(queue->ctdb->ev, queue, fd, EVENT_FD_READ|EVENT_FD_AUTOCLOSE, 
+		queue->fde = event_add_fd(queue->ctdb->ev, queue, fd, EVENT_FD_READ,
 					  queue_io_handler, queue);
 		if (queue->fde == NULL) {
 			return -1;
 		}
+		tevent_fd_set_auto_close(queue->fde);
 
 		if (queue->out_queue) {
 			EVENT_FD_WRITEABLE(queue->fde);		
diff --git a/common/ctdb_logging.c b/common/ctdb_logging.c
index 18aafa2..4691208 100644
--- a/common/ctdb_logging.c
+++ b/common/ctdb_logging.c
@@ -18,7 +18,7 @@
 */
 
 #include "includes.h"
-#include "lib/events/events.h"
+#include "lib/tevent/tevent.h"
 #include "lib/tdb/include/tdb.h"
 #include "system/time.h"
 #include "../include/ctdb_private.h"
diff --git a/common/ctdb_ltdb.c b/common/ctdb_ltdb.c
index 6ce5c90..7dc28dd 100644
--- a/common/ctdb_ltdb.c
+++ b/common/ctdb_ltdb.c
@@ -18,7 +18,7 @@
 */
 
 #include "includes.h"
-#include "lib/events/events.h"
+#include "lib/tevent/tevent.h"
 #include "lib/tdb/include/tdb.h"
 #include "system/network.h"
 #include "system/filesys.h"
diff --git a/common/ctdb_message.c b/common/ctdb_message.c
index 326b557..03a4b55 100644
--- a/common/ctdb_message.c
+++ b/common/ctdb_message.c
@@ -21,7 +21,7 @@
   protocol design and packet details
 */
 #include "includes.h"
-#include "lib/events/events.h"
+#include "lib/tevent/tevent.h"
 #include "lib/tdb/include/tdb.h"
 #include "system/network.h"
 #include "system/filesys.h"
diff --git a/common/ctdb_util.c b/common/ctdb_util.c
index b928c7e..add2c3a 100644
--- a/common/ctdb_util.c
+++ b/common/ctdb_util.c
@@ -18,7 +18,7 @@
 */
 
 #include "includes.h"
-#include "lib/events/events.h"
+#include "lib/tevent/tevent.h"
 #include "lib/tdb/include/tdb.h"
 #include "system/network.h"
 #include "system/filesys.h"
diff --git a/common/system_linux.c b/common/system_linux.c
index b8aace4..a498ab2 100644
--- a/common/system_linux.c
+++ b/common/system_linux.c
@@ -23,7 +23,7 @@
 #include "system/filesys.h"
 #include "system/wait.h"
 #include "../include/ctdb_private.h"
-#include "lib/events/events.h"
+#include "lib/tevent/tevent.h"
 #include <netinet/if_ether.h>
 #include <netinet/ip6.h>
 #include <netinet/icmp6.h>
diff --git a/configure.ac b/configure.ac
index f159c29..cc3a114 100644
--- a/configure.ac
+++ b/configure.ac
@@ -58,7 +58,7 @@ EXTRA_OBJ=""
 m4_include(libpopt.m4)
 m4_include(libtalloc.m4)
 m4_include(libtdb.m4)
-m4_include(libevents.m4)
+m4_include(libtevent.m4)
 m4_include(ib/config.m4)
 m4_include(lib/util/signal.m4)
 m4_include(lib/util/fault.m4)
diff --git a/ib/ibw_ctdb.c b/ib/ibw_ctdb.c
index 78d960a..5664c19 100644
--- a/ib/ibw_ctdb.c
+++ b/ib/ibw_ctdb.c
@@ -21,7 +21,7 @@
  */
 
 #include "includes.h"
-#include "lib/events/events.h"
+#include "lib/tevent/tevent.h"
 #include <system/network.h>
 #include <assert.h>
 #include "ctdb_private.h"
diff --git a/ib/ibw_ctdb_init.c b/ib/ibw_ctdb_init.c
index 170ce30..fed1381 100644
--- a/ib/ibw_ctdb_init.c
+++ b/ib/ibw_ctdb_init.c
@@ -21,7 +21,7 @@
  */
 
 #include "includes.h"
-#include "lib/events/events.h"
+#include "lib/tevent/tevent.h"
 #include <system/network.h>
 #include <assert.h>
 #include "ctdb_private.h"
diff --git a/ib/ibwrapper_test.c b/ib/ibwrapper_test.c
index b9c80ae..eb0d588 100644
--- a/ib/ibwrapper_test.c
+++ b/ib/ibwrapper_test.c
@@ -37,7 +37,7 @@
 #include <time.h>
 
 #include "includes.h"
-#include "lib/events/events.h"
+#include "lib/tevent/tevent.h"
 #include "ib/ibwrapper.h"
 
 struct ibwtest_ctx {
@@ -546,7 +546,7 @@ int main(int argc, char *argv[])
 {
 	int	rc, op;
 	int	result = 1;
-	struct event_context *ev = NULL;
+	struct tevent_context *ev = NULL;
 	struct ibwtest_ctx *tcx = NULL;
 	float	usec;
 
diff --git a/include/ctdb.h b/include/ctdb.h
index 13e6448..95376ce 100644
--- a/include/ctdb.h
+++ b/include/ctdb.h
@@ -72,7 +72,7 @@ typedef void (*ctdb_log_fn_t)(void *log_priv,
  * @log: the logging function
  * @log_priv: the private argument to the logging function.
  *
- * Returns a ctdb context if successful or NULL.  Use ctdb_free() to
+ * Returns a ctdb context if successful or NULL.  Use ctdb_disconnect() to
  * release the returned ctdb_connection when finished.
  *
  * See Also:
@@ -100,6 +100,14 @@ void ctdb_log_file(FILE *, int, const char *, va_list);
  */
 extern int ctdb_log_level;
 
+/**
+ * ctdb_disconnect - close down a connection to ctdbd.
+ * @ctdb: the ctdb connectio returned from ctdb_connect.
+ *
+ * The @ctdb arg will be freed by this call, and must not be used again.
+ */
+void ctdb_disconnect(struct ctdb_connection *ctdb);
+
 /***
  *
  *  Asynchronous API
@@ -185,7 +193,7 @@ typedef void (*ctdb_callback_t)(struct ctdb_connection *ctdb,
  * This represents a particular open database: you receive it from
  * ctdb_attachdb or ctdb_attachdb_recv to manipulate a database.
  *
- * You have to free the handle with ctdb_detach_db() when finished with it.
+ * You have to free the handle with ctdb_detachdb() when finished with it.
  */
 struct ctdb_db;
 
@@ -299,8 +307,9 @@ typedef void (*ctdb_message_fn_t)(struct ctdb_connection *,
  * @ctdb: the ctdb_connection from ctdb_connect.
  * @srvid: the 64 bit identifier for our messages.
  * @handler: the callback when we receive such a message (typesafe)
+ * @handler_data: the argument to handler()
  * @callback: the callback when ctdb replies to our message (typesafe)
- * @cbdata: the argument to callback() and handler()
+ * @cbdata: the argument to callback()
  *
  * Note: our callback will always be called before handler.
  *
@@ -310,6 +319,7 @@ typedef void (*ctdb_message_fn_t)(struct ctdb_connection *,
 struct ctdb_request *
 ctdb_set_message_handler_send(struct ctdb_connection *ctdb, uint64_t srvid,
 			      ctdb_message_fn_t handler,
+			      void *handler_data,
 			      ctdb_callback_t callback,
 			      void *cbdata);
 
@@ -328,6 +338,8 @@ bool ctdb_set_message_handler_recv(struct ctdb_connection *ctdb,
  * ctdb_remove_message_handler_send - unregister for messages to a srvid
  * @ctdb: the ctdb_connection from ctdb_connect.
  * @srvid: the 64 bit identifier for our messages.
+ * @handler: the callback when we receive such a message (typesafe)
+ * @handler_data: the argument to handler()
  * @callback: the callback when ctdb replies to our message (typesafe)
  * @cbdata: the argument to callback()
  *
@@ -336,6 +348,7 @@ bool ctdb_set_message_handler_recv(struct ctdb_connection *ctdb,
  */
 struct ctdb_request *
 ctdb_remove_message_handler_send(struct ctdb_connection *ctdb, uint64_t srvid,
+				 ctdb_message_fn_t handler, void *handler_data,
 				 ctdb_callback_t callback, void *cbdata);
 
 /**
@@ -346,7 +359,8 @@ ctdb_remove_message_handler_send(struct ctdb_connection *ctdb, uint64_t srvid,
  * After this returns true, the registered handler will no longer be called.
  * If this returns false, the de-registration failed.
  */
-bool ctdb_remove_message_handler_recv(struct ctdb_request *handle);
+bool ctdb_remove_message_handler_recv(struct ctdb_connection *ctdb,
+				      struct ctdb_request *req);
 
 
 /**
@@ -457,7 +471,17 @@ struct ctdb_db *ctdb_attachdb(struct ctdb_connection *ctdb,
 			      uint32_t tdb_flags);
 
 /**
+ * ctdb_detachdb - close a clustered TDB.
+ * @ctdb: the ctdb_connection from ctdb_connect.
+ * @db: the database from ctdb_attachdb/ctdb_attachdb_send
+ *
+ * Closes a clustered tdb.
+ */
+void ctdb_detachdb(struct ctdb_connection *ctdb, struct ctdb_db *db);
+
+/**
  * ctdb_readrecordlock - read and lock a record (synchronous)
+ * @ctdb: the ctdb_connection from ctdb_connect.
  * @ctdb_db: the database handle from ctdb_attachdb/ctdb_attachdb_recv.
  * @key: the key of the record to lock.
  * @req: a pointer to the request, if one is needed.
@@ -465,7 +489,8 @@ struct ctdb_db *ctdb_attachdb(struct ctdb_connection *ctdb,
  * Do a ctdb_readrecordlock_send and wait for it to complete.
  * Returns NULL on failure.
  */
-struct ctdb_lock *ctdb_readrecordlock(struct ctdb_db *ctdb_db, TDB_DATA key,
+struct ctdb_lock *ctdb_readrecordlock(struct ctdb_connection *ctdb,
+				      struct ctdb_db *ctdb_db, TDB_DATA key,
 				      TDB_DATA *data);
 
 
@@ -482,18 +507,21 @@ struct ctdb_lock *ctdb_readrecordlock(struct ctdb_db *ctdb_db, TDB_DATA key,
  * failed.
  */
 bool ctdb_set_message_handler(struct ctdb_connection *ctdb, uint64_t srvid,
-			     ctdb_message_fn_t handler, void *cbdata);
+			      ctdb_message_fn_t handler, void *cbdata);
 
 
 /**
  * ctdb_remove_message_handler - deregister for messages (synchronous)
  * @ctdb: the ctdb_connection from ctdb_connect.
  * @srvid: the 64 bit identifier for our messages.
+ * @handler: the callback when we receive such a message (typesafe)
+ * @handler_data: the argument to handler()
  *
  * If this returns true, the message handler will no longer be called.
  * If this returns false, the deregistration failed.
  */
-bool ctdb_remove_message_handler(struct ctdb_connection *ctdb, uint64_t srvid);
+bool ctdb_remove_message_handler(struct ctdb_connection *ctdb, uint64_t srvid,
+				 ctdb_message_fn_t handler, void *handler_data);
 
 /**
  * ctdb_getpnn - read the pnn number of a node (synchronous)
@@ -533,12 +561,23 @@ bool ctdb_getrecmaster(struct ctdb_connection *ctdb,
 	 typesafe_cb_preargs(void, (cb), (cbdata),			\
 			     struct ctdb_connection *, struct ctdb_request *)
 
+#define ctdb_msgcb(cb, cbdata)						\
+	typesafe_cb_preargs(void, (cb), (cbdata),			\
+			    struct ctdb_connection *, uint64_t, TDB_DATA)
+
 #define ctdb_connect(addr, log, logpriv)				\
 	ctdb_connect((addr),						\
 		     typesafe_cb_postargs(void, (log), (logpriv),	\
 					  int, const char *, va_list),	\
 		     (logpriv))
 
+#define ctdb_set_message_handler(ctdb, srvid, handler, hdata)		\
+	ctdb_set_message_handler((ctdb), (srvid),			\
+				 ctdb_msgcb((handler), (hdata)), (hdata))
+
+#define ctdb_remove_message_handler(ctdb, srvid, handler, hdata)	\
+	ctdb_remove_message_handler((ctdb), (srvid),			\
+				    ctdb_msgcb((handler), (hdata)), (hdata))
 
 #define ctdb_attachdb_send(ctdb, name, persistent, tdb_flags, cb, cbdata) \
 	ctdb_attachdb_send((ctdb), (name), (persistent), (tdb_flags),	\
@@ -550,12 +589,14 @@ bool ctdb_getrecmaster(struct ctdb_connection *ctdb,
 				    struct ctdb_db *, struct ctdb_lock *, \
 				    TDB_DATA), (cbdata))
 
-#define ctdb_set_message_handler_send(ctdb, srvid, handler, cb, cbdata)	\
-	ctdb_set_message_handler_send((ctdb), (srvid), (handler),	\
-	      ctdb_sendcb((cb), (cbdata)), (cbdata))
+#define ctdb_set_message_handler_send(ctdb, srvid, handler, hdata, cb, cbdata) \
+	ctdb_set_message_handler_send((ctdb), (srvid),			\
+				      ctdb_msgcb((handler), (hdata)), (hdata), \
+				      ctdb_sendcb((cb), (cbdata)), (cbdata))
 
-#define ctdb_remove_message_handler_send(ctdb, srvid, cb, cbdata)	\
+#define ctdb_remove_message_handler_send(ctdb, srvid, handler, hdata, cb, cbdata) \
 	ctdb_remove_message_handler_send((ctdb), (srvid),		\
+	      ctdb_msgcb((handler), (hdata)), (hdata),			\
 	      ctdb_sendcb((cb), (cbdata)), (cbdata))
 
 #define ctdb_getpnn_send(ctdb, destnode, cb, cbdata)			\
diff --git a/include/ctdb_client.h b/include/ctdb_client.h
index e9aa8d1..3029d0f 100644
--- a/include/ctdb_client.h
+++ b/include/ctdb_client.h
@@ -52,12 +52,12 @@ struct ctdb_client_notify_deregister {
 	uint64_t srvid;
 };
 
-struct event_context;
+struct tevent_context;
 
 /*
   initialise ctdb subsystem
 */
-struct ctdb_context *ctdb_init(struct event_context *ev);
+struct ctdb_context *ctdb_init(struct tevent_context *ev);
 
 /*
   choose the transport
@@ -193,7 +193,7 @@ int ctdb_register_message_handler(struct ctdb_context *ctdb,
 struct ctdb_db_context *find_ctdb_db(struct ctdb_context *ctdb, uint32_t id);
 
 
-struct ctdb_context *ctdb_cmdline_client(struct event_context *ev);
+struct ctdb_context *ctdb_cmdline_client(struct tevent_context *ev);
 
 struct ctdb_statistics;
 int ctdb_ctrl_statistics(struct ctdb_context *ctdb, uint32_t destnode, struct ctdb_statistics *status);
diff --git a/include/ctdb_private.h b/include/ctdb_private.h
index ca3d613..af271f4 100644
--- a/include/ctdb_private.h
+++ b/include/ctdb_private.h
@@ -382,7 +382,7 @@ enum ctdb_freeze_mode {CTDB_FREEZE_NONE, CTDB_FREEZE_PENDING, CTDB_FREEZE_FROZEN
 #define NUM_DB_PRIORITIES 3
 /* main state of the ctdb daemon */
 struct ctdb_context {
-	struct event_context *ev;
+	struct tevent_context *ev;
 	struct timeval ctdbd_start_time;
 	struct timeval last_recovery_started;
 	struct timeval last_recovery_finished;
diff --git a/lib/events/config.m4 b/lib/events/config.m4
deleted file mode 100644
index 180b58c..0000000
--- a/lib/events/config.m4
+++ /dev/null
@@ -1,18 +0,0 @@
-# check for EPOLL and native Linux AIO interface
-SMB_ENABLE(EVENTS_EPOLL, NO)
-SMB_ENABLE(EVENTS_AIO, NO)
-AC_CHECK_HEADERS(sys/epoll.h)
-AC_CHECK_FUNCS(epoll_create)
-if test x"$ac_cv_header_sys_epoll_h" = x"yes" -a x"$ac_cv_func_epoll_create" = x"yes";then
-	SMB_ENABLE(EVENTS_EPOLL,YES)
-	AC_DEFINE(HAVE_EVENTS_EPOLL, 1, [Whether epoll is available])
-
-	# check for native Linux AIO interface
-	AC_CHECK_HEADERS(libaio.h)
-	AC_CHECK_LIB_EXT(aio, AIO_LIBS, io_getevents)
-	if test x"$ac_cv_header_libaio_h" = x"yes" -a x"$ac_cv_lib_ext_aio_io_getevents" = x"yes";then
-		SMB_ENABLE(EVENTS_AIO,YES)
-		AC_DEFINE(HAVE_LINUX_AIO, 1, [Whether Linux AIO is available])
-	fi
-fi
-SMB_EXT_LIB(LIBAIO_LINUX, $AIO_LIBS)
diff --git a/lib/events/config.mk b/lib/events/config.mk
deleted file mode 100644
index 2e0a8a6..0000000
--- a/lib/events/config.mk
+++ /dev/null
@@ -1,38 +0,0 @@
-##############################
-[MODULE::EVENTS_AIO]
-OBJ_FILES = events_aio.o
-PRIVATE_DEPENDENCIES = LIBAIO_LINUX
-SUBSYSTEM = LIBEVENTS
-INIT_FUNCTION = s4_events_aio_init
-##############################
-
-##############################
-[MODULE::EVENTS_EPOLL]
-OBJ_FILES = events_epoll.o
-SUBSYSTEM = LIBEVENTS
-INIT_FUNCTION = s4_events_epoll_init
-##############################
-
-##############################
-[MODULE::EVENTS_SELECT]
-OBJ_FILES = events_select.o
-SUBSYSTEM = LIBEVENTS
-INIT_FUNCTION = s4_events_select_init
-##############################
-
-##############################
-[MODULE::EVENTS_STANDARD]
-OBJ_FILES = events_standard.o
-SUBSYSTEM = LIBEVENTS
-INIT_FUNCTION = s4_events_standard_init
-##############################
-


-- 
CTDB repository


More information about the samba-cvs mailing list