Putting back the -p flag in smbclient.
authorRichard Sharpe <sharpe@samba.org>
Mon, 25 Jan 1999 01:46:14 +0000 (01:46 +0000)
committerRichard Sharpe <sharpe@samba.org>
Mon, 25 Jan 1999 01:46:14 +0000 (01:46 +0000)
However, it seems that the -s flag
in smbclient is also ignored :-(

source/client/client.c
source/include/client.h
source/libsmb/clientgen.c
source/smbd/ssl.c

index 8d6e8a4b3c90c406f9e9c23c5ea6d55747bc5182..afee7dbbd390c273316372c0bb523249c5880fce 100644 (file)
@@ -29,6 +29,7 @@
 
 struct cli_state *cli;
 extern BOOL in_client;
+static int port = SMB_PORT;
 pstring cur_dir = "\\";
 pstring cd_path = "";
 static pstring service;
@@ -1642,12 +1643,16 @@ struct cli_state *do_connect(char *server, char *share)
        make_nmb_name(&calling, global_myname, 0x0, "");
        make_nmb_name(&called , server, name_type, "");
 
+       if (port == 0)
+         port = 139;   /* If not set, set to 139, FIXME, NUMBERS BAD */
+
  again:
        ip = ipzero;
        if (have_ip) ip = dest_ip;
 
        /* have to open a new connection */
-       if (!(c=cli_initialise(NULL)) || !cli_connect(c, server_n, &ip)) {
+       if (!(c=cli_initialise(NULL)) || (cli_set_port(c, port) == 0) ||
+            !cli_connect(c, server_n, &ip)) {
                DEBUG(0,("Connection to %s failed\n", server_n));
                return NULL;
        }
@@ -1909,7 +1914,6 @@ static int do_message_op(void)
 {
        fstring base_directory;
        char *pname = argv[0];
-       int port = SMB_PORT;
        int opt;
        extern FILE *dbf;
        extern char *optarg;
index 25f8436079c7f14a4193ee49185736a103f5517f..89bcf49248b7dffd61c5cc0c77addf367bac4576 100644 (file)
@@ -72,6 +72,7 @@ struct pwd_info
 };
 
 struct cli_state {
+       int port;
        int fd;
        uint16 cnum;
        uint16 pid;
index e269011402d07cbc968a76f9061a28fa512cc256..a1a5bbf0a9e98636b7a9d7e7c1e5410c2cf6560d 100644 (file)
 
 extern int DEBUGLEVEL;
 
+/* 
+ * set the port that will be used for connections by the client
+ */
+
+int cli_set_port(struct cli_state *cli, int port)
+{
+
+       if (port != 0)
+         cli -> port = port;
+
+       return cli -> port;   /* return it incase caller wants it */
+
+}
 
 /****************************************************************************
 recv an smb
@@ -2355,8 +2368,10 @@ BOOL cli_connect(struct cli_state *cli, const char *host, struct in_addr *ip)
        }
 
 
+       if (cli -> port == 0) cli -> port = 139;
+
        cli->fd = open_socket_out(SOCK_STREAM, &cli->dest_ip, 
-                                 139, cli->timeout);
+                                 cli -> port, cli->timeout);
        if (cli->fd == -1)
                return False;
 
@@ -2382,6 +2397,7 @@ struct cli_state *cli_initialise(struct cli_state *cli)
 
        ZERO_STRUCTP(cli);
 
+       cli -> port = 0;
        cli->fd = -1;
        cli->cnum = -1;
        cli->pid = (uint16)getpid();
index 1c953272c3bc4716c3001fa20ac16b56a14edcfe..1f098b2533d9345ad893386b3d76eb6c4d618865 100644 (file)
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
+#include "includes.h"
+
+/*
+ * Hmmm, only check on WITH_SSL after we have included includes.h
+ * which pulls in config.h which is where WITH_SSL is defined, if 
+ * at all :-)
+ */
+
 #ifdef WITH_SSL  /* should always be defined if this module is compiled */
 
-#include "includes.h"
 #include <ssl.h>
 #include <err.h>