s3:libsmb: pass an optional const struct sockaddr_storage *dest_ss to cli_cm_open()
authorStefan Metzmacher <metze@samba.org>
Wed, 21 Jun 2017 14:03:32 +0000 (16:03 +0200)
committerStefan Metzmacher <metze@samba.org>
Mon, 18 Feb 2019 11:47:34 +0000 (12:47 +0100)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
source3/client/client.c
source3/lib/netapi/cm.c
source3/libsmb/clidfs.c
source3/libsmb/proto.h

index 9db8ff657177d969ff5cedccf76de4405e5f6917..3a971286b4fa4066217343615c0292b79f9de867 100644 (file)
@@ -84,7 +84,6 @@ bool lowercase = false;
 static bool backup_intent = false;
 
 static struct sockaddr_storage dest_ss;
-static char dest_ss_str[INET6_ADDRSTRLEN];
 
 #define SEPARATORS " \t\n\r"
 
@@ -5703,7 +5702,7 @@ static int process_command_string(const char *cmd_in)
                NTSTATUS status;
 
                status = cli_cm_open(talloc_tos(), NULL,
-                                    have_ip ? dest_ss_str : desthost,
+                                    desthost, have_ip ? &dest_ss : NULL,
                                     service, popt_get_cmdline_auth_info(),
                                     smb_encrypt,
                                     max_protocol, port, name_type,
@@ -6146,7 +6145,7 @@ static int process(const char *base_directory)
        NTSTATUS status;
 
        status = cli_cm_open(talloc_tos(), NULL,
-                            have_ip ? dest_ss_str : desthost,
+                            desthost, have_ip ? &dest_ss : NULL,
                             service, popt_get_cmdline_auth_info(),
                             smb_encrypt, max_protocol, port,
                             name_type, &cli);
@@ -6183,7 +6182,7 @@ static int do_host_query(const char *query_host)
        NTSTATUS status;
 
        status = cli_cm_open(talloc_tos(), NULL,
-                            have_ip ? dest_ss_str : query_host,
+                            desthost, have_ip ? &dest_ss : NULL,
                             "IPC$", popt_get_cmdline_auth_info(),
                             smb_encrypt, max_protocol, port,
                             name_type, &cli);
@@ -6229,7 +6228,7 @@ static int do_host_query(const char *query_host)
                cli_shutdown(cli);
                d_printf("Reconnecting with SMB1 for workgroup listing.\n");
                status = cli_cm_open(talloc_tos(), NULL,
-                                    have_ip ? dest_ss_str : query_host,
+                                    desthost, have_ip ? &dest_ss : NULL,
                                     "IPC$", popt_get_cmdline_auth_info(),
                                     smb_encrypt, max_proto,
                                     NBT_SMB_PORT, name_type, &cli);
@@ -6262,7 +6261,7 @@ static int do_tar_op(const char *base_directory)
                NTSTATUS status;
 
                status = cli_cm_open(talloc_tos(), NULL,
-                                    have_ip ? dest_ss_str : desthost,
+                                    desthost, have_ip ? &dest_ss : NULL,
                                     service, popt_get_cmdline_auth_info(),
                                     smb_encrypt, max_protocol,
                                     port, name_type, &cli);
@@ -6545,7 +6544,6 @@ int main(int argc,char *argv[])
                                        exit(1);
                                }
                                have_ip = true;
-                               print_sockaddr(dest_ss_str, sizeof(dest_ss_str), &dest_ss);
                        }
                        break;
                case 'E':
index 95132f28f05c64a82166a86371c75ce6cb3ba85e..c9d9b9bfac5f6a01db103ead0c59493c96544caf 100644 (file)
@@ -108,7 +108,7 @@ static WERROR libnetapi_open_ipc_connection(struct libnetapi_ctx *ctx,
        }
 
        status = cli_cm_open(ctx, NULL,
-                            server_name, "IPC$",
+                            server_name, NULL, "IPC$",
                             auth_info,
                             false,
                             lp_client_ipc_max_protocol(),
index 173cea8ef4f6e692705b7ab21c4641ba9d845d4d..d0b0e9465df58474c7e6fb532a2567e5473e07db 100644 (file)
@@ -424,6 +424,7 @@ static struct cli_state *cli_cm_find(struct cli_state *cli,
 NTSTATUS cli_cm_open(TALLOC_CTX *ctx,
                                struct cli_state *referring_cli,
                                const char *server,
+                               const struct sockaddr_storage *dest_ss,
                                const char *share,
                                const struct user_auth_info *auth_info,
                                bool force_encrypt,
@@ -453,7 +454,7 @@ NTSTATUS cli_cm_open(TALLOC_CTX *ctx,
        status = cli_cm_connect(ctx,
                                referring_cli,
                                server,
-                               NULL,
+                               dest_ss,
                                share,
                                auth_info,
                                force_encrypt,
index 2fae76aa633657fbf27f1127594b402080478f52..cdca2f5674ea2b979cfb1d3d7aebff244f06a756 100644 (file)
@@ -146,6 +146,7 @@ NTSTATUS cli_cm_force_encryption(struct cli_state *c,
 NTSTATUS cli_cm_open(TALLOC_CTX *ctx,
                                struct cli_state *referring_cli,
                                const char *server,
+                               const struct sockaddr_storage *dest_ss,
                                const char *share,
                                const struct user_auth_info *auth_info,
                                bool force_encrypt,