[SCM] Samba Shared Repository - branch v4-0-test updated - release-4-0-0alpha4-73-g3b8eec7

Simo Sorce idra at samba.org
Sat Jun 14 16:00:20 GMT 2008


The branch, v4-0-test has been updated
       via  3b8eec7ca334528cad3cdcd5e3fc5ee555d8d0e0 (commit)
       via  7109b6a5a19eb2dbef4259104858b171298bad6e (commit)
      from  f54084b65fce67457cb838544c83ceb17c7d88db (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v4-0-test


- Log -----------------------------------------------------------------
commit 3b8eec7ca334528cad3cdcd5e3fc5ee555d8d0e0
Author: Simo Sorce <idra at samba.org>
Date:   Sat Jun 14 11:24:17 2008 -0400

    Make up the right dependencies now that ldb depends on libevents

commit 7109b6a5a19eb2dbef4259104858b171298bad6e
Author: Simo Sorce <idra at samba.org>
Date:   Sat Jun 14 11:23:31 2008 -0400

    This patch make it possible to build the events library completely
    standalone with no ties to internal samba4 functions
    Samba4 itself just uses the plain library, compatibility glue is
    in events_s4.c only

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

Summary of changes:
 source/auth/credentials/credentials_files.c |    3 +-
 source/auth/gensec/schannel_state.c         |    1 +
 source/configure.ac                         |    2 +-
 source/dsdb/common/util.c                   |    1 +
 source/dsdb/samdb/cracknames.c              |    3 +-
 source/dsdb/samdb/ldb_modules/config.mk     |   60 ++++++++--------
 source/dsdb/samdb/samdb.c                   |    3 +-
 source/lib/events/config.m4                 |   18 -----
 source/lib/events/config.mk                 |   24 +++----
 source/lib/events/configure.ac              |    1 +
 source/lib/events/events.c                  |   42 ++++-------
 source/lib/events/events.h                  |    5 ++
 source/lib/events/events.mk                 |   74 ++++++++++----------
 source/lib/events/events.py                 |    2 +-
 source/lib/events/events_aio.c              |   17 +----
 source/lib/events/events_debug.c            |   78 ++++++++++++++++++++
 source/lib/events/events_epoll.c            |   30 ++------
 source/lib/events/events_internal.h         |   34 +++++++++-
 source/lib/events/events_liboop.c           |    5 +-
 source/lib/events/events_s4.c               |   57 +++++++++++++++
 source/lib/events/events_select.c           |   22 +-----
 source/lib/events/events_signal.c           |   10 +--
 source/lib/events/events_standard.c         |   27 ++-----
 source/lib/events/events_timed.c            |  101 +++++++++++++++++++++++----
 source/lib/events/events_util.c             |  102 ++++++++-------------------
 source/lib/events/events_util.h             |   10 +--
 source/lib/events/libevents.m4              |   24 ++++++-
 source/lib/events/rules.mk                  |   21 ++++++
 source/lib/ldb/autogen.sh                   |    1 +
 source/lib/ldb/common/ldb.c                 |   34 +++++++--
 source/lib/ldb/config.mk                    |   20 +++---
 source/lib/ldb/configure.ac                 |    1 +
 source/lib/ldb/examples/ldbreader.c         |    2 +-
 source/lib/ldb/examples/ldifreader.c        |    2 +-
 source/lib/ldb/external/libevents.m4        |    4 +
 source/lib/ldb/include/ldb.h                |    4 +-
 source/lib/ldb/include/ldb_includes.h       |    1 +
 source/lib/ldb/include/ldb_private.h        |    2 +
 source/lib/ldb/ldb.pc.in                    |    2 +-
 source/lib/ldb/ldb_wrap.c                   |    3 +-
 source/lib/ldb/nssldb/ldb-nss.c             |    2 +-
 source/lib/ldb/python.mk                    |    2 +-
 source/lib/ldb/standalone.sh                |    3 +
 source/lib/ldb/tools/ad2oLschema.c          |    2 +-
 source/lib/ldb/tools/ldbadd.c               |    2 +-
 source/lib/ldb/tools/ldbdel.c               |    2 +-
 source/lib/ldb/tools/ldbedit.c              |    2 +-
 source/lib/ldb/tools/ldbmodify.c            |    2 +-
 source/lib/ldb/tools/ldbrename.c            |    2 +-
 source/lib/ldb/tools/ldbsearch.c            |    5 +-
 source/lib/ldb/tools/ldbtest.c              |    4 +-
 source/lib/ldb/tools/oLschema2ldif.c        |    2 +-
 source/lib/ldb_wrap.c                       |   23 ++++--
 source/lib/util/util_ldb.c                  |    1 +
 source/libcli/ldap/ldap_ndr.c               |    1 +
 source/libcli/util/nterr.c                  |    1 +
 source/libnet/libnet_join.c                 |    2 +-
 source/param/secrets.c                      |    9 ++-
 source/param/secrets.h                      |    5 +-
 source/rpc_server/lsa/dcesrv_lsa.c          |    4 +-
 source/torture/ldap/cldap.c                 |    2 +-
 source/torture/libnet/libnet_BecomeDC.c     |    4 +-
 source/torture/nbt/dgram.c                  |    4 +-
 source/torture/rpc/drsuapi.c                |    8 +-
 source/torture/rpc/drsuapi_cracknames.c     |    2 +-
 source/torture/rpc/join.c                   |    4 +-
 source/torture/rpc/lsa.c                    |    2 +-
 source/torture/rpc/rpc.c                    |    2 +-
 source/torture/rpc/rpc.h                    |    2 +-
 source/torture/rpc/samlogon.c               |    8 +-
 source/torture/rpc/samr_accessmask.c        |    2 +-
 source/torture/rpc/samsync.c                |    6 +-
 source/torture/rpc/schannel.c               |    8 +-
 source/torture/rpc/testjoin.c               |   18 +++--
 source/winbind/wb_server.c                  |    1 +
 75 files changed, 603 insertions(+), 399 deletions(-)
 delete mode 100644 source/lib/events/config.m4
 create mode 100644 source/lib/events/events_debug.c
 create mode 100644 source/lib/events/events_s4.c
 create mode 100644 source/lib/events/rules.mk
 create mode 100644 source/lib/ldb/external/libevents.m4


Changeset truncated at 500 lines:

diff --git a/source/auth/credentials/credentials_files.c b/source/auth/credentials/credentials_files.c
index ab76ea2..05b0bf5 100644
--- a/source/auth/credentials/credentials_files.c
+++ b/source/auth/credentials/credentials_files.c
@@ -22,6 +22,7 @@
 */
 
 #include "includes.h"
+#include "lib/events/events.h"
 #include "lib/ldb/include/ldb.h"
 #include "librpc/gen_ndr/samr.h" /* for struct samrPassword */
 #include "param/secrets.h"
@@ -215,7 +216,7 @@ _PUBLIC_ NTSTATUS cli_credentials_set_secrets(struct cli_credentials *cred,
 
 	if (!ldb) {
 		/* Local secrets are stored in secrets.ldb */
-		ldb = secrets_db_connect(mem_ctx, lp_ctx);
+		ldb = secrets_db_connect(mem_ctx, event_ctx, lp_ctx);
 		if (!ldb) {
 			/* set anonymous as the fallback, if the machine account won't work */
 			cli_credentials_set_anonymous(cred);
diff --git a/source/auth/gensec/schannel_state.c b/source/auth/gensec/schannel_state.c
index 0f7c4ca..f0710c5 100644
--- a/source/auth/gensec/schannel_state.c
+++ b/source/auth/gensec/schannel_state.c
@@ -20,6 +20,7 @@
 */
 
 #include "includes.h"
+#include "lib/events/events.h"
 #include "lib/ldb/include/ldb.h"
 #include "lib/ldb/include/ldb_errors.h"
 #include "dsdb/samdb/samdb.h"
diff --git a/source/configure.ac b/source/configure.ac
index ca38f6a..8ec6022 100644
--- a/source/configure.ac
+++ b/source/configure.ac
@@ -89,7 +89,7 @@ SMB_EXT_LIB_FROM_PKGCONFIG(LIBLDB, ldb >= 0.9.1,
 SMB_INCLUDE_MK(lib/ldb/python.mk) 
 
 m4_include(lib/tls/config.m4)
-m4_include(lib/events/config.m4)
+m4_include(lib/events/libevents.m4)
 
 dnl m4_include(auth/kerberos/config.m4)
 m4_include(scripting/python/config.m4)
diff --git a/source/dsdb/common/util.c b/source/dsdb/common/util.c
index 5164f7d..b981123 100644
--- a/source/dsdb/common/util.c
+++ b/source/dsdb/common/util.c
@@ -22,6 +22,7 @@
 */
 
 #include "includes.h"
+#include "events.h"
 #include "ldb.h"
 #include "ldb_errors.h"
 #include "lib/util/util_ldb.h"
diff --git a/source/dsdb/samdb/cracknames.c b/source/dsdb/samdb/cracknames.c
index da10cbb..369b06c 100644
--- a/source/dsdb/samdb/cracknames.c
+++ b/source/dsdb/samdb/cracknames.c
@@ -24,6 +24,7 @@
 #include "includes.h"
 #include "librpc/gen_ndr/drsuapi.h"
 #include "rpc_server/common/common.h"
+#include "lib/events/events.h"
 #include "lib/ldb/include/ldb.h"
 #include "lib/ldb/include/ldb_errors.h"
 #include "system/kerberos.h"
@@ -358,7 +359,7 @@ WERROR DsCrackNameOneName(struct ldb_context *sam_ctx, TALLOC_CTX *mem_ctx,
 
 	struct smb_krb5_context *smb_krb5_context;
 	ret = smb_krb5_init_context(mem_ctx, 
-				    (struct event_context *)ldb_get_opaque(sam_ctx, "EventContext"), 
+				    ldb_get_event_context(sam_ctx),
 				    (struct loadparm_context *)ldb_get_opaque(sam_ctx, "loadparm"), 
 				    &smb_krb5_context);
 				
diff --git a/source/dsdb/samdb/ldb_modules/config.mk b/source/dsdb/samdb/ldb_modules/config.mk
index 388b67c..d8dc051 100644
--- a/source/dsdb/samdb/ldb_modules/config.mk
+++ b/source/dsdb/samdb/ldb_modules/config.mk
@@ -3,7 +3,7 @@
 [MODULE::ldb_objectguid]
 SUBSYSTEM = LIBLDB
 OUTPUT_TYPE = SHARED_LIBRARY
-PRIVATE_DEPENDENCIES = LIBTALLOC LIBNDR NDR_MISC
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS LIBNDR NDR_MISC
 INIT_FUNCTION = LDB_MODULE(objectguid)
 # End MODULE ldb_objectguid
 ################################################
@@ -15,8 +15,9 @@ ldb_objectguid_OBJ_FILES = $(dsdbsrcdir)/samdb/ldb_modules/objectguid.o
 [MODULE::ldb_repl_meta_data]
 SUBSYSTEM = LIBLDB
 OUTPUT_TYPE = SHARED_LIBRARY
-PRIVATE_DEPENDENCIES = SAMDB LIBTALLOC LIBNDR NDR_MISC NDR_DRSUAPI \
-					   NDR_DRSBLOBS LIBNDR
+PRIVATE_DEPENDENCIES = SAMDB LIBTALLOC LIBEVENTS \
+			LIBNDR NDR_MISC NDR_DRSUAPI \
+			NDR_DRSBLOBS LIBNDR
 INIT_FUNCTION = LDB_MODULE(repl_meta_data)
 # End MODULE ldb_repl_meta_data
 ################################################
@@ -29,7 +30,7 @@ ldb_repl_meta_data_OBJ_FILES = \
 [MODULE::ldb_dsdb_cache]
 SUBSYSTEM = LIBLDB
 OUTPUT_TYPE = SHARED_LIBRARY
-PRIVATE_DEPENDENCIES = SAMDB LIBTALLOC
+PRIVATE_DEPENDENCIES = SAMDB LIBTALLOC LIBEVENTS
 INIT_FUNCTION = LDB_MODULE(dsdb_cache)
 # End MODULE ldb_dsdb_cache
 ################################################
@@ -42,7 +43,7 @@ ldb_dsdb_cache_OBJ_FILES = \
 [MODULE::ldb_schema_fsmo]
 SUBSYSTEM = LIBLDB
 OUTPUT_TYPE = SHARED_LIBRARY
-PRIVATE_DEPENDENCIES = SAMDB LIBTALLOC
+PRIVATE_DEPENDENCIES = SAMDB LIBTALLOC LIBEVENTS
 INIT_FUNCTION = LDB_MODULE(schema_fsmo)
 # End MODULE ldb_schema_fsmo
 ################################################
@@ -55,7 +56,7 @@ ldb_schema_fsmo_OBJ_FILES = \
 [MODULE::ldb_naming_fsmo]
 SUBSYSTEM = LIBLDB
 OUTPUT_TYPE = SHARED_LIBRARY
-PRIVATE_DEPENDENCIES = SAMDB LIBTALLOC
+PRIVATE_DEPENDENCIES = SAMDB LIBTALLOC LIBEVENTS
 INIT_FUNCTION = LDB_MODULE(naming_fsmo)
 # End MODULE ldb_naming_fsmo
 ################################################
@@ -68,7 +69,7 @@ ldb_naming_fsmo_OBJ_FILES = \
 [MODULE::ldb_pdc_fsmo]
 SUBSYSTEM = LIBLDB
 OUTPUT_TYPE = SHARED_LIBRARY
-PRIVATE_DEPENDENCIES = SAMDB LIBTALLOC
+PRIVATE_DEPENDENCIES = SAMDB LIBTALLOC LIBEVENTS
 INIT_FUNCTION = LDB_MODULE(pdc_fsmo)
 # End MODULE ldb_pdc_fsmo
 ################################################
@@ -81,7 +82,7 @@ ldb_pdc_fsmo_OBJ_FILES = \
 [MODULE::ldb_samldb]
 SUBSYSTEM = LIBLDB
 OUTPUT_TYPE = SHARED_LIBRARY
-PRIVATE_DEPENDENCIES = LIBTALLOC LDAP_ENCODE NDR_MISC SAMDB
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS LDAP_ENCODE NDR_MISC SAMDB
 INIT_FUNCTION = LDB_MODULE(samldb)
 #
 # End MODULE ldb_samldb
@@ -96,8 +97,8 @@ ldb_samldb_OBJ_FILES = \
 SUBSYSTEM = LIBLDB
 OUTPUT_TYPE = SHARED_LIBRARY
 INIT_FUNCTION = LDB_MODULE(samba3sam)
-PRIVATE_DEPENDENCIES = LIBTALLOC SMBPASSWD NSS_WRAPPER LIBSECURITY \
-					   NDR_SECURITY
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS SMBPASSWD \
+			NSS_WRAPPER LIBSECURITY NDR_SECURITY
 # End MODULE ldb_samldb
 ################################################
 
@@ -110,7 +111,7 @@ ldb_samba3sam_OBJ_FILES = \
 SUBSYSTEM = LIBLDB
 OUTPUT_TYPE = SHARED_LIBRARY
 INIT_FUNCTION = LDB_MODULE(simple_ldap_map)
-PRIVATE_DEPENDENCIES = LIBTALLOC LIBNDR NDR_MISC
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS LIBNDR NDR_MISC
 ENABLE = YES
 ALIASES = entryuuid nsuniqueid
 # End MODULE ldb_entryuuid
@@ -135,7 +136,7 @@ ldb_simple_ldap_map_OBJ_FILES = \
 # Start MODULE ldb_rootdse
 [MODULE::ldb_rootdse]
 SUBSYSTEM = LIBLDB
-PRIVATE_DEPENDENCIES = LIBTALLOC SAMDB
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS SAMDB
 OUTPUT_TYPE = SHARED_LIBRARY
 INIT_FUNCTION = LDB_MODULE(rootdse)
 # End MODULE ldb_rootdse
@@ -149,8 +150,9 @@ ldb_rootdse_OBJ_FILES = $(dsdbsrcdir)/samdb/ldb_modules/rootdse.o
 SUBSYSTEM = LIBLDB
 OUTPUT_TYPE = SHARED_LIBRARY
 INIT_FUNCTION = LDB_MODULE(password_hash)
-PRIVATE_DEPENDENCIES = HEIMDAL_HDB_KEYS LIBTALLOC HEIMDAL_KRB5 LDAP_ENCODE \
-					   LIBCLI_AUTH NDR_DRSBLOBS KERBEROS SAMDB
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS SAMDB LDAP_ENCODE \
+			LIBCLI_AUTH NDR_DRSBLOBS KERBEROS \
+			HEIMDAL_HDB_KEYS HEIMDAL_KRB5
 # End MODULE ldb_password_hash
 ################################################
 
@@ -159,7 +161,7 @@ ldb_password_hash_OBJ_FILES = $(dsdbsrcdir)/samdb/ldb_modules/password_hash.o
 ################################################
 # Start MODULE ldb_local_password
 [MODULE::ldb_local_password]
-PRIVATE_DEPENDENCIES = LIBTALLOC LIBNDR SAMDB
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS LIBNDR SAMDB
 OUTPUT_TYPE = SHARED_LIBRARY
 SUBSYSTEM = LIBLDB
 INIT_FUNCTION = LDB_MODULE(local_password)
@@ -171,7 +173,7 @@ ldb_local_password_OBJ_FILES = $(dsdbsrcdir)/samdb/ldb_modules/local_password.o
 ################################################
 # Start MODULE ldb_kludge_acl
 [MODULE::ldb_kludge_acl]
-PRIVATE_DEPENDENCIES = LIBTALLOC LIBSECURITY SAMDB
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS LIBSECURITY SAMDB
 OUTPUT_TYPE = SHARED_LIBRARY
 SUBSYSTEM = LIBLDB
 INIT_FUNCTION = LDB_MODULE(kludge_acl)
@@ -186,7 +188,7 @@ ldb_kludge_acl_OBJ_FILES = $(dsdbsrcdir)/samdb/ldb_modules/kludge_acl.o
 [MODULE::ldb_extended_dn]
 SUBSYSTEM = LIBLDB
 OUTPUT_TYPE = SHARED_LIBRARY
-PRIVATE_DEPENDENCIES = LIBTALLOC LIBNDR LIBSECURITY SAMDB
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS LIBNDR LIBSECURITY SAMDB
 INIT_FUNCTION = LDB_MODULE(extended_dn)
 # End MODULE ldb_extended_dn
 ################################################
@@ -198,7 +200,7 @@ ldb_extended_dn_OBJ_FILES = $(dsdbsrcdir)/samdb/ldb_modules/extended_dn.o
 [MODULE::ldb_show_deleted]
 SUBSYSTEM = LIBLDB
 OUTPUT_TYPE = SHARED_LIBRARY
-PRIVATE_DEPENDENCIES = LIBTALLOC
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS
 INIT_FUNCTION = LDB_MODULE(show_deleted)
 # End MODULE ldb_show_deleted
 ################################################
@@ -210,7 +212,7 @@ ldb_show_deleted_OBJ_FILES = $(dsdbsrcdir)/samdb/ldb_modules/show_deleted.o
 [MODULE::ldb_partition]
 SUBSYSTEM = LIBLDB
 OUTPUT_TYPE = SHARED_LIBRARY
-PRIVATE_DEPENDENCIES = LIBTALLOC SAMDB
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS SAMDB
 INIT_FUNCTION = LDB_MODULE(partition)
 # End MODULE ldb_partition
 ################################################
@@ -222,7 +224,7 @@ ldb_partition_OBJ_FILES = $(dsdbsrcdir)/samdb/ldb_modules/partition.o
 [MODULE::ldb_schema]
 SUBSYSTEM = LIBLDB
 OUTPUT_TYPE = SHARED_LIBRARY
-PRIVATE_DEPENDENCIES = LIBTALLOC LIBLDB
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS LIBLDB
 INIT_FUNCTION = LDB_MODULE(schema)
 # End MODULE ldb_schema
 ################################################
@@ -234,7 +236,7 @@ ldb_schema_OBJ_FILES = $(addprefix $(dsdbsrcdir)/samdb/ldb_modules/, schema.o sc
 [MODULE::ldb_update_keytab]
 SUBSYSTEM = LIBLDB
 OUTPUT_TYPE = SHARED_LIBRARY
-PRIVATE_DEPENDENCIES = LIBTALLOC CREDENTIALS
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS CREDENTIALS
 #Also depends on credentials, but that would loop
 INIT_FUNCTION = LDB_MODULE(update_kt)
 # End MODULE ldb_update_kt
@@ -248,7 +250,7 @@ ldb_update_keytab_OBJ_FILES = $(dsdbsrcdir)/samdb/ldb_modules/update_keytab.o
 INIT_FUNCTION = LDB_MODULE(objectclass)
 OUTPUT_TYPE = SHARED_LIBRARY
 CFLAGS = -Ilib/ldb/include
-PRIVATE_DEPENDENCIES = LIBTALLOC LIBSECURITY NDR_SECURITY SAMDB
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS LIBSECURITY NDR_SECURITY SAMDB
 SUBSYSTEM = LIBLDB
 # End MODULE ldb_objectclass
 ################################################
@@ -260,7 +262,7 @@ ldb_objectclass_OBJ_FILES = $(dsdbsrcdir)/samdb/ldb_modules/objectclass.o
 [MODULE::ldb_subtree_rename]
 INIT_FUNCTION = LDB_MODULE(subtree_rename)
 CFLAGS = -Ilib/ldb/include
-PRIVATE_DEPENDENCIES = LIBTALLOC
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS
 SUBSYSTEM = LIBLDB
 # End MODULE ldb_subtree_rename
 ################################################
@@ -272,7 +274,7 @@ ldb_subtree_rename_OBJ_FILES = $(dsdbsrcdir)/samdb/ldb_modules/subtree_rename.o
 [MODULE::ldb_subtree_delete]
 INIT_FUNCTION = LDB_MODULE(subtree_delete)
 CFLAGS = -Ilib/ldb/include
-PRIVATE_DEPENDENCIES = LIBTALLOC
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS
 SUBSYSTEM = LIBLDB
 # End MODULE ldb_subtree_rename
 ################################################
@@ -285,7 +287,7 @@ ldb_subtree_delete_OBJ_FILES = $(dsdbsrcdir)/samdb/ldb_modules/subtree_delete.o
 INIT_FUNCTION = LDB_MODULE(linked_attributes)
 CFLAGS = -Ilib/ldb/include
 OUTPUT_TYPE = SHARED_LIBRARY
-PRIVATE_DEPENDENCIES = LIBTALLOC SAMDB
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS SAMDB
 SUBSYSTEM = LIBLDB
 # End MODULE ldb_linked_attributes
 ################################################
@@ -297,7 +299,7 @@ ldb_linked_attributes_OBJ_FILES = $(dsdbsrcdir)/samdb/ldb_modules/linked_attribu
 [MODULE::ldb_ranged_results]
 INIT_FUNCTION = LDB_MODULE(ranged_results)
 CFLAGS = -Ilib/ldb/include
-PRIVATE_DEPENDENCIES = LIBTALLOC
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS
 SUBSYSTEM = LIBLDB
 # End MODULE ldb_ranged_results
 ################################################
@@ -310,7 +312,7 @@ ldb_ranged_results_OBJ_FILES = $(dsdbsrcdir)/samdb/ldb_modules/ranged_results.o
 INIT_FUNCTION = LDB_MODULE(anr)
 CFLAGS = -Ilib/ldb/include
 OUTPUT_TYPE = SHARED_LIBRARY
-PRIVATE_DEPENDENCIES = LIBTALLOC LIBSAMBA-UTIL SAMDB
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS LIBSAMBA-UTIL SAMDB
 SUBSYSTEM = LIBLDB
 # End MODULE ldb_anr
 ################################################
@@ -323,7 +325,7 @@ ldb_anr_OBJ_FILES = $(dsdbsrcdir)/samdb/ldb_modules/anr.o
 INIT_FUNCTION = LDB_MODULE(normalise)
 CFLAGS = -Ilib/ldb/include
 OUTPUT_TYPE = SHARED_LIBRARY
-PRIVATE_DEPENDENCIES = LIBTALLOC LIBSAMBA-UTIL SAMDB
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS LIBSAMBA-UTIL SAMDB
 SUBSYSTEM = LIBLDB
 # End MODULE ldb_normalise
 ################################################
@@ -336,7 +338,7 @@ ldb_normalise_OBJ_FILES = $(dsdbsrcdir)/samdb/ldb_modules/normalise.o
 INIT_FUNCTION = LDB_MODULE(instancetype)
 CFLAGS = -Ilib/ldb/include
 OUTPUT_TYPE = SHARED_LIBRARY
-PRIVATE_DEPENDENCIES = LIBTALLOC LIBSAMBA-UTIL SAMDB
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBEVENTS LIBSAMBA-UTIL SAMDB
 SUBSYSTEM = LIBLDB
 # End MODULE ldb_instancetype
 ################################################
diff --git a/source/dsdb/samdb/samdb.c b/source/dsdb/samdb/samdb.c
index 9154f53..4557b6c 100644
--- a/source/dsdb/samdb/samdb.c
+++ b/source/dsdb/samdb/samdb.c
@@ -25,6 +25,7 @@
 #include "librpc/gen_ndr/ndr_netlogon.h"
 #include "librpc/gen_ndr/ndr_misc.h"
 #include "librpc/gen_ndr/ndr_security.h"
+#include "lib/events/events.h"
 #include "lib/ldb/include/ldb.h"
 #include "lib/ldb/include/ldb_errors.h"
 #include "libcli/security/security.h"
@@ -114,7 +115,7 @@ int samdb_copy_template(struct ldb_context *ldb,
 			return LDB_ERR_OPERATIONS_ERROR;
 		}
 		
-		event_ctx = (struct event_context *)ldb_get_opaque(ldb, "EventContext");
+		event_ctx = ldb_get_event_context(ldb);
 		lp_ctx = (struct loadparm_context *)ldb_get_opaque(ldb, "loadparm");
 
 		/* FIXME: need to remove this wehn we finally pass the event
diff --git a/source/lib/events/config.m4 b/source/lib/events/config.m4
deleted file mode 100644
index 180b58c..0000000
--- a/source/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/source/lib/events/config.mk b/source/lib/events/config.mk
index 9d57980..8ba5af9 100644
--- a/source/lib/events/config.mk
+++ b/source/lib/events/config.mk
@@ -1,13 +1,3 @@
-################################################
-# Start SUBSYSTEM LIBEVENTS
-[LIBRARY::LIBEVENTS]
-PUBLIC_DEPENDENCIES = LIBTALLOC
-OUTPUT_TYPE = STATIC_LIBRARY
-CFLAGS = -Ilib/events
-#
-# End SUBSYSTEM LIBEVENTS
-################################################
-
 ##############################
 [MODULE::EVENTS_AIO]
 PRIVATE_DEPENDENCIES = LIBAIO_LINUX
@@ -41,19 +31,23 @@ INIT_FUNCTION = s4_events_standard_init
 
 EVENTS_STANDARD_OBJ_FILES = $(libeventssrcdir)/events_standard.o
 
-##############################
+################################################
 # Start SUBSYSTEM LIBEVENTS
-[SUBSYSTEM::LIBEVENTS]
+[LIBRARY::LIBEVENTS]
+PUBLIC_DEPENDENCIES = LIBTALLOC
+OUTPUT_TYPE = STATIC_LIBRARY
+CFLAGS = -Ilib/events
+#
 # End SUBSYSTEM LIBEVENTS
-##############################
+################################################
 
-LIBEVENTS_OBJ_FILES = $(addprefix $(libeventssrcdir)/, events.o events_timed.o events_signal.o)
+LIBEVENTS_OBJ_FILES = $(addprefix $(libeventssrcdir)/, events.o events_timed.o events_signal.o events_debug.o events_util.o events_s4.o)
 
 PUBLIC_HEADERS += $(addprefix $(libeventssrcdir)/, events.h events_internal.h)
 
 [PYTHON::swig_events]
 LIBRARY_REALNAME = samba/_events.$(SHLIBEXT)
-PRIVATE_DEPENDENCIES = LIBEVENTS LIBSAMBA-HOSTCONFIG
+PRIVATE_DEPENDENCIES = LIBEVENTS LIBSAMBA-HOSTCONFIG LIBSAMBA-UTIL
 
 swig_events_OBJ_FILES = $(libeventssrcdir)/events_wrap.o
 
diff --git a/source/lib/events/configure.ac b/source/lib/events/configure.ac
index 4eb3575..26efe82 100644
--- a/source/lib/events/configure.ac
+++ b/source/lib/events/configure.ac
@@ -2,6 +2,7 @@ AC_PREREQ(2.50)
 AC_DEFUN([SMB_MODULE_DEFAULT], [echo -n ""])
 AC_DEFUN([SMB_LIBRARY_ENABLE], [echo -n ""])
 AC_DEFUN([SMB_ENABLE], [echo -n ""])
+AC_DEFUN([SMB_EXT_LIB], [echo -n ""])
 AC_INIT(events, 1.0.0)
 AC_CONFIG_SRCDIR([events.c])
 AC_CONFIG_HEADER(config.h)
diff --git a/source/lib/events/events.c b/source/lib/events/events.c
index ccc62b4..1c94e34 100644
--- a/source/lib/events/events.c
+++ b/source/lib/events/events.c
@@ -52,14 +52,7 @@
   forever.
 
 */
-#if _SAMBA_BUILD_
-#include "includes.h"
-#include "lib/util/dlinklist.h"
-#include "param/param.h"
-#else
 #include "replace.h"
-#include "events_util.h"
-#endif
 #include "events.h"
 #include "events_internal.h"
 
@@ -70,8 +63,7 @@ struct event_ops_list {
 };
 
 /* list of registered event backends */
-static struct event_ops_list *event_backends;
-
+static struct event_ops_list *event_backends = NULL;
 static char *event_default_backend = NULL;
 
 /*
@@ -80,11 +72,21 @@ static char *event_default_backend = NULL;
 bool event_register_backend(const char *name, const struct event_ops *ops)
 {
 	struct event_ops_list *e;
+
+	for (e = event_backends; e != NULL; e = e->next) {
+		if (0 == strcmp(e->name, name)) {
+			/* already registered, skip it */
+			return true;
+		}
+	}
+
 	e = talloc(talloc_autofree_context(), struct event_ops_list);
 	if (e == NULL) return false;
+
 	e->name = name;
 	e->ops = ops;
 	DLIST_ADD(event_backends, e);
+
 	return true;
 }
 
@@ -102,25 +104,13 @@ void event_set_default_backend(const char *backend)
 */
 static void event_backend_init(void)
 {
-#if _SAMBA_BUILD_
-	NTSTATUS s4_events_standard_init(void);
-	NTSTATUS s4_events_select_init(void);
-	NTSTATUS s4_events_epoll_init(void);
-	NTSTATUS s4_events_aio_init(void);
-	init_module_fn static_init[] = { STATIC_LIBEVENTS_MODULES };
-	if (event_backends) return;
-	run_init_functions(static_init);
-#else
-	bool events_standard_init(void);
-	bool events_select_init(void);
 	events_select_init();
 	events_standard_init();
 #if HAVE_EVENTS_EPOLL
-	{
-		bool events_epoll_init(void);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list