From: Gerald Carter Date: Thu, 9 Dec 1999 07:06:12 +0000 (+0000) Subject: OK. This code works on a RedHat 6.0 system. However smbpasswd X-Git-Tag: samba-4.0.0alpha6~801^2~20422 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=12ca139d5cb79f7e61a84d7dfe8a4c64ed56d82b;p=thirdparty%2Fsamba.git 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) --- diff --git a/source3/lib/util.c b/source3/lib/util.c index 9a9f87d4737..65908ff19ee 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 49772cd37ad..50bf54d02c3 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 f935b530444..fcca3e44fff 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 3b87687c261..a1a870a674a 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");