mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
s4:client: Migrate cifsdd to new cmdline option parser
Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
parent
c01213471f
commit
48a5f934bb
@ -21,7 +21,7 @@
|
||||
#include "includes.h"
|
||||
#include "system/filesys.h"
|
||||
#include "auth/gensec/gensec.h"
|
||||
#include "lib/cmdline/popt_common.h"
|
||||
#include "lib/cmdline/cmdline.h"
|
||||
#include "libcli/resolve/resolve.h"
|
||||
#include "libcli/raw/libcliraw.h"
|
||||
#include "lib/events/events.h"
|
||||
@ -606,11 +606,15 @@ struct poptOption cifsddHelpOptions[] = {
|
||||
POPT_TABLEEND
|
||||
};
|
||||
|
||||
int main(int argc, const char ** argv)
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
const char **const_argv = discard_const_p(const char *, argv);
|
||||
int i;
|
||||
const char ** dd_args;
|
||||
TALLOC_CTX *mem_ctx = NULL;
|
||||
struct loadparm_context *lp_ctx = NULL;
|
||||
struct tevent_context *ev;
|
||||
bool ok;
|
||||
int rc;
|
||||
|
||||
poptContext pctx;
|
||||
@ -621,8 +625,9 @@ int main(int argc, const char ** argv)
|
||||
POPT_COMMON_SAMBA
|
||||
POPT_COMMON_CONNECTION
|
||||
POPT_COMMON_CREDENTIALS
|
||||
POPT_LEGACY_S4
|
||||
POPT_COMMON_VERSION
|
||||
{0}
|
||||
POPT_TABLEEND
|
||||
};
|
||||
|
||||
/* Block sizes. */
|
||||
@ -641,7 +646,28 @@ int main(int argc, const char ** argv)
|
||||
set_arg_val("sync", false);
|
||||
set_arg_val("oplock", false);
|
||||
|
||||
pctx = poptGetContext(PROGNAME, argc, argv, poptions, 0);
|
||||
mem_ctx = talloc_init("cifsdd.c/main");
|
||||
if (mem_ctx == NULL) {
|
||||
d_printf("Not enough memory\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
ok = samba_cmdline_init(mem_ctx,
|
||||
SAMBA_CMDLINE_CONFIG_CLIENT,
|
||||
false /* require_smbconf */);
|
||||
if (!ok) {
|
||||
DBG_ERR("Failed to init cmdline parser!\n");
|
||||
TALLOC_FREE(mem_ctx);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
pctx = samba_popt_get_context(getprogname(), argc, const_argv, poptions, 0);
|
||||
if (pctx == NULL) {
|
||||
DBG_ERR("Failed to setup popt context!\n");
|
||||
TALLOC_FREE(mem_ctx);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
while ((i = poptGetNextOpt(pctx)) != -1) {
|
||||
;
|
||||
}
|
||||
@ -662,7 +688,11 @@ int main(int argc, const char ** argv)
|
||||
}
|
||||
}
|
||||
|
||||
ev = s4_event_context_init(NULL);
|
||||
poptFreeContext(pctx);
|
||||
samba_cmdline_burn(argc, argv);
|
||||
|
||||
ev = s4_event_context_init(mem_ctx);
|
||||
lp_ctx = samba_cmdline_get_lp_ctx();
|
||||
|
||||
gensec_init();
|
||||
dump_args();
|
||||
@ -670,28 +700,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);
|
||||
talloc_free(mem_ctx);
|
||||
exit(SYNTAX_EXIT_CODE);
|
||||
}
|
||||
|
||||
if (check_arg_pathname("if") == NULL) {
|
||||
fprintf(stderr, "%s: missing input filename\n", PROGNAME);
|
||||
talloc_free(ev);
|
||||
talloc_free(mem_ctx);
|
||||
exit(SYNTAX_EXIT_CODE);
|
||||
}
|
||||
|
||||
if (check_arg_pathname("of") == NULL) {
|
||||
fprintf(stderr, "%s: missing output filename\n", PROGNAME);
|
||||
talloc_free(ev);
|
||||
talloc_free(mem_ctx);
|
||||
exit(SYNTAX_EXIT_CODE);
|
||||
}
|
||||
|
||||
CatchSignal(SIGINT, dd_handle_signal);
|
||||
CatchSignal(SIGUSR1, dd_handle_signal);
|
||||
rc = copy_files(ev, cmdline_lp_ctx);
|
||||
rc = copy_files(ev, lp_ctx);
|
||||
|
||||
poptFreeContext(pctx);
|
||||
talloc_free(ev);
|
||||
talloc_free(mem_ctx);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
#include "includes.h"
|
||||
#include "system/filesys.h"
|
||||
#include "libcli/libcli.h"
|
||||
#include "lib/cmdline/popt_common.h"
|
||||
#include "lib/cmdline/cmdline.h"
|
||||
|
||||
#include "cifsdd.h"
|
||||
|
||||
@ -238,7 +238,7 @@ static struct smbcli_state * init_smb_session(struct resolve_context *resolve_ct
|
||||
ret = smbcli_full_connection(NULL, &cli, host, ports, share,
|
||||
NULL /* devtype */,
|
||||
socket_options,
|
||||
popt_get_cmdline_credentials(),
|
||||
samba_cmdline_get_creds(),
|
||||
resolve_ctx,
|
||||
ev, options,
|
||||
session_options,
|
||||
|
@ -9,5 +9,5 @@ bld.SAMBA_BINARY('client/smbclient' + bld.env.suffix4,
|
||||
|
||||
bld.SAMBA_BINARY('client/cifsdd',
|
||||
source='client/cifsdd.c client/cifsddio.c',
|
||||
deps='samba-hostconfig LIBCLI_SMB popt POPT_SAMBA POPT_CREDENTIALS param_options'
|
||||
deps='samba-hostconfig LIBCLI_SMB popt CMDLINE_S4 param_options'
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user