diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2008-04-25 10:04:20 +0100 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2008-04-25 10:04:20 +0100 |
commit | cc9c4aaa8d02c4c31c9e9a4bb53e5941683fcc31 (patch) | |
tree | d0b116699dee35372ed335834989e1c885e8f94a /source4/client/client.c | |
parent | d1432d617e6ed04c33ca214d7f3b0099bdf53065 (diff) | |
parent | 240d959005f5fd80a38b3734b39dd5d6e425a566 (diff) | |
download | samba-cc9c4aaa8d02c4c31c9e9a4bb53e5941683fcc31.tar.gz samba-cc9c4aaa8d02c4c31c9e9a4bb53e5941683fcc31.tar.bz2 samba-cc9c4aaa8d02c4c31c9e9a4bb53e5941683fcc31.zip |
Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into v4-0-gmake3
Conflicts:
source/Makefile
source/auth/config.mk
source/auth/gensec/config.mk
source/build/m4/public.m4
source/build/make/python.mk
source/build/make/rules.mk
source/build/smb_build/header.pm
source/build/smb_build/main.pl
source/build/smb_build/makefile.pm
source/dsdb/config.mk
source/dsdb/samdb/ldb_modules/config.mk
source/kdc/config.mk
source/lib/events/config.mk
source/lib/events/events.c
source/lib/ldb/config.mk
source/lib/nss_wrapper/config.mk
source/lib/policy/config.mk
source/lib/util/config.mk
source/libcli/smb2/config.mk
source/libnet/config.mk
source/librpc/config.mk
source/nbt_server/config.mk
source/ntptr/ntptr_base.c
source/ntvfs/posix/config.mk
source/ntvfs/sysdep/config.mk
source/param/config.mk
source/rpc_server/config.mk
source/rpc_server/service_rpc.c
source/scripting/ejs/config.mk
source/scripting/python/config.mk
source/smb_server/config.mk
source/smbd/server.c
source/torture/config.mk
source/torture/smb2/config.mk
source/wrepl_server/config.mk
(This used to be commit 13bbd420681519894a4036729c43273912c9b402)
Diffstat (limited to 'source4/client/client.c')
-rw-r--r-- | source4/client/client.c | 47 |
1 files changed, 36 insertions, 11 deletions
diff --git a/source4/client/client.c b/source4/client/client.c index 775aa69d37..79cc1b5382 100644 --- a/source4/client/client.c +++ b/source4/client/client.c @@ -32,6 +32,7 @@ #include "includes.h" #include "version.h" #include "libcli/libcli.h" +#include "lib/events/events.h" #include "lib/cmdline/popt_common.h" #include "librpc/gen_ndr/ndr_srvsvc_c.h" #include "librpc/gen_ndr/ndr_lsa.h" @@ -2545,7 +2546,9 @@ static void display_share_result(struct srvsvc_NetShareCtr1 *ctr1) /**************************************************************************** try and browse available shares on a host ****************************************************************************/ -static bool browse_host(struct loadparm_context *lp_ctx, const char *query_host) +static bool browse_host(struct loadparm_context *lp_ctx, + struct event_context *ev_ctx, + const char *query_host) { struct dcerpc_pipe *p; char *binding; @@ -2559,7 +2562,7 @@ static bool browse_host(struct loadparm_context *lp_ctx, const char *query_host) status = dcerpc_pipe_connect(mem_ctx, &p, binding, &ndr_table_srvsvc, - cmdline_credentials, NULL, + cmdline_credentials, ev_ctx, lp_ctx); if (!NT_STATUS_IS_OK(status)) { d_printf("Failed to connect to %s - %s\n", @@ -3021,6 +3024,7 @@ static int process_stdin(struct smbclient_context *ctx) return a connection to a server *******************************************************/ static bool do_connect(struct smbclient_context *ctx, + struct event_context *ev_ctx, struct resolve_context *resolve_ctx, const char *specified_server, const char **ports, const char *specified_share, @@ -3044,8 +3048,7 @@ static bool do_connect(struct smbclient_context *ctx, status = smbcli_full_connection(ctx, &ctx->cli, server, ports, share, NULL, cred, resolve_ctx, - cli_credentials_get_event_context(cred), - options); + ev_ctx, options); if (!NT_STATUS_IS_OK(status)) { d_printf("Connection to \\\\%s\\%s failed - %s\n", server, share, nt_errstr(status)); @@ -3059,9 +3062,12 @@ static bool do_connect(struct smbclient_context *ctx, /**************************************************************************** handle a -L query ****************************************************************************/ -static int do_host_query(struct loadparm_context *lp_ctx, const char *query_host, const char *workgroup) +static int do_host_query(struct loadparm_context *lp_ctx, + struct event_context *ev_ctx, + const char *query_host, + const char *workgroup) { - browse_host(lp_ctx, query_host); + browse_host(lp_ctx, ev_ctx, query_host); list_servers(workgroup); return(0); } @@ -3070,7 +3076,12 @@ static int do_host_query(struct loadparm_context *lp_ctx, const char *query_host /**************************************************************************** handle a message operation ****************************************************************************/ -static int do_message_op(const char *netbios_name, const char *desthost, const char **destports, const char *destip, int name_type, struct resolve_context *resolve_ctx, struct smbcli_options *options) +static int do_message_op(const char *netbios_name, const char *desthost, + const char **destports, const char *destip, + int name_type, + struct event_context *ev_ctx, + struct resolve_context *resolve_ctx, + struct smbcli_options *options) { struct nbt_name called, calling; const char *server_name; @@ -3082,7 +3093,9 @@ static int do_message_op(const char *netbios_name, const char *desthost, const c server_name = destip ? destip : desthost; - if (!(cli=smbcli_state_init(NULL)) || !smbcli_socket_connect(cli, server_name, destports, resolve_ctx, options)) { + if (!(cli = smbcli_state_init(NULL)) || + !smbcli_socket_connect(cli, server_name, destports, + ev_ctx, resolve_ctx, options)) { d_printf("Connection to %s failed\n", server_name); return 1; } @@ -3123,6 +3136,7 @@ static int do_message_op(const char *netbios_name, const char *desthost, const c int rc = 0; int name_type = 0x20; TALLOC_CTX *mem_ctx; + struct event_context *ev_ctx; struct smbclient_context *ctx; const char *cmdstr = NULL; struct smbcli_options smb_options; @@ -3220,6 +3234,8 @@ static int do_message_op(const char *netbios_name, const char *desthost, const c lp_smbcli_options(cmdline_lp_ctx, &smb_options); + ev_ctx = event_context_init(talloc_autofree_context()); + DEBUG( 3, ( "Client started (version %s).\n", SAMBA_VERSION_STRING ) ); if (query_host && (p=strchr_m(query_host,'#'))) { @@ -3229,14 +3245,23 @@ static int do_message_op(const char *netbios_name, const char *desthost, const c } if (query_host) { - return do_host_query(cmdline_lp_ctx, query_host, lp_workgroup(cmdline_lp_ctx)); + rc = do_host_query(cmdline_lp_ctx, ev_ctx, query_host, + lp_workgroup(cmdline_lp_ctx)); + return rc; } if (message) { - return do_message_op(lp_netbios_name(cmdline_lp_ctx), desthost, lp_smb_ports(cmdline_lp_ctx), dest_ip, name_type, lp_resolve_context(cmdline_lp_ctx), &smb_options); + rc = do_message_op(lp_netbios_name(cmdline_lp_ctx), desthost, + lp_smb_ports(cmdline_lp_ctx), dest_ip, + name_type, ev_ctx, + lp_resolve_context(cmdline_lp_ctx), + &smb_options); + return rc; } - if (!do_connect(ctx, lp_resolve_context(cmdline_lp_ctx), desthost, lp_smb_ports(cmdline_lp_ctx), service, cmdline_credentials, &smb_options)) + if (!do_connect(ctx, ev_ctx, lp_resolve_context(cmdline_lp_ctx), + desthost, lp_smb_ports(cmdline_lp_ctx), service, + cmdline_credentials, &smb_options)) return 1; if (base_directory) |