summaryrefslogtreecommitdiffstats
path: root/source3/utils
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2008-12-16 11:41:20 +1100
committerAndrew Tridgell <tridge@samba.org>2008-12-16 11:41:20 +1100
commitf448fde4e35e56508ad93be8de9f60d88e8b8dcd (patch)
tree597b58ba1af03f5250af918ec15300c385281706 /source3/utils
parenta226d86dcec393b2cd657d5441c3041dfdf5cd8f (diff)
parent530758dc2a6dd6dce083789b328e16e51ba6573d (diff)
downloadsamba-f448fde4e35e56508ad93be8de9f60d88e8b8dcd.tar.gz
samba-f448fde4e35e56508ad93be8de9f60d88e8b8dcd.tar.xz
samba-f448fde4e35e56508ad93be8de9f60d88e8b8dcd.zip
Merge branch 'master' of ssh://git.samba.org/data/git/samba
Diffstat (limited to 'source3/utils')
-rw-r--r--source3/utils/net.c2
-rw-r--r--source3/utils/net_ads.c2
-rw-r--r--source3/utils/net_rpc.c3
-rw-r--r--source3/utils/smbcacls.c38
-rw-r--r--source3/utils/smbcquotas.c34
-rw-r--r--source3/utils/smbfilter.c2
-rw-r--r--source3/utils/smbtree.c22
7 files changed, 62 insertions, 41 deletions
diff --git a/source3/utils/net.c b/source3/utils/net.c
index bab2f41d117..f1a5be1876b 100644
--- a/source3/utils/net.c
+++ b/source3/utils/net.c
@@ -662,7 +662,7 @@ static struct functable net_func[] = {
};
- zero_addr(&c->opt_dest_ip);
+ zero_sockaddr(&c->opt_dest_ip);
load_case_tables();
diff --git a/source3/utils/net_ads.c b/source3/utils/net_ads.c
index b03fefe14a1..27d534665c4 100644
--- a/source3/utils/net_ads.c
+++ b/source3/utils/net_ads.c
@@ -293,7 +293,7 @@ retry:
tried_closest_dc = true; /* avoid loop */
- if (!ads->config.tried_closest_dc) {
+ if (!ads_closest_dc(ads)) {
namecache_delete(ads->server.realm, 0x1C);
namecache_delete(ads->server.workgroup, 0x1C);
diff --git a/source3/utils/net_rpc.c b/source3/utils/net_rpc.c
index 3c8ce0326e6..f69d3f9012e 100644
--- a/source3/utils/net_rpc.c
+++ b/source3/utils/net_rpc.c
@@ -5250,7 +5250,8 @@ static NTSTATUS rpc_trustdom_add_internals(struct net_context *c,
notime, notime, notime,
NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, &parameters,
- 0, 0, ACB_DOMTRUST, SAMR_FIELD_ACCT_FLAGS,
+ 0, 0, ACB_DOMTRUST,
+ SAMR_FIELD_ACCT_FLAGS | SAMR_FIELD_NT_PASSWORD_PRESENT,
hours,
0, 0, 0, 0, 0, 0, 0,
&crypt_pwd);
diff --git a/source3/utils/smbcacls.c b/source3/utils/smbcacls.c
index 10b55014c22..f07b5011c8a 100644
--- a/source3/utils/smbcacls.c
+++ b/source3/utils/smbcacls.c
@@ -735,6 +735,8 @@ static int owner_set(struct cli_state *cli, enum chown_mode change_mode,
if (!cli_set_secdesc(cli, fnum, sd)) {
printf("ERROR: secdesc set failed: %s\n", cli_errstr(cli));
+ cli_close(cli, fnum);
+ return EXIT_FAILED;
}
cli_close(cli, fnum);
@@ -949,50 +951,51 @@ static int cacl_set(struct cli_state *cli, char *filename,
/*****************************************************
Return a connection to a server.
*******************************************************/
-static struct cli_state *connect_one(const char *server, const char *share)
+static struct cli_state *connect_one(struct user_auth_info *auth_info,
+ const char *server, const char *share)
{
struct cli_state *c = NULL;
struct sockaddr_storage ss;
NTSTATUS nt_status;
uint32_t flags = 0;
- zero_addr(&ss);
+ zero_sockaddr(&ss);
- if (get_cmdline_auth_info_use_kerberos()) {
+ if (get_cmdline_auth_info_use_kerberos(auth_info)) {
flags |= CLI_FULL_CONNECTION_USE_KERBEROS |
CLI_FULL_CONNECTION_FALLBACK_AFTER_KERBEROS;
}
- if (get_cmdline_auth_info_use_machine_account() &&
- !set_cmdline_auth_info_machine_account_creds()) {
+ if (get_cmdline_auth_info_use_machine_account(auth_info) &&
+ !set_cmdline_auth_info_machine_account_creds(auth_info)) {
return NULL;
}
- if (!get_cmdline_auth_info_got_pass()) {
+ if (!get_cmdline_auth_info_got_pass(auth_info)) {
char *pass = getpass("Password: ");
if (pass) {
- set_cmdline_auth_info_password(pass);
+ set_cmdline_auth_info_password(auth_info, pass);
}
}
nt_status = cli_full_connection(&c, global_myname(), server,
&ss, 0,
share, "?????",
- get_cmdline_auth_info_username(),
+ get_cmdline_auth_info_username(auth_info),
lp_workgroup(),
- get_cmdline_auth_info_password(),
+ get_cmdline_auth_info_password(auth_info),
flags,
- get_cmdline_auth_info_signing_state(),
+ get_cmdline_auth_info_signing_state(auth_info),
NULL);
if (!NT_STATUS_IS_OK(nt_status)) {
DEBUG(0,("cli_full_connection failed! (%s)\n", nt_errstr(nt_status)));
return NULL;
}
- if (get_cmdline_auth_info_smb_encrypt()) {
+ if (get_cmdline_auth_info_smb_encrypt(auth_info)) {
nt_status = cli_cm_force_encryption(c,
- get_cmdline_auth_info_username(),
- get_cmdline_auth_info_password(),
+ get_cmdline_auth_info_username(auth_info),
+ get_cmdline_auth_info_password(auth_info),
lp_workgroup(),
share);
if (!NT_STATUS_IS_OK(nt_status)) {
@@ -1038,6 +1041,7 @@ static struct cli_state *connect_one(const char *server, const char *share)
TALLOC_CTX *frame = talloc_stackframe();
const char *owner_username = "";
char *server;
+ struct user_auth_info *auth_info;
load_case_tables();
@@ -1053,6 +1057,12 @@ static struct cli_state *connect_one(const char *server, const char *share)
lp_load(get_dyn_CONFIGFILE(),True,False,False,True);
load_interfaces();
+ auth_info = user_auth_info_init(frame);
+ if (auth_info == NULL) {
+ exit(1);
+ }
+ popt_common_set_auth_info(auth_info);
+
pc = poptGetContext("smbcacls", argc, argv, long_options, 0);
poptSetOtherOptionHelp(pc, "//server1/share1 filename\nACLs look like: "
@@ -1129,7 +1139,7 @@ static struct cli_state *connect_one(const char *server, const char *share)
share++;
if (!test_args) {
- cli = connect_one(server, share);
+ cli = connect_one(auth_info, server, share);
if (!cli) {
exit(EXIT_FAILED);
}
diff --git a/source3/utils/smbcquotas.c b/source3/utils/smbcquotas.c
index b769c2bce0b..a95394b125c 100644
--- a/source3/utils/smbcquotas.c
+++ b/source3/utils/smbcquotas.c
@@ -37,6 +37,7 @@ static struct cli_state *cli_ipc;
static struct rpc_pipe_client *global_pipe_hnd;
static POLICY_HND pol;
static bool got_policy_hnd;
+static struct user_auth_info *smbcquotas_auth_info;
static struct cli_state *connect_one(const char *share);
@@ -371,44 +372,44 @@ static struct cli_state *connect_one(const char *share)
NTSTATUS nt_status;
uint32_t flags = 0;
- zero_addr(&ss);
+ zero_sockaddr(&ss);
- if (get_cmdline_auth_info_use_machine_account() &&
- !set_cmdline_auth_info_machine_account_creds()) {
+ if (get_cmdline_auth_info_use_machine_account(smbcquotas_auth_info) &&
+ !set_cmdline_auth_info_machine_account_creds(smbcquotas_auth_info)) {
return NULL;
}
- if (get_cmdline_auth_info_use_kerberos()) {
+ if (get_cmdline_auth_info_use_kerberos(smbcquotas_auth_info)) {
flags |= CLI_FULL_CONNECTION_USE_KERBEROS |
CLI_FULL_CONNECTION_FALLBACK_AFTER_KERBEROS;
}
- if (!get_cmdline_auth_info_got_pass()) {
+ if (!get_cmdline_auth_info_got_pass(smbcquotas_auth_info)) {
char *pass = getpass("Password: ");
if (pass) {
- set_cmdline_auth_info_password(pass);
+ set_cmdline_auth_info_password(smbcquotas_auth_info, pass);
}
}
nt_status = cli_full_connection(&c, global_myname(), server,
&ss, 0,
share, "?????",
- get_cmdline_auth_info_username(),
+ get_cmdline_auth_info_username(smbcquotas_auth_info),
lp_workgroup(),
- get_cmdline_auth_info_password(),
+ get_cmdline_auth_info_password(smbcquotas_auth_info),
flags,
- get_cmdline_auth_info_signing_state(),
+ get_cmdline_auth_info_signing_state(smbcquotas_auth_info),
NULL);
if (!NT_STATUS_IS_OK(nt_status)) {
DEBUG(0,("cli_full_connection failed! (%s)\n", nt_errstr(nt_status)));
return NULL;
}
- if (get_cmdline_auth_info_smb_encrypt()) {
+ if (get_cmdline_auth_info_smb_encrypt(smbcquotas_auth_info)) {
nt_status = cli_cm_force_encryption(c,
- get_cmdline_auth_info_username(),
- get_cmdline_auth_info_password(),
+ get_cmdline_auth_info_username(smbcquotas_auth_info),
+ get_cmdline_auth_info_password(smbcquotas_auth_info),
lp_workgroup(),
share);
if (!NT_STATUS_IS_OK(nt_status)) {
@@ -475,6 +476,12 @@ FSQFLAGS:QUOTA_ENABLED/DENY_DISK/LOG_SOFTLIMIT/LOG_HARD_LIMIT", "SETSTRING" },
lp_load(get_dyn_CONFIGFILE(),True,False,False,True);
load_interfaces();
+ smbcquotas_auth_info = user_auth_info_init(frame);
+ if (smbcquotas_auth_info == NULL) {
+ exit(1);
+ }
+ popt_common_set_auth_info(smbcquotas_auth_info);
+
pc = poptGetContext("smbcquotas", argc, argv, long_options, 0);
poptSetOtherOptionHelp(pc, "//server1/share1");
@@ -537,7 +544,8 @@ FSQFLAGS:QUOTA_ENABLED/DENY_DISK/LOG_SOFTLIMIT/LOG_HARD_LIMIT", "SETSTRING" },
todo = USER_QUOTA;
if (!fix_user) {
- username_str = talloc_strdup(frame, get_cmdline_auth_info_username());
+ username_str = talloc_strdup(
+ frame, get_cmdline_auth_info_username(smbcquotas_auth_info));
if (!username_str) {
exit(EXIT_PARSE_ERROR);
}
diff --git a/source3/utils/smbfilter.c b/source3/utils/smbfilter.c
index d274e092990..1e22a402013 100644
--- a/source3/utils/smbfilter.c
+++ b/source3/utils/smbfilter.c
@@ -212,7 +212,7 @@ static void start_filter(char *desthost)
/* start listening on port 445 locally */
- zero_addr(&my_ss);
+ zero_sockaddr(&my_ss);
s = open_socket_in(SOCK_STREAM, 445, 0, &my_ss, True);
if (s == -1) {
diff --git a/source3/utils/smbtree.c b/source3/utils/smbtree.c
index 9fc02bac13a..6c69300e85b 100644
--- a/source3/utils/smbtree.c
+++ b/source3/utils/smbtree.c
@@ -272,7 +272,7 @@ static bool print_tree(struct user_auth_info *user_info)
int main(int argc,char *argv[])
{
TALLOC_CTX *frame = talloc_stackframe();
- struct user_auth_info local_auth_info;
+ struct user_auth_info *auth_info;
struct poptOption long_options[] = {
POPT_AUTOHELP
{ "broadcast", 'b', POPT_ARG_VAL, &use_bcast, True, "Use broadcast instead of using the master browser" },
@@ -293,6 +293,12 @@ static bool print_tree(struct user_auth_info *user_info)
setup_logging(argv[0],True);
+ auth_info = user_auth_info_init(frame);
+ if (auth_info == NULL) {
+ exit(1);
+ }
+ popt_common_set_auth_info(auth_info);
+
pc = poptGetContext("smbtree", argc, (const char **)argv, long_options,
POPT_CONTEXT_KEEP_FIRST);
while(poptGetNextOpt(pc) != -1);
@@ -303,26 +309,22 @@ static bool print_tree(struct user_auth_info *user_info)
/* Parse command line args */
- if (get_cmdline_auth_info_use_machine_account() &&
- !set_cmdline_auth_info_machine_account_creds()) {
+ if (get_cmdline_auth_info_use_machine_account(auth_info) &&
+ !set_cmdline_auth_info_machine_account_creds(auth_info)) {
TALLOC_FREE(frame);
return 1;
}
- if (!get_cmdline_auth_info_got_pass()) {
+ if (!get_cmdline_auth_info_got_pass(auth_info)) {
char *pass = getpass("Password: ");
if (pass) {
- set_cmdline_auth_info_password(pass);
+ set_cmdline_auth_info_password(auth_info, pass);
}
}
/* Now do our stuff */
- if (!get_cmdline_auth_info_copy(&local_auth_info)) {
- return 1;
- }
-
- if (!print_tree(&local_auth_info)) {
+ if (!print_tree(auth_info)) {
TALLOC_FREE(frame);
return 1;
}