Add context for libcli_resolve.
[samba-svnmirror.git] / source / librpc / rpc / dcerpc_sock.c
index e9c0c96be6cd08d2461c1e68106459159f8584f5..2e5a8388a1bb977fb5a7e7a9d06631c0799d6480 100644 (file)
@@ -332,7 +332,9 @@ static struct composite_context *dcerpc_pipe_open_socket_send(TALLOC_CTX *mem_ct
 
        talloc_steal(s->sock, s->socket_ctx);
 
-       conn_req = socket_connect_send(s->socket_ctx, NULL, s->server, 0, c->event_ctx);
+       conn_req = socket_connect_send(s->socket_ctx, NULL, s->server, 0, 
+                                      lp_resolve_context(global_loadparm), 
+                                      c->event_ctx);
        composite_continue(c, conn_req, continue_socket_connect, c);
        return c;
 }
@@ -452,7 +454,8 @@ static void continue_ipv4_open_socket(struct composite_context *ctx)
 struct composite_context* dcerpc_pipe_open_tcp_send(struct dcerpc_connection *conn,
                                                    const char *server,
                                                    const char *target_hostname,
-                                                   uint32_t port)
+                                                   uint32_t port,
+                                                   struct resolve_context *resolve_ctx)
 {
        struct composite_context *c;
        struct pipe_tcp_state *s;
@@ -478,8 +481,7 @@ struct composite_context* dcerpc_pipe_open_tcp_send(struct dcerpc_connection *co
        s->conn            = conn;
 
        make_nbt_name_server(&name, server);
-       resolve_req = resolve_name_send(&name, c->event_ctx, 
-                                       lp_name_resolve_order());
+       resolve_req = resolve_name_send(resolve_ctx, &name, c->event_ctx);
        composite_continue(c, resolve_req, continue_ip_resolve_name, c);
        return c;
 }
@@ -597,6 +599,7 @@ static void continue_np_open_socket(struct composite_context *ctx)
   Send pipe open request on ncalrpc
 */
 struct composite_context* dcerpc_pipe_open_pipe_send(struct dcerpc_connection *conn,
+                                                    const char *ncalrpc_dir,
                                                     const char *identifier)
 {
        char *canon = NULL;
@@ -619,7 +622,7 @@ struct composite_context* dcerpc_pipe_open_pipe_send(struct dcerpc_connection *c
        s->conn = conn;
 
        string_replace(canon, '/', '\\');
-       s->full_path = talloc_asprintf(canon, "%s/%s", lp_ncalrpc_dir(), canon);
+       s->full_path = talloc_asprintf(canon, "%s/%s", ncalrpc_dir, canon);
        if (composite_nomem(s->full_path, c)) return c;
 
        /* prepare server address using path and transport name */
@@ -648,8 +651,8 @@ NTSTATUS dcerpc_pipe_open_pipe_recv(struct composite_context *c)
 /*
   Open a rpc pipe on a named pipe - sync version
 */
-NTSTATUS dcerpc_pipe_open_pipe(struct dcerpc_connection *conn, const char *identifier)
+NTSTATUS dcerpc_pipe_open_pipe(struct dcerpc_connection *conn, const char *ncalrpc_dir, const char *identifier)
 {
-       struct composite_context *c = dcerpc_pipe_open_pipe_send(conn, identifier);
+       struct composite_context *c = dcerpc_pipe_open_pipe_send(conn, ncalrpc_dir, identifier);
        return dcerpc_pipe_open_pipe_recv(c);
 }