summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>1999-12-09 07:06:12 +0000
committerGerald Carter <jerry@samba.org>1999-12-09 07:06:12 +0000
commit12ca139d5cb79f7e61a84d7dfe8a4c64ed56d82b (patch)
tree4d388df2e748510594c5d6f09bf22fe2af4d5682
parentd45f5cf6b055f72ad30d5ae2b2fd7f42dbab1ed2 (diff)
downloadsamba-12ca139d5cb79f7e61a84d7dfe8a4c64ed56d82b.tar.gz
samba-12ca139d5cb79f7e61a84d7dfe8a4c64ed56d82b.tar.bz2
samba-12ca139d5cb79f7e61a84d7dfe8a4c64ed56d82b.zip
OK. This code works on a RedHat 6.0 system. However smbpasswd
time out of sending the session setup on Solaris 2.6. No idea. I'll work on it some tomorrow. This is to fix the "Unable to setup password vectors" thingy. Also changed an inet_aton() to inet_addr() as the former is not very portable :-) Luke, I set the redir flag to false because the connection to the smb-agent was failing and smbpasswd bombed. Double check me on this one. -jc (This used to be commit e1d2b174caf5f0c48a8fac25778f72a868ec6eb7)
-rw-r--r--source3/lib/util.c11
-rw-r--r--source3/libsmb/clientgen.c6
-rw-r--r--source3/rpc_client/cli_connect.c2
-rw-r--r--source3/utils/smbpasswd.c2
4 files changed, 16 insertions, 5 deletions
diff --git a/source3/lib/util.c b/source3/lib/util.c
index 9a9f87d473..65908ff19e 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -3234,11 +3234,18 @@ char *get_trusted_serverlist(const char* domain)
static char *server_list = NULL;
static pstring srv_list;
char *trusted_list = lp_trusted_domains();
+ int my_role = lp_server_role();
if (strequal(lp_workgroup(), domain))
{
- DEBUG(10,("local domain server list: %s\n", server_list));
- pstrcpy(srv_list, lp_passwordserver());
+ if ((my_role == ROLE_DOMAIN_PDC) || (my_role == ROLE_DOMAIN_NONE)) {
+ pstrcpy(srv_list,global_myname);
+ }
+ /* we must be a BDC or MEMBER if we execute this branch */
+ else {
+ pstrcpy(srv_list, lp_passwordserver());
+ }
+ DEBUG(10,("local domain server list: %s\n", srv_list));
return srv_list;
}
diff --git a/source3/libsmb/clientgen.c b/source3/libsmb/clientgen.c
index 49772cd37a..50bf54d02c 100644
--- a/source3/libsmb/clientgen.c
+++ b/source3/libsmb/clientgen.c
@@ -1337,7 +1337,9 @@ int cli_nt_create(struct cli_state *cli, const char *fname)
pstrcpy(p,fname);
p = skip_string(p,1);
- cli_send_smb(cli, True);
+ if (!cli_send_smb(cli, True)) {
+ return -1;
+ }
if (!cli_receive_smb(cli)) {
return -1;
}
@@ -2945,7 +2947,7 @@ static int cli_init_redirect(struct cli_state *cli,
if (strequal(srv_name, "*SMBSERVER"))
{
fstrcpy(ip_name, "\\\\");
- inet_aton(&ip_name[2], destip);
+ destip->s_addr = inet_addr(&ip_name[2]);
srv_name = ip_name;
}
diff --git a/source3/rpc_client/cli_connect.c b/source3/rpc_client/cli_connect.c
index f935b53044..fcca3e44ff 100644
--- a/source3/rpc_client/cli_connect.c
+++ b/source3/rpc_client/cli_connect.c
@@ -96,7 +96,7 @@ static struct cli_connection *cli_con_get(const char* srv_name,
con->pipe_name = strdup(pipe_name);
}
- con->cli = cli_net_use_add(srv_name, usr_creds, True, reuse);
+ con->cli = cli_net_use_add(srv_name, usr_creds, False, reuse);
if (con->cli == NULL)
{
diff --git a/source3/utils/smbpasswd.c b/source3/utils/smbpasswd.c
index 3b87687c26..a1a870a674 100644
--- a/source3/utils/smbpasswd.c
+++ b/source3/utils/smbpasswd.c
@@ -794,6 +794,8 @@ int main(int argc, char **argv)
load_interfaces();
+ init_policy_hnd(64);
+
if(!pwdb_initialise(False))
{
fprintf(stderr, "Can't setup password database vectors.\n");