The branch, master has been updated via 5098636 s4: nmblookup: Allocate event context off NULL instead of talloc_autofree_context(). via dd80082 s4: cifsdd: Allocate the event context off NULL, not talloc_autofree_context(). via 1ad4bae s4: client: Allocate event context off struct smbclient_context *, not talloc_autofree_context(). via 3cfa58d gensec: Add a TALLOC_CTX * to gensec_register(). via 6f05597 s4: ntvfs: Add a TALLOC_CTX * to sys_notify_register(). via f0d8913 s4: ntvfs: Add a TALLOC_CTX * to sys_lease_register(). via e1b4df4 s4: ntvfs: Add a TALLOC_CTX * paramter to pvfs_acl_register() from 91852dd s4: torture: Remove use of local variables that are simply mirroring popt_get_cmdline_credentials().
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 5098636c784df917fb038ac4822f7a863d9543de Author: Jeremy Allison <j...@samba.org> Date: Thu May 11 16:15:56 2017 -0700 s4: nmblookup: Allocate event context off NULL instead of talloc_autofree_context(). It's already correctly freed on exit. Signed-off-by: Jeremy Allison <j...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> Autobuild-User(master): Ralph Böhme <s...@samba.org> Autobuild-Date(master): Sat May 13 21:01:25 CEST 2017 on sn-devel-144 commit dd8008250b259acdb02d3b067f8a4194dd68c14a Author: Jeremy Allison <j...@samba.org> Date: Thu May 11 16:10:31 2017 -0700 s4: cifsdd: Allocate the event context off NULL, not talloc_autofree_context(). Ensure it's freed on exit paths. Signed-off-by: Jeremy Allison <j...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 1ad4bae2623ff487509b1b5f15b9253e7c522f5f Author: Jeremy Allison <j...@samba.org> Date: Thu May 11 16:01:59 2017 -0700 s4: client: Allocate event context off struct smbclient_context *, not talloc_autofree_context(). Signed-off-by: Jeremy Allison <j...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 3cfa58de1256de94461e9e303984030fa6483568 Author: Jeremy Allison <j...@samba.org> Date: Thu May 11 15:56:29 2017 -0700 gensec: Add a TALLOC_CTX * to gensec_register(). Pass in the TALLOC_CTX * from the module init to remove another talloc_autofree_context() use. Signed-off-by: Jeremy Allison <j...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit 6f05597f5f02c2ad2b01a66e3b3b4625c6f05021 Author: Jeremy Allison <j...@samba.org> Date: Thu May 11 15:50:08 2017 -0700 s4: ntvfs: Add a TALLOC_CTX * to sys_notify_register(). Pass in the TALLOC_CTX * from the module init to remove another talloc_autofree_context() use. Signed-off-by: Jeremy Allison <j...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit f0d8913a0f795657200c18807bd3855eef5fb6e0 Author: Jeremy Allison <j...@samba.org> Date: Thu May 11 15:49:28 2017 -0700 s4: ntvfs: Add a TALLOC_CTX * to sys_lease_register(). Pass in the TALLOC_CTX * from the module init to remove another talloc_autofree_context() use. Signed-off-by: Jeremy Allison <j...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> commit e1b4df414f9e6689589eb247f99bb20742a4cefc Author: Jeremy Allison <j...@samba.org> Date: Thu May 11 15:45:57 2017 -0700 s4: ntvfs: Add a TALLOC_CTX * paramter to pvfs_acl_register() Make use of the passed in TALLOC_CTX * from the init function to remove a talloc_autofree_context() use. Signed-off-by: Jeremy Allison <j...@samba.org> Reviewed-by: Ralph Boehme <s...@samba.org> ----------------------------------------------------------------------- Summary of changes: auth/gensec/external.c | 2 +- auth/gensec/gensec.h | 3 ++- auth/gensec/gensec_start.c | 5 +++-- auth/gensec/ncalrpc.c | 2 +- auth/gensec/schannel.c | 2 +- auth/gensec/spnego.c | 2 +- auth/ntlmssp/ntlmssp.c | 4 ++-- libcli/nbt/tools/nmblookup.c | 2 +- source4/auth/gensec/gensec_gssapi.c | 6 +++--- source4/auth/gensec/gensec_krb5.c | 4 ++-- source4/client/cifsdd.c | 10 ++++++++-- source4/client/client.c | 2 +- source4/lib/http/gensec/basic.c | 2 +- source4/lib/http/gensec/ntlm.c | 2 +- source4/ntvfs/posix/pvfs_acl.c | 5 +++-- source4/ntvfs/posix/pvfs_acl_nfs4.c | 2 +- source4/ntvfs/posix/pvfs_acl_xattr.c | 2 +- source4/ntvfs/sysdep/inotify.c | 2 +- source4/ntvfs/sysdep/sys_lease.c | 5 +++-- source4/ntvfs/sysdep/sys_lease.h | 2 +- source4/ntvfs/sysdep/sys_lease_linux.c | 2 +- source4/ntvfs/sysdep/sys_notify.c | 5 +++-- source4/ntvfs/sysdep/sys_notify.h | 3 ++- 23 files changed, 44 insertions(+), 32 deletions(-) Changeset truncated at 500 lines: diff --git a/auth/gensec/external.c b/auth/gensec/external.c index 92295bc..0158045 100644 --- a/auth/gensec/external.c +++ b/auth/gensec/external.c @@ -115,7 +115,7 @@ NTSTATUS gensec_external_init(TALLOC_CTX *ctx) { NTSTATUS ret; - ret = gensec_register(&gensec_external_ops); + ret = gensec_register(ctx, &gensec_external_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_external_ops.name)); diff --git a/auth/gensec/gensec.h b/auth/gensec/gensec.h index 3924a7c..e7b9477 100644 --- a/auth/gensec/gensec.h +++ b/auth/gensec/gensec.h @@ -181,7 +181,8 @@ NTSTATUS gensec_start_mech_by_oid(struct gensec_security *gensec_security, const char *gensec_get_name_by_oid(struct gensec_security *gensec_security, const char *oid_string); struct cli_credentials *gensec_get_credentials(struct gensec_security *gensec_security); NTSTATUS gensec_init(void); -NTSTATUS gensec_register(const struct gensec_security_ops *ops); +NTSTATUS gensec_register(TALLOC_CTX *ctx, + const struct gensec_security_ops *ops); const struct gensec_security_ops *gensec_security_by_oid(struct gensec_security *gensec_security, const char *oid_string); const struct gensec_security_ops *gensec_security_by_sasl_name(struct gensec_security *gensec_security, diff --git a/auth/gensec/gensec_start.c b/auth/gensec/gensec_start.c index 83a86cf..0f7e826 100644 --- a/auth/gensec/gensec_start.c +++ b/auth/gensec/gensec_start.c @@ -893,7 +893,8 @@ _PUBLIC_ NTSTATUS gensec_set_credentials(struct gensec_security *gensec_security The 'name' can be later used by other backends to find the operations structure for this backend. */ -_PUBLIC_ NTSTATUS gensec_register(const struct gensec_security_ops *ops) +_PUBLIC_ NTSTATUS gensec_register(TALLOC_CTX *ctx, + const struct gensec_security_ops *ops) { if (gensec_security_by_name(NULL, ops->name) != NULL) { /* its already registered! */ @@ -902,7 +903,7 @@ _PUBLIC_ NTSTATUS gensec_register(const struct gensec_security_ops *ops) return NT_STATUS_OBJECT_NAME_COLLISION; } - generic_security_ops = talloc_realloc(talloc_autofree_context(), + generic_security_ops = talloc_realloc(ctx, generic_security_ops, const struct gensec_security_ops *, gensec_num_backends+2); diff --git a/auth/gensec/ncalrpc.c b/auth/gensec/ncalrpc.c index 8916ef5..f28a1c4 100644 --- a/auth/gensec/ncalrpc.c +++ b/auth/gensec/ncalrpc.c @@ -342,7 +342,7 @@ _PUBLIC_ NTSTATUS gensec_ncalrpc_as_system_init(TALLOC_CTX *ctx) { NTSTATUS status; - status = gensec_register(&gensec_ncalrpc_security_ops); + status = gensec_register(ctx, &gensec_ncalrpc_security_ops); if (!NT_STATUS_IS_OK(status)) { DEBUG(0, ("Failed to register '%s' gensec backend!\n", gensec_ncalrpc_security_ops.name)); diff --git a/auth/gensec/schannel.c b/auth/gensec/schannel.c index bf169d4..41f6351 100644 --- a/auth/gensec/schannel.c +++ b/auth/gensec/schannel.c @@ -852,7 +852,7 @@ static const struct gensec_security_ops gensec_schannel_security_ops = { _PUBLIC_ NTSTATUS gensec_schannel_init(TALLOC_CTX *ctx) { NTSTATUS ret; - ret = gensec_register(&gensec_schannel_security_ops); + ret = gensec_register(ctx, &gensec_schannel_security_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_schannel_security_ops.name)); diff --git a/auth/gensec/spnego.c b/auth/gensec/spnego.c index 4b3edc6..484f491 100644 --- a/auth/gensec/spnego.c +++ b/auth/gensec/spnego.c @@ -1697,7 +1697,7 @@ static const struct gensec_security_ops gensec_spnego_security_ops = { _PUBLIC_ NTSTATUS gensec_spnego_init(TALLOC_CTX *ctx) { NTSTATUS ret; - ret = gensec_register(&gensec_spnego_security_ops); + ret = gensec_register(ctx, &gensec_spnego_security_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_spnego_security_ops.name)); diff --git a/auth/ntlmssp/ntlmssp.c b/auth/ntlmssp/ntlmssp.c index ec2f6d9..cb8f10b 100644 --- a/auth/ntlmssp/ntlmssp.c +++ b/auth/ntlmssp/ntlmssp.c @@ -256,14 +256,14 @@ _PUBLIC_ NTSTATUS gensec_ntlmssp_init(TALLOC_CTX *ctx) { NTSTATUS ret; - ret = gensec_register(&gensec_ntlmssp_security_ops); + ret = gensec_register(ctx, &gensec_ntlmssp_security_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_ntlmssp_security_ops.name)); return ret; } - ret = gensec_register(&gensec_ntlmssp_resume_ccache_ops); + ret = gensec_register(ctx, &gensec_ntlmssp_resume_ccache_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_ntlmssp_resume_ccache_ops.name)); diff --git a/libcli/nbt/tools/nmblookup.c b/libcli/nbt/tools/nmblookup.c index afb81c7..e5fa573 100644 --- a/libcli/nbt/tools/nmblookup.c +++ b/libcli/nbt/tools/nmblookup.c @@ -372,7 +372,7 @@ int main(int argc, const char *argv[]) load_interface_list(NULL, cmdline_lp_ctx, &ifaces); - ev = s4_event_context_init(talloc_autofree_context()); + ev = s4_event_context_init(NULL); while (poptPeekArg(pc)) { const char *name = poptGetArg(pc); diff --git a/source4/auth/gensec/gensec_gssapi.c b/source4/auth/gensec/gensec_gssapi.c index 73a08f1..2b3c56b 100644 --- a/source4/auth/gensec/gensec_gssapi.c +++ b/source4/auth/gensec/gensec_gssapi.c @@ -1644,21 +1644,21 @@ _PUBLIC_ NTSTATUS gensec_gssapi_init(TALLOC_CTX *ctx) { NTSTATUS ret; - ret = gensec_register(&gensec_gssapi_spnego_security_ops); + ret = gensec_register(ctx, &gensec_gssapi_spnego_security_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_gssapi_spnego_security_ops.name)); return ret; } - ret = gensec_register(&gensec_gssapi_krb5_security_ops); + ret = gensec_register(ctx, &gensec_gssapi_krb5_security_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_gssapi_krb5_security_ops.name)); return ret; } - ret = gensec_register(&gensec_gssapi_sasl_krb5_security_ops); + ret = gensec_register(ctx, &gensec_gssapi_sasl_krb5_security_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_gssapi_sasl_krb5_security_ops.name)); diff --git a/source4/auth/gensec/gensec_krb5.c b/source4/auth/gensec/gensec_krb5.c index 4756c84..fdd3823 100644 --- a/source4/auth/gensec/gensec_krb5.c +++ b/source4/auth/gensec/gensec_krb5.c @@ -1086,14 +1086,14 @@ _PUBLIC_ NTSTATUS gensec_krb5_init(TALLOC_CTX *ctx) { NTSTATUS ret; - ret = gensec_register(&gensec_krb5_security_ops); + ret = gensec_register(ctx, &gensec_krb5_security_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_krb5_security_ops.name)); return ret; } - ret = gensec_register(&gensec_fake_gssapi_krb5_security_ops); + ret = gensec_register(ctx, &gensec_fake_gssapi_krb5_security_ops); if (!NT_STATUS_IS_OK(ret)) { DEBUG(0,("Failed to register '%s' gensec backend!\n", gensec_fake_gssapi_krb5_security_ops.name)); diff --git a/source4/client/cifsdd.c b/source4/client/cifsdd.c index 980948a..7ab59cd 100644 --- a/source4/client/cifsdd.c +++ b/source4/client/cifsdd.c @@ -551,6 +551,7 @@ int main(int argc, const char ** argv) int i; const char ** dd_args; struct tevent_context *ev; + int rc; poptContext pctx; struct poptOption poptions[] = { @@ -601,7 +602,7 @@ int main(int argc, const char ** argv) } } - ev = s4_event_context_init(talloc_autofree_context()); + ev = s4_event_context_init(NULL); gensec_init(); dump_args(); @@ -609,22 +610,27 @@ int main(int argc, const char ** argv) if (check_arg_numeric("ibs") == 0 || check_arg_numeric("obs") == 0) { fprintf(stderr, "%s: block sizes must be greater that zero\n", PROGNAME); + talloc_free(ev); exit(SYNTAX_EXIT_CODE); } if (check_arg_pathname("if") == NULL) { fprintf(stderr, "%s: missing input filename\n", PROGNAME); + talloc_free(ev); exit(SYNTAX_EXIT_CODE); } if (check_arg_pathname("of") == NULL) { fprintf(stderr, "%s: missing output filename\n", PROGNAME); + talloc_free(ev); exit(SYNTAX_EXIT_CODE); } CatchSignal(SIGINT, dd_handle_signal); CatchSignal(SIGUSR1, dd_handle_signal); - return(copy_files(ev, cmdline_lp_ctx)); + rc = copy_files(ev, cmdline_lp_ctx); + talloc_free(ev); + return rc; } /* vim: set sw=8 sts=8 ts=8 tw=79 : */ diff --git a/source4/client/client.c b/source4/client/client.c index 9b2115a..e04aa25 100644 --- a/source4/client/client.c +++ b/source4/client/client.c @@ -3415,7 +3415,7 @@ static int do_message_op(const char *netbios_name, const char *desthost, lpcfg_smbcli_options(cmdline_lp_ctx, &smb_options); lpcfg_smbcli_session_options(cmdline_lp_ctx, &smb_session_options); - ev_ctx = s4_event_context_init(talloc_autofree_context()); + ev_ctx = s4_event_context_init(ctx); DEBUG( 3, ( "Client started (version %s).\n", SAMBA_VERSION_STRING ) ); diff --git a/source4/lib/http/gensec/basic.c b/source4/lib/http/gensec/basic.c index 6477863..6077aca 100644 --- a/source4/lib/http/gensec/basic.c +++ b/source4/lib/http/gensec/basic.c @@ -127,7 +127,7 @@ _PUBLIC_ NTSTATUS gensec_http_basic_init(TALLOC_CTX *ctx) { NTSTATUS status; - status = gensec_register(&gensec_http_basic_security_ops); + status = gensec_register(ctx, &gensec_http_basic_security_ops); if (!NT_STATUS_IS_OK(status)) { DEBUG(0, ("Failed to register '%s' gensec backend!\n", gensec_http_basic_security_ops.name)); diff --git a/source4/lib/http/gensec/ntlm.c b/source4/lib/http/gensec/ntlm.c index 391f99f..cc4b0f0 100644 --- a/source4/lib/http/gensec/ntlm.c +++ b/source4/lib/http/gensec/ntlm.c @@ -110,7 +110,7 @@ _PUBLIC_ NTSTATUS gensec_http_ntlm_init(TALLOC_CTX *ctx) { NTSTATUS status; - status = gensec_register(&gensec_http_ntlm_security_ops); + status = gensec_register(ctx, &gensec_http_ntlm_security_ops); if (!NT_STATUS_IS_OK(status)) { DEBUG(0, ("Failed to register '%s' gensec backend!\n", gensec_http_ntlm_security_ops.name)); diff --git a/source4/ntvfs/posix/pvfs_acl.c b/source4/ntvfs/posix/pvfs_acl.c index 9a110ca..d284585 100644 --- a/source4/ntvfs/posix/pvfs_acl.c +++ b/source4/ntvfs/posix/pvfs_acl.c @@ -41,7 +41,7 @@ static int num_backends; The 'name' can be later used by other backends to find the operations structure for this backend. */ -NTSTATUS pvfs_acl_register(const struct pvfs_acl_ops *ops) +NTSTATUS pvfs_acl_register(TALLOC_CTX *ctx, const struct pvfs_acl_ops *ops) { struct pvfs_acl_ops *new_ops; @@ -50,7 +50,8 @@ NTSTATUS pvfs_acl_register(const struct pvfs_acl_ops *ops) return NT_STATUS_OBJECT_NAME_COLLISION; } - backends = talloc_realloc(talloc_autofree_context(), backends, struct pvfs_acl_backend, num_backends+1); + backends = talloc_realloc(ctx, backends, + struct pvfs_acl_backend, num_backends+1); NT_STATUS_HAVE_NO_MEMORY(backends); new_ops = (struct pvfs_acl_ops *)talloc_memdup(backends, ops, sizeof(*ops)); diff --git a/source4/ntvfs/posix/pvfs_acl_nfs4.c b/source4/ntvfs/posix/pvfs_acl_nfs4.c index 392dc92..b07d2ba 100644 --- a/source4/ntvfs/posix/pvfs_acl_nfs4.c +++ b/source4/ntvfs/posix/pvfs_acl_nfs4.c @@ -195,5 +195,5 @@ NTSTATUS pvfs_acl_nfs4_init(TALLOC_CTX *ctx) .acl_load = pvfs_acl_load_nfs4, .acl_save = pvfs_acl_save_nfs4 }; - return pvfs_acl_register(&ops); + return pvfs_acl_register(ctx, &ops); } diff --git a/source4/ntvfs/posix/pvfs_acl_xattr.c b/source4/ntvfs/posix/pvfs_acl_xattr.c index 648c459..1f569ca 100644 --- a/source4/ntvfs/posix/pvfs_acl_xattr.c +++ b/source4/ntvfs/posix/pvfs_acl_xattr.c @@ -100,5 +100,5 @@ NTSTATUS pvfs_acl_xattr_init(TALLOC_CTX *ctx) .acl_load = pvfs_acl_load_xattr, .acl_save = pvfs_acl_save_xattr }; - return pvfs_acl_register(&ops); + return pvfs_acl_register(ctx, &ops); } diff --git a/source4/ntvfs/sysdep/inotify.c b/source4/ntvfs/sysdep/inotify.c index c769618..ba4b336 100644 --- a/source4/ntvfs/sysdep/inotify.c +++ b/source4/ntvfs/sysdep/inotify.c @@ -394,5 +394,5 @@ NTSTATUS sys_notify_inotify_init(TALLOC_CTX *); NTSTATUS sys_notify_inotify_init(TALLOC_CTX *ctx) { /* register ourselves as a system inotify module */ - return sys_notify_register(&inotify); + return sys_notify_register(ctx, &inotify); } diff --git a/source4/ntvfs/sysdep/sys_lease.c b/source4/ntvfs/sysdep/sys_lease.c index 3db6703..b6e6ffc 100644 --- a/source4/ntvfs/sysdep/sys_lease.c +++ b/source4/ntvfs/sysdep/sys_lease.c @@ -103,10 +103,11 @@ _PUBLIC_ struct sys_lease_context *sys_lease_context_create(struct share_config /* register a lease backend */ -_PUBLIC_ NTSTATUS sys_lease_register(const struct sys_lease_ops *backend) +_PUBLIC_ NTSTATUS sys_lease_register(TALLOC_CTX *ctx, + const struct sys_lease_ops *backend) { struct sys_lease_ops *b; - b = talloc_realloc(talloc_autofree_context(), backends, + b = talloc_realloc(ctx, backends, struct sys_lease_ops, num_backends+1); NT_STATUS_HAVE_NO_MEMORY(b); backends = b; diff --git a/source4/ntvfs/sysdep/sys_lease.h b/source4/ntvfs/sysdep/sys_lease.h index 57a5e0a..8b8d4bd 100644 --- a/source4/ntvfs/sysdep/sys_lease.h +++ b/source4/ntvfs/sysdep/sys_lease.h @@ -47,7 +47,7 @@ struct sys_lease_context { const struct sys_lease_ops *ops; }; -NTSTATUS sys_lease_register(const struct sys_lease_ops *ops); +NTSTATUS sys_lease_register(TALLOC_CTX *ctx, const struct sys_lease_ops *ops); NTSTATUS sys_lease_init(void); struct sys_lease_context *sys_lease_context_create(struct share_config *scfg, diff --git a/source4/ntvfs/sysdep/sys_lease_linux.c b/source4/ntvfs/sysdep/sys_lease_linux.c index 1c70f4e..566a9a3 100644 --- a/source4/ntvfs/sysdep/sys_lease_linux.c +++ b/source4/ntvfs/sysdep/sys_lease_linux.c @@ -211,5 +211,5 @@ static struct sys_lease_ops linux_lease_ops = { NTSTATUS sys_lease_linux_init(TALLOC_CTX *ctx) { /* register ourselves as a system lease module */ - return sys_lease_register(&linux_lease_ops); + return sys_lease_register(ctx, &linux_lease_ops); } diff --git a/source4/ntvfs/sysdep/sys_notify.c b/source4/ntvfs/sysdep/sys_notify.c index aad3b90..7e00032 100644 --- a/source4/ntvfs/sysdep/sys_notify.c +++ b/source4/ntvfs/sysdep/sys_notify.c @@ -120,10 +120,11 @@ _PUBLIC_ NTSTATUS sys_notify_watch(struct sys_notify_context *ctx, /* register a notify backend */ -_PUBLIC_ NTSTATUS sys_notify_register(struct sys_notify_backend *backend) +_PUBLIC_ NTSTATUS sys_notify_register(TALLOC_CTX *ctx, + struct sys_notify_backend *backend) { struct sys_notify_backend *b; - b = talloc_realloc(talloc_autofree_context(), backends, + b = talloc_realloc(ctx, backends, struct sys_notify_backend, num_backends+1); NT_STATUS_HAVE_NO_MEMORY(b); backends = b; diff --git a/source4/ntvfs/sysdep/sys_notify.h b/source4/ntvfs/sysdep/sys_notify.h index d912a9b..9e10f14 100644 --- a/source4/ntvfs/sysdep/sys_notify.h +++ b/source4/ntvfs/sysdep/sys_notify.h @@ -43,7 +43,8 @@ struct sys_notify_backend { notify_watch_t notify_watch; }; -NTSTATUS sys_notify_register(struct sys_notify_backend *backend); +NTSTATUS sys_notify_register(TALLOC_CTX *ctx, + struct sys_notify_backend *backend); struct sys_notify_context *sys_notify_context_create(struct share_config *scfg, TALLOC_CTX *mem_ctx, struct tevent_context *ev); -- Samba Shared Repository