r26406: Make a copy to prevent modification of the loadparm configuration.
[samba.git] / source4 / lib / socket / connect.c
index 4a30fa3b92c7b433dea4af603df95f0a7df65bb2..773bf4187358f127fd3269b2b6c70ed4b3ea9d42 100644 (file)
@@ -85,6 +85,7 @@ struct composite_context *socket_connect_send(struct socket_context *sock,
                                              struct socket_address *my_address,
                                              struct socket_address *server_address, 
                                              uint32_t flags,
+                                             struct resolve_context *resolve_ctx,
                                              struct event_context *event_ctx)
 {
        struct composite_context *result;
@@ -122,12 +123,11 @@ struct composite_context *socket_connect_send(struct socket_context *sock,
 
        set_blocking(socket_get_fd(sock), false);
 
-       if (server_address->addr && strcmp(sock->backend_name, "ipv4") == 0) {
+       if (resolve_ctx != NULL && server_address->addr && strcmp(sock->backend_name, "ipv4") == 0) {
                struct nbt_name name;
                struct composite_context *creq;
                make_nbt_name_client(&name, server_address->addr);
-               creq = resolve_name_send(&name, result->event_ctx,
-                                        lp_name_resolve_order(global_loadparm));
+               creq = resolve_name_send(resolve_ctx, &name, result->event_ctx);
                if (composite_nomem(creq, result)) return result;
                composite_continue(result, creq, continue_resolve_name, result);
                return result;
@@ -206,10 +206,11 @@ NTSTATUS socket_connect_recv(struct composite_context *result)
 NTSTATUS socket_connect_ev(struct socket_context *sock,
                           struct socket_address *my_address,
                           struct socket_address *server_address, 
-                          uint32_t flags, struct event_context *ev)
+                          uint32_t flags, struct resolve_context *resolve_ctx,
+                          struct event_context *ev)
 {
        struct composite_context *ctx;
        ctx = socket_connect_send(sock, my_address, 
-                                 server_address, flags, ev);
+                                 server_address, flags, resolve_ctx, ev);
        return socket_connect_recv(ctx);
 }