}
}
- ev = event_context_init(talloc_autofree_context());
+ ev = s4_event_context_init(talloc_autofree_context());
gensec_init(cmdline_lp_ctx);
dump_args();
lp_smbcli_options(cmdline_lp_ctx, &smb_options);
- ev_ctx = event_context_init(talloc_autofree_context());
+ ev_ctx = s4_event_context_init(talloc_autofree_context());
DEBUG( 3, ( "Client started (version %s).\n", SAMBA_VERSION_STRING ) );
goto cleanup;
}
- ev = event_context_init(NULL);
+ ev = s4_event_context_init(NULL);
assert(ev);
tcx->ibwctx = ibw_init(tcx->attrs, tcx->nattrs,
domain_socket_name = talloc_strdup(talloc_autofree_context(), ctdb->daemon.name);
talloc_set_destructor(domain_socket_name, unlink_destructor);
- ctdb->ev = event_context_init(NULL);
+ ctdb->ev = s4_event_context_init(NULL);
/* start frozen, then let the first election sort things out */
if (!ctdb_blocking_freeze(ctdb)) {
/* get a new event context */
talloc_free(ctdb->ev);
- ctdb->ev = event_context_init(ctdb);
+ ctdb->ev = s4_event_context_init(ctdb);
event_add_fd(ctdb->ev, ctdb, fd[0], EVENT_FD_READ|EVENT_FD_AUTOCLOSE,
ctdb_recoverd_parent, &fd[0]);
block_signal(SIGPIPE);
- ev = event_context_init(NULL);
+ ev = s4_event_context_init(NULL);
ctdb = ctdb_cmdline_init(ev);
while (extra_argv[extra_argc]) extra_argc++;
}
- ev = event_context_init(NULL);
+ ev = s4_event_context_init(NULL);
/* initialise ctdb */
ctdb = ctdb_cmdline_client(ev);
while (extra_argv[extra_argc]) extra_argc++;
}
- ev = event_context_init(NULL);
+ ev = s4_event_context_init(NULL);
ctdb = ctdb_cmdline_client(ev);
while (extra_argv[extra_argc]) extra_argc++;
}
- ev = event_context_init(NULL);
+ ev = s4_event_context_init(NULL);
ctdb = ctdb_cmdline_client(ev);
control = extra_argv[0];
- ev = event_context_init(NULL);
+ ev = s4_event_context_init(NULL);
/* initialise ctdb */
ctdb = ctdb_cmdline_client(ev);
/* FIXME: need to remove this wehn we finally pass the event
* context around in ldb */
if (event_ctx == NULL) {
- event_ctx = event_context_init(templates_ldb);
+ event_ctx = s4_event_context_init(templates_ldb);
}
templates_ldb = ldb_wrap_connect(ldb, event_ctx, lp_ctx,
int, void *);
#ifdef _SAMBA_BUILD_
-struct event_context *s4_event_context_init_byname(TALLOC_CTX *mem_ctx, const char *name);
struct event_context *s4_event_context_init(TALLOC_CTX *mem_ctx);
#endif
/*
debug function for ev_set_debug_stderr
*/
-static void ev_debug_stderr(void *context, enum ev_debug_level level,
+void ev_debug_stderr(void *context, enum ev_debug_level level,
const char *fmt, va_list ap) PRINTF_ATTRIBUTE(3,0);
-static void ev_debug_stderr(void *context, enum ev_debug_level level,
+void ev_debug_stderr(void *context, enum ev_debug_level level,
const char *fmt, va_list ap)
{
if (level <= EV_DEBUG_WARNING) {
}
/*
- log a message
+ * log a message
+ *
+ * The default debug action is to ignore debugging messages.
+ * This is the most appropriate action for a library.
+ * Applications using the library must decide where to
+ * redirect debugging messages
*/
void ev_debug(struct event_context *ev, enum ev_debug_level level, const char *fmt, ...)
{
va_list ap;
if (ev->debug_ops.debug == NULL) {
- ev_set_debug_stderr(ev);
+ return;
}
va_start(ap, fmt);
ev->debug_ops.debug(ev->debug_ops.context, level, fmt, ap);
return NT_STATUS_OK;
}
#endif
+
+/*
+ this is used to catch debug messages from events
+*/
+static void ev_wrap_debug(void *context, enum ev_debug_level level,
+ const char *fmt, va_list ap) PRINTF_ATTRIBUTE(3,0);
+
+static void ev_wrap_debug(void *context, enum ev_debug_level level,
+ const char *fmt, va_list ap)
+{
+ int samba_level = -1;
+ char *s = NULL;
+ switch (level) {
+ case EV_DEBUG_FATAL:
+ samba_level = 0;
+ break;
+ case EV_DEBUG_ERROR:
+ samba_level = 1;
+ break;
+ case EV_DEBUG_WARNING:
+ samba_level = 2;
+ break;
+ case EV_DEBUG_TRACE:
+ samba_level = 5;
+ break;
+
+ };
+ vasprintf(&s, fmt, ap);
+ if (!s) return;
+ DEBUG(samba_level, ("events: %s\n", s));
+ free(s);
+}
+
+/*
+ create a event_context structure. This must be the first events
+ call, and all subsequent calls pass this event_context as the first
+ element. Event handlers also receive this as their first argument.
+
+ This samba4 specific call sets the samba4 debug handler.
+*/
+struct event_context *s4_event_context_init(TALLOC_CTX *mem_ctx)
+{
+ struct event_context *ev;
+
+ ev = event_context_init_byname(mem_ctx, NULL);
+ if (ev) {
+ ev_set_debug(ev, ev_wrap_debug, NULL);
+ }
+ return ev;
+}
+
module->private_data = ildb;
ildb->module = module;
- event_ctx = ldb_get_opaque(ldb, "EventContext");
+ event_ctx = ldb_get_event_context(ldb);
/* FIXME: We must make the event context an explicit parameter, but we
* need to build the events library separately first. Hack a new event
- * context so that CMD line utilities work until we have libevents for
- * standalone builds ready */
+ * context so that CMD line utilities work until we have them all
+ * converted */
if (event_ctx == NULL) {
event_ctx = event_context_init(NULL);
}
ret->mem_ctx = talloc_new(NULL);
- ev = event_context_init(ret->mem_ctx);
+ ev = s4_event_context_init(ret->mem_ctx);
if (messaging_path == NULL) {
messaging_path = lp_messaging_path(ret, global_loadparm);
ret->server_name = server;
- ev = event_context_init(ret->mem_ctx);
+ ev = s4_event_context_init(ret->mem_ctx);
if (messaging_path == NULL) {
messaging_path = lp_messaging_path(ret, global_loadparm);
arg3 = NULL;
arg4 = NULL;
- arg5 = event_context_init(NULL);
+ arg5 = s4_event_context_init(NULL);
arg6 = loadparm_init(NULL);
arg1 = NULL;
arg7 = &tmp7;
arg3 = NULL;
arg4 = NULL;
- arg5 = event_context_init(NULL);
+ arg5 = s4_event_context_init(NULL);
arg6 = loadparm_init(NULL);
arg1 = NULL;
arg7 = &tmp7;
(char *) "ev_ctx",(char *) "lp_ctx",(char *) "session_info",(char *) "credentials", NULL
};
- arg3 = event_context_init(NULL);
+ arg3 = s4_event_context_init(NULL);
arg4 = loadparm_init(NULL);
arg5 = NULL;
arg6 = NULL;
}
- ev_ctx = event_context_init(NULL);
+ ev_ctx = s4_event_context_init(NULL);
h1 = open_backend(pc, ev_ctx, cmdline_lp_ctx, backend1, remote1);
if (h1 == NULL)
while((opt = poptGetNextOpt(pc)) != -1) {
}
- ev = event_context_init(NULL);
+ ev = s4_event_context_init(NULL);
if (remote) {
h = reg_common_open_remote (remote, cmdline_lp_ctx, cmdline_credentials);
ctx = talloc_zero(NULL, struct regshell_context);
- ev_ctx = event_context_init(ctx);
+ ev_ctx = s4_event_context_init(ctx);
if (remote != NULL) {
ctx->registry = reg_common_open_remote(remote, cmdline_lp_ctx,
while((opt = poptGetNextOpt(pc)) != -1) {
}
- ev_ctx = event_context_init(NULL);
+ ev_ctx = s4_event_context_init(NULL);
if (remote != NULL) {
h = reg_common_open_remote(remote, cmdline_lp_ctx, cmdline_credentials);
if (ret->mem_ctx == NULL)
return NULL;
- ev = event_context_init(ret->mem_ctx);
+ ev = s4_event_context_init(ret->mem_ctx);
ret->socket = nbt_name_socket_init(ret->mem_ctx, ev, lp_iconv_convenience(global_loadparm));
return (PyObject *)ret;
}
(char *) "host",(char *) "ports",(char *) "resolve_ctx",(char *) "event_ctx", NULL
};
- arg5 = event_context_init(NULL);
+ arg5 = s4_event_context_init(NULL);
arg3 = NULL;
if (!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO|O:smbcli_sock_connect_byname",kwnames,&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
/* FIXME: we really need to get a context from the caller or we may end
* up with 2 event contexts */
- ev = event_context_init(NULL);
+ ev = s4_event_context_init(NULL);
mem_ctx = talloc_new(ev);
libnet_ctx = py_net_ctx(cls, ev);
}
ret = PyObject_New(dcerpc_InterfaceObject, &dcerpc_InterfaceType);
- event_ctx = event_context_init(mem_ctx);
+ event_ctx = s4_event_context_init(mem_ctx);
/* Create a dummy interface table struct. TODO: In the future, we should rather just allow
* connecting without requiring an interface table.
pid = getpid();
/* This is now the child code. We need a completely new event_context to work with */
- ev2 = event_context_init(NULL);
+ ev2 = s4_event_context_init(NULL);
/* the service has given us a private pointer that
encapsulates the context it needs for this new connection -
talloc_free(ev2);
/* But we need a events system to handle reaping children */
- ev_parent = event_context_init(NULL);
+ ev_parent = s4_event_context_init(NULL);
/* TODO: Handle some events... */
pid = getpid();
/* This is now the child code. We need a completely new event_context to work with */
- ev2 = event_context_init(NULL);
+ ev2 = s4_event_context_init(NULL);
/* the service has given us a private pointer that
encapsulates the context it needs for this new connection -
pid = getpid();
/* This is now the child code. We need a completely new event_context to work with */
- ev2 = event_context_init(NULL);
+ ev2 = s4_event_context_init(NULL);
/* the service has given us a private pointer that
encapsulates the context it needs for this new connection -
struct new_conn_state *state;
struct event_context *ev2;
- ev2 = event_context_init(ev);
+ ev2 = s4_event_context_init(ev);
if (ev2 == NULL) return;
state = talloc(ev2, struct new_conn_state);
struct new_task_state *state;
struct event_context *ev2;
- ev2 = event_context_init(ev);
+ ev2 = s4_event_context_init(ev);
if (ev2 == NULL) return;
state = talloc(ev2, struct new_task_state);
/* the event context is the top level structure in smbd. Everything else
should hang off that */
- event_ctx = event_context_init(talloc_autofree_context());
+ event_ctx = s4_event_context_init(talloc_autofree_context());
if (event_ctx == NULL) {
DEBUG(0,("Initializing event context failed\n"));
printf("seed=%u\n", options.seed);
- ev = event_context_init(talloc_autofree_context());
+ ev = s4_event_context_init(talloc_autofree_context());
gensec_init(lp_ctx);
servers[1] = servers[0];
}
- ev = event_context_init(talloc_autofree_context());
+ ev = s4_event_context_init(talloc_autofree_context());
gensec_init(lp_ctx);
DEBUG(0,("seed=%u\n", seed));
srandom(seed);
- ev = event_context_init(talloc_autofree_context());
+ ev = s4_event_context_init(talloc_autofree_context());
locking_init(1);
lp_smbcli_options(lp_ctx, &options);
lp_ctx = cmdline_lp_ctx;
- ev = event_context_init(talloc_autofree_context());
+ ev = s4_event_context_init(talloc_autofree_context());
gensec_init(lp_ctx);
exit(1);
}
- torture = torture_context_init(event_context_init(NULL), ui_ops);
+ torture = torture_context_init(s4_event_context_init(NULL), ui_ops);
if (basedir != NULL) {
if (basedir[0] != '/') {
fprintf(stderr, "Please specify an absolute path to --basedir\n");
dcerpc_init();
- ev = event_context_init(NULL);
+ ev = s4_event_context_init(NULL);
if (!ev) {
d_printf("Failed to create an event context\n");
exit(1);
load_interfaces(NULL, lp_interfaces(cmdline_lp_ctx), &ifaces);
- ev = event_context_init(talloc_autofree_context());
+ ev = s4_event_context_init(talloc_autofree_context());
while (poptPeekArg(pc)) {
const char *name = poptGetArg(pc);
return;
}
- ev = event_context_init(state);
+ ev = s4_event_context_init(state);
if (!ev) {
exit(1);
}