Add context for libcli_resolve.
[samba-svnmirror.git] / source / libcli / cliconnect.c
index d89d6a15681c99c75f49ff97bb28570469a19bcd..d70f592d9d1ef495a787a448a1ec416711e59c66 100644 (file)
@@ -8,7 +8,7 @@
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -17,8 +17,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "includes.h"
 #include "libcli/raw/libcliraw.h"
 #include "libcli/auth/libcli_auth.h"
 #include "libcli/smb_composite/smb_composite.h"
+#include "param/param.h"
 
 /*
   wrapper around smbcli_sock_connect()
 */
-BOOL smbcli_socket_connect(struct smbcli_state *cli, const char *server)
+bool smbcli_socket_connect(struct smbcli_state *cli, const char *server, 
+                          struct resolve_context *resolve_ctx,
+                          int max_xmit, int max_mux)
 {
        struct smbcli_socket *sock;
 
-       sock = smbcli_sock_connect_byname(server, 0, NULL, NULL);
+       sock = smbcli_sock_connect_byname(server, 0, NULL, resolve_ctx, 
+                                         NULL);
 
-       if (sock == NULL) return False;
+       if (sock == NULL) return false;
        
-       cli->transport = smbcli_transport_init(sock, cli, True);
+       cli->transport = smbcli_transport_init(sock, cli, true, max_xmit,
+                                              max_mux);
        if (!cli->transport) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 /* wrapper around smbcli_transport_connect() */
-BOOL smbcli_transport_establish(struct smbcli_state *cli, 
+bool smbcli_transport_establish(struct smbcli_state *cli, 
                                struct nbt_name *calling,
                                struct nbt_name *called)
 {
@@ -55,9 +59,9 @@ BOOL smbcli_transport_establish(struct smbcli_state *cli,
 }
 
 /* wrapper around smb_raw_negotiate() */
-NTSTATUS smbcli_negprot(struct smbcli_state *cli)
+NTSTATUS smbcli_negprot(struct smbcli_state *cli, bool unicode, int maxprotocol)
 {
-       return smb_raw_negotiate(cli->transport, lp_maxprotocol());
+       return smb_raw_negotiate(cli->transport, unicode, maxprotocol);
 }
 
 /* wrapper around smb_raw_sesssetup() */
@@ -67,13 +71,13 @@ NTSTATUS smbcli_session_setup(struct smbcli_state *cli,
        struct smb_composite_sesssetup setup;
        NTSTATUS status;
 
-       cli->session = smbcli_session_init(cli->transport, cli, True);
+       cli->session = smbcli_session_init(cli->transport, cli, true);
        if (!cli->session) return NT_STATUS_UNSUCCESSFUL;
 
        setup.in.sesskey = cli->transport->negotiate.sesskey;
        setup.in.capabilities = cli->transport->negotiate.capabilities;
        setup.in.credentials = credentials;
-       setup.in.workgroup = lp_workgroup();
+       setup.in.workgroup = lp_workgroup(global_loadparm);
 
        status = smb_composite_sesssetup(cli->session, &setup);
 
@@ -90,7 +94,7 @@ NTSTATUS smbcli_tconX(struct smbcli_state *cli, const char *sharename,
        TALLOC_CTX *mem_ctx;
        NTSTATUS status;
 
-       cli->tree = smbcli_tree_init(cli->session, cli, True);
+       cli->tree = smbcli_tree_init(cli->session, cli, true);
        if (!cli->tree) return NT_STATUS_UNSUCCESSFUL;
 
        mem_ctx = talloc_init("tcon");
@@ -206,7 +210,7 @@ terminate_path_at_separator(char * path)
 /*
   parse a //server/share type UNC name
 */
-BOOL smbcli_parse_unc(const char *unc_name, TALLOC_CTX *mem_ctx,
+bool smbcli_parse_unc(const char *unc_name, TALLOC_CTX *mem_ctx,
                      char **hostname, char **sharename)
 {
        char *p;
@@ -215,25 +219,25 @@ BOOL smbcli_parse_unc(const char *unc_name, TALLOC_CTX *mem_ctx,
 
        if (strncmp(unc_name, "\\\\", 2) &&
            strncmp(unc_name, "//", 2)) {
-               return False;
+               return false;
        }
 
        *hostname = talloc_strdup(mem_ctx, &unc_name[2]);
        p = terminate_path_at_separator(*hostname);
 
-       if (p && *p) {
+       if (p != NULL && *p) {
                *sharename = talloc_strdup(mem_ctx, p);
                terminate_path_at_separator(*sharename);
        }
 
        if (*hostname && *sharename) {
-               return True;
+               return true;
        }
 
        talloc_free(*hostname);
        talloc_free(*sharename);
        *hostname = *sharename = NULL;
-       return False;
+       return false;
 }