- use the current dialect first, for servers that only look at the
authorAndrew Tridgell <tridge@samba.org>
Thu, 25 Sep 2008 00:26:42 +0000 (17:26 -0700)
committerAndrew Tridgell <tridge@samba.org>
Thu, 25 Sep 2008 01:10:23 +0000 (18:10 -0700)
first dialect

- allow override of SMB2 port in client code

source4/libcli/smb2/connect.c

index 43151943d32ff309ab7ae0ac0e5a0a8efb861d88..e0b75a2542ea322915feb967c8d27db18acd8c19 100644 (file)
@@ -27,6 +27,7 @@
 #include "libcli/composite/composite.h"
 #include "libcli/resolve/resolve.h"
 #include "param/param.h"
+#include "lib/cmdline/popt_common.h"
 
 struct smb2_connect_state {
        struct cli_credentials *credentials;
@@ -184,8 +185,8 @@ static void continue_socket(struct composite_context *creq)
        }
        state->negprot.in.capabilities  = 0;
        unix_to_nt_time(&state->negprot.in.start_time, time(NULL));
-       dialects[0] = 0;
-       dialects[1] = SMB2_DIALECT_REVISION;
+       dialects[0] = SMB2_DIALECT_REVISION;
+       dialects[1] = 0;
        state->negprot.in.dialects = dialects;
 
        req = smb2_negprot_send(transport, &state->negprot);
@@ -206,7 +207,13 @@ static void continue_resolve(struct composite_context *creq)
        struct smb2_connect_state *state = talloc_get_type(c->private_data, 
                                                           struct smb2_connect_state);
        const char *addr;
-       const char *ports[2] = { "445", NULL };
+       const char **ports;
+       const char *default_ports[] = { "445", NULL };
+
+       ports = lp_parm_string_list(state, cmdline_lp_ctx, NULL, "smb2", "ports", NULL);
+       if (ports == NULL) {
+               ports = default_ports;
+       }
 
        c->status = resolve_name_recv(creq, state, &addr);
        if (!composite_is_ok(c)) return;