diff options
Diffstat (limited to 'source3')
-rw-r--r-- | source3/lib/util.c | 11 | ||||
-rw-r--r-- | source3/libsmb/clientgen.c | 6 | ||||
-rw-r--r-- | source3/rpc_client/cli_connect.c | 2 | ||||
-rw-r--r-- | source3/utils/smbpasswd.c | 2 |
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"); |