[Samba] Patches for samba 3.0.0 client/client.c

Keith Mok ek9852 at yahoo.com.hk
Sun Oct 26 18:16:49 GMT 2003


Patch against samba 3.0.0 client/client.c

Mainly for -L parameter options

1.) Add a configurable connection delay. The default is too long.
Add  items to long_options of poptOption  for help message, however I 
just put something "i.e. CONNSETUP" to the last parameter of 
long_options. It seems for use of documentation ????

2.) Remark the code that require list_servers must using port 139.
It seems that 445 can also used.. Also a user may be forced to make a 
connection to port 139, however he may wants to use port 445 only.

3.) Add OS, Domain and server name display for -L option. (Just copy 
from do_connect debug message). It is better to let user always know is 
the os of the remote machine.


Keith Mok

=========================================

--- client.c.orig    2003-10-27 01:38:55.000000000 +0800
+++ client.c    2003-10-27 01:38:37.000000000 +0800
@@ -49,6 +49,8 @@
static int process_tok(fstring tok);
static int cmd_help(void);

+static int connect_timeout = 20*1000;
+
/* 30 second timeout on most commands */
#define CLIENT_TIMEOUT (30*1000)
#define SHORT_TIMEOUT (5*1000)
@@ -2533,7 +2535,9 @@
    if (have_ip) ip = dest_ip;

    /* have to open a new connection */
-    if (!(c=cli_initialise(NULL)) || (cli_set_port(c, port) != port) ||
+
+    if (!(c=cli_initialise(NULL)) || !(c->timeout = connect_timeout) ||
+        (cli_set_port(c, port) != port) ||
        !cli_connect(c, server_n, &ip)) {
        d_printf("Connection to %s failed\n", server_n);
        return NULL;
@@ -2650,22 +2654,33 @@
    if (!cli)
        return 1;

+    if (*cli->server_domain) {
+        printf("Domain=[%s] OS=[%s] Server=[%s]\n",
+            cli->server_domain,cli->server_os,cli->server_type);
+    } else if (*cli->server_os || *cli->server_type){
+        printf("OS=[%s] Server=[%s]\n",
+            cli->server_os,cli->server_type);
+    }       +       browse_host(True);

+    /*
    if (port != 139) {
-
-        /* Workgroups simply don't make sense over anything
-           else but port 139... */
+   +        ==== Seems not true ???? ====
+         Workgroups simply don't make sense over anything
+         else but port 139...

        cli_shutdown(cli);
        port = 139;
        cli = do_connect(query_host, "IPC$");
    }
-
+       if (cli == NULL) {
        d_printf("NetBIOS over TCP disabled -- no workgroup available\n");
        return 1;
    }
+    */

    list_servers(lp_workgroup());

@@ -2721,8 +2736,9 @@

        zero_ip(&ip);
    if (have_ip) ip = dest_ip;
-
-    if (!(cli=cli_initialise(NULL)) || (cli_set_port(cli, port) != 
port) ||
+   +    if (!(cli=cli_initialise(NULL)) || !(cli->timeout = 
connect_timeout) ||
+        (cli_set_port(cli, port) != port) ||
        !cli_connect(cli, server_name, &ip)) {
        d_printf("Connection to %s failed\n", desthost);
        return 1;
@@ -2795,6 +2811,7 @@
        { "command", 'c', POPT_ARG_STRING, &cmdstr, 'c', "Execute 
semicolon separated commands" },
        { "send-buffer", 'b', POPT_ARG_INT, &io_bufsize, 'b', "Changes 
the transmit/send buffer", "BYTES" },
        { "port", 'p', POPT_ARG_INT, &port, 'p', "Port to connect to", 
"PORT" },
+        { "conn_timeout", 'e', POPT_ARG_INT, &connect_timeout, 'e', 
"Connection timeout in millisecond", "CONNTIMEOUT" },
        POPT_COMMON_SAMBA
        POPT_COMMON_CONNECTION
        POPT_COMMON_CREDENTIALS









More information about the samba mailing list