From 8080dbad78edbc26c8ece8ae7f1abc27f0d7afd4 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Mon, 30 Jan 2012 10:53:18 +0100 Subject: [PATCH] s3-lib: Fix util_cmdline which doesn't use popt. This creates its own header file for util_cmdline so it doesn't need to link against popt. This should fix linking on FreeBSD. --- source3/include/auth_info.h | 67 +++++++++++++++++++++++++++++++++++++++++++ source3/include/popt_common.h | 14 +-------- source3/include/proto.h | 33 --------------------- source3/lib/netapi/cm.c | 2 +- source3/lib/util_cmdline.c | 2 +- source3/libsmb/cliconnect.c | 2 +- source3/libsmb/libsmb_dir.c | 2 +- source3/libsmb/proto.h | 1 + source3/wscript_build | 6 ++-- 9 files changed, 76 insertions(+), 53 deletions(-) create mode 100644 source3/include/auth_info.h diff --git a/source3/include/auth_info.h b/source3/include/auth_info.h new file mode 100644 index 00000000000..6b5105d51ff --- /dev/null +++ b/source3/include/auth_info.h @@ -0,0 +1,67 @@ +/* + * Unix SMB/CIFS implementation. + * + * Copyright (c) 2012 Andreas Schneider + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#ifndef _AUTH_INFO_H +#define _AUTH_INFO_H + +struct user_auth_info { + char *username; + char *domain; + char *password; + bool got_pass; + bool use_kerberos; + int signing_state; + bool smb_encrypt; + bool use_machine_account; + bool fallback_after_kerberos; + bool use_ccache; +}; + +struct user_auth_info *user_auth_info_init(TALLOC_CTX *mem_ctx); +const char *get_cmdline_auth_info_username(const struct user_auth_info *auth_info); +void set_cmdline_auth_info_username(struct user_auth_info *auth_info, + const char *username); +const char *get_cmdline_auth_info_domain(const struct user_auth_info *auth_info); +void set_cmdline_auth_info_domain(struct user_auth_info *auth_info, + const char *domain); +void set_cmdline_auth_info_password(struct user_auth_info *auth_info, + const char *password); +const char *get_cmdline_auth_info_password(const struct user_auth_info *auth_info); +bool set_cmdline_auth_info_signing_state(struct user_auth_info *auth_info, + const char *arg); +int get_cmdline_auth_info_signing_state(const struct user_auth_info *auth_info); +void set_cmdline_auth_info_use_ccache(struct user_auth_info *auth_info, + bool b); +bool get_cmdline_auth_info_use_ccache(const struct user_auth_info *auth_info); +void set_cmdline_auth_info_use_kerberos(struct user_auth_info *auth_info, + bool b); +bool get_cmdline_auth_info_use_kerberos(const struct user_auth_info *auth_info); +void set_cmdline_auth_info_fallback_after_kerberos(struct user_auth_info *auth_info, + bool b); +bool get_cmdline_auth_info_fallback_after_kerberos(const struct user_auth_info *auth_info); +void set_cmdline_auth_info_use_krb5_ticket(struct user_auth_info *auth_info); +void set_cmdline_auth_info_smb_encrypt(struct user_auth_info *auth_info); +void set_cmdline_auth_info_use_machine_account(struct user_auth_info *auth_info); +bool get_cmdline_auth_info_got_pass(const struct user_auth_info *auth_info); +bool get_cmdline_auth_info_smb_encrypt(const struct user_auth_info *auth_info); +bool get_cmdline_auth_info_use_machine_account(const struct user_auth_info *auth_info); +bool set_cmdline_auth_info_machine_account_creds(struct user_auth_info *auth_info); +void set_cmdline_auth_info_getpass(struct user_auth_info *auth_info); + +#endif /* _AUTH_INFO_H */ diff --git a/source3/include/popt_common.h b/source3/include/popt_common.h index 10dd2f4ebee..2125ed6f83a 100644 --- a/source3/include/popt_common.h +++ b/source3/include/popt_common.h @@ -21,6 +21,7 @@ #define _POPT_COMMON_H #include +#include "auth_info.h" /* Common popt structures */ extern struct poptOption popt_common_samba[]; @@ -47,19 +48,6 @@ extern const struct poptOption popt_common_dynconfig[]; #define POPT_COMMON_DEBUGLEVEL { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_debuglevel, 0, "Common samba debugging:", NULL }, #define POPT_COMMON_OPTION { NULL, 0, POPT_ARG_INCLUDE_TABLE, popt_common_option, 0, "Common samba commandline config:", NULL }, -struct user_auth_info { - char *username; - char *domain; - char *password; - bool got_pass; - bool use_kerberos; - int signing_state; - bool smb_encrypt; - bool use_machine_account; - bool fallback_after_kerberos; - bool use_ccache; -}; - void popt_common_set_auth_info(struct user_auth_info *auth_info); #endif /* _POPT_COMMON_H */ diff --git a/source3/include/proto.h b/source3/include/proto.h index 2bccaa6406b..4efa3b60281 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -597,39 +597,6 @@ bool map_open_params_to_ntcreate(const char *smb_base_fname, uint32_t *pprivate_flags); void init_modules(void); -/* The following definitions come from lib/util_cmdline.c */ - -struct user_auth_info *user_auth_info_init(TALLOC_CTX *mem_ctx); -const char *get_cmdline_auth_info_username(const struct user_auth_info *auth_info); -void set_cmdline_auth_info_username(struct user_auth_info *auth_info, - const char *username); -const char *get_cmdline_auth_info_domain(const struct user_auth_info *auth_info); -void set_cmdline_auth_info_domain(struct user_auth_info *auth_info, - const char *domain); -void set_cmdline_auth_info_password(struct user_auth_info *auth_info, - const char *password); -const char *get_cmdline_auth_info_password(const struct user_auth_info *auth_info); -bool set_cmdline_auth_info_signing_state(struct user_auth_info *auth_info, - const char *arg); -int get_cmdline_auth_info_signing_state(const struct user_auth_info *auth_info); -void set_cmdline_auth_info_use_ccache(struct user_auth_info *auth_info, - bool b); -bool get_cmdline_auth_info_use_ccache(const struct user_auth_info *auth_info); -void set_cmdline_auth_info_use_kerberos(struct user_auth_info *auth_info, - bool b); -bool get_cmdline_auth_info_use_kerberos(const struct user_auth_info *auth_info); -void set_cmdline_auth_info_fallback_after_kerberos(struct user_auth_info *auth_info, - bool b); -bool get_cmdline_auth_info_fallback_after_kerberos(const struct user_auth_info *auth_info); -void set_cmdline_auth_info_use_krb5_ticket(struct user_auth_info *auth_info); -void set_cmdline_auth_info_smb_encrypt(struct user_auth_info *auth_info); -void set_cmdline_auth_info_use_machine_account(struct user_auth_info *auth_info); -bool get_cmdline_auth_info_got_pass(const struct user_auth_info *auth_info); -bool get_cmdline_auth_info_smb_encrypt(const struct user_auth_info *auth_info); -bool get_cmdline_auth_info_use_machine_account(const struct user_auth_info *auth_info); -bool set_cmdline_auth_info_machine_account_creds(struct user_auth_info *auth_info); -void set_cmdline_auth_info_getpass(struct user_auth_info *auth_info); - /* The following definitions come from lib/util_builtin.c */ bool lookup_builtin_rid(TALLOC_CTX *mem_ctx, uint32 rid, const char **name); diff --git a/source3/lib/netapi/cm.c b/source3/lib/netapi/cm.c index e1e7a41a4f4..4dfa6b50a25 100644 --- a/source3/lib/netapi/cm.c +++ b/source3/lib/netapi/cm.c @@ -18,7 +18,7 @@ */ #include "includes.h" -#include "popt_common.h" +#include "auth_info.h" #include "lib/netapi/netapi.h" #include "lib/netapi/netapi_private.h" diff --git a/source3/lib/util_cmdline.c b/source3/lib/util_cmdline.c index 9fbdf77f191..1d2c7256eab 100644 --- a/source3/lib/util_cmdline.c +++ b/source3/lib/util_cmdline.c @@ -22,7 +22,7 @@ */ #include "includes.h" -#include "popt_common.h" +#include "auth_info.h" #include "secrets.h" /**************************************************************************n diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index 76e32565e4b..146fc3d3b47 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -22,7 +22,7 @@ #include "includes.h" #include "libsmb/libsmb.h" -#include "popt_common.h" +#include "auth_info.h" #include "../libcli/auth/libcli_auth.h" #include "../libcli/auth/spnego.h" #include "smb_krb5.h" diff --git a/source3/libsmb/libsmb_dir.c b/source3/libsmb/libsmb_dir.c index 8d3d12d86a9..ef93dd064bd 100644 --- a/source3/libsmb/libsmb_dir.c +++ b/source3/libsmb/libsmb_dir.c @@ -24,7 +24,7 @@ #include "includes.h" #include "libsmb/libsmb.h" -#include "popt_common.h" +#include "auth_info.h" #include "libsmbclient.h" #include "libsmb_internal.h" #include "rpc_client/cli_pipe.h" diff --git a/source3/libsmb/proto.h b/source3/libsmb/proto.h index 8dac82358b2..9e03ec4798e 100644 --- a/source3/libsmb/proto.h +++ b/source3/libsmb/proto.h @@ -27,6 +27,7 @@ #define _LIBSMB_PROTO_H_ #include "ads.h" +#include "auth_info.h" struct smb_trans_enc_state; diff --git a/source3/wscript_build b/source3/wscript_build index 417e096e57f..5df95197bf5 100755 --- a/source3/wscript_build +++ b/source3/wscript_build @@ -643,7 +643,7 @@ bld.SAMBA3_LIBRARY('netapi', source=LIBNETAPI_SRC, public_deps=''' talloc - popt + util_cmdline msrpc3 ads NDR_LIBNETAPI @@ -800,7 +800,7 @@ bld.SAMBA3_LIBRARY('popt_samba3', bld.SAMBA3_LIBRARY('util_cmdline', source='lib/util_cmdline.c', - deps='secrets3 popt', + deps='secrets3', private_library=True) bld.SAMBA3_SUBSYSTEM('KRBCLIENT', @@ -1422,7 +1422,7 @@ bld.SAMBA3_BINARY('smbget', source=SMBGET_SRC, deps=''' talloc - popt + popt_samba3 smbclient''', vars=locals()) -- 2.11.4.GIT