r26397: Fix circular dependency in samba-socket.
authorJelmer Vernooij <jelmer@samba.org>
Tue, 11 Dec 2007 12:38:54 +0000 (13:38 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 21 Dec 2007 04:49:26 +0000 (05:49 +0100)
(This used to be commit 801c8c766cb6a104751be8829593e0e123508134)

source4/auth/kerberos/krb5_init_context.c
source4/lib/socket/config.mk
source4/lib/socket/connect.c
source4/lib/socket/testsuite.c
source4/libcli/config.mk
source4/libcli/ldap/config.mk
source4/libcli/resolve/resolve.c
source4/libcli/resolve/resolve.h
source4/libcli/resolve/resolve_lp.c [new file with mode: 0644]
source4/librpc/config.mk

index d0bc383ea0fda2b8b43a6e66c1055d50ebea188b..acf26cdbe2701f68dabe9f083da098741469c4da 100644 (file)
@@ -278,7 +278,7 @@ krb5_error_code smb_krb5_send_and_recv_func(krb5_context context,
                }
 
                status = socket_connect_ev(smb_krb5->sock, NULL, remote_addr, 0, 
-                                          lp_resolve_context(global_loadparm), ev); 
+                                          NULL, ev); 
                if (!NT_STATUS_IS_OK(status)) {
                        talloc_free(smb_krb5);
                        continue;
index d1e0bcfef5430fa5e78fd13196882d02ba2e3a6c..fe64c90b818783b6a0224dfc93133a1a5eb0eda5 100644 (file)
@@ -39,9 +39,7 @@ OBJ_FILES = \
                access.o \
                connect_multi.o \
                connect.o
-LDFLAGS = $(SUBSYSTEM_LIBCLI_RESOLVE_OUTPUT) $(SUBSYSTEM_LIBCLI_NBT_OUTPUT) $(SUBSYSTEM_NDR_NBT_OUTPUT) $(LIBRARY_NDR_SVCCTL_OUTPUT)
 PUBLIC_DEPENDENCIES = LIBTALLOC
-PRIVATE_DEPENDENCIES = SOCKET_WRAPPER LIBCLI_COMPOSITE 
-#LIBCLI_RESOLVE
+PRIVATE_DEPENDENCIES = SOCKET_WRAPPER LIBCLI_COMPOSITE LIBCLI_RESOLVE
 # End SUBSYSTEM SOCKET
 ################################################
index e70d091275487adf1c2e7c6c6d4081e028055322..bc3aca3c225ce667a64d15604052a9a2dc014668 100644 (file)
@@ -123,7 +123,7 @@ 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 && 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);
index 874508aaa7d674ad7382e5858495c52a1350c22c..edbe617aa0cdaf31c2351ea535cb88e9d10fc907 100644 (file)
@@ -147,7 +147,7 @@ static bool test_tcp(struct torture_context *tctx)
 
        torture_comment(tctx, "server port is %d\n", srv_addr->port);
 
-       status = socket_connect_ev(sock2, NULL, srv_addr, 0, lp_resolve_context(tctx->lp_ctx), ev);
+       status = socket_connect_ev(sock2, NULL, srv_addr, 0, NULL, ev);
        torture_assert_ntstatus_ok(tctx, status, "connect() on socket 2");
 
        status = socket_accept(sock1, &sock3);
index 3bfc1478bc3bcd26074d8291625683cafcada425..4af6a9ac451a820ba31bb90dbd4aeac6adccf3bb 100644 (file)
@@ -96,13 +96,18 @@ PUBLIC_DEPENDENCIES = NDR_WINSREPL samba-socket LIBCLI_RESOLVE LIBEVENTS LIBPACK
 [SUBSYSTEM::LIBCLI_RESOLVE]
 PRIVATE_PROTO_HEADER = resolve/proto.h
 OBJ_FILES = \
-       resolve/resolve.o \
+       resolve/resolve.o
+PUBLIC_DEPENDENCIES = NDR_NBT
+
+[SUBSYSTEM::LP_RESOLVE]
+PRIVATE_PROTO_HEADER = resolve/lp_proto.h
+OBJ_FILES = \
        resolve/bcast.o \
        resolve/nbtlist.o \
        resolve/wins.o \
-       resolve/host.o
-PUBLIC_DEPENDENCIES = LIBNETIF
-PRIVATE_DEPENDENCIES = LIBCLI_NBT 
+       resolve/host.o \
+       resolve/resolve_lp.o
+PRIVATE_DEPENDENCIES = LIBCLI_NBT LIBSAMBA-CONFIG LIBNETIF 
 
 [SUBSYSTEM::LIBCLI_FINDDCS]
 PRIVATE_PROTO_HEADER = finddcs.h
index 444306b328b9767c467224490451a7fef097174e..4af0f9de6dc6619cce1241d3fba72948d32ef247 100644 (file)
@@ -9,7 +9,7 @@ OBJ_FILES = ldap.o \
                ldap_controls.o
 PUBLIC_DEPENDENCIES = LIBSAMBA-ERRORS LIBEVENTS LIBPACKET 
 PRIVATE_DEPENDENCIES = LIBCLI_COMPOSITE samba-socket NDR_SAMR LIBTLS ASN1_UTIL \
-                                          LDAP_ENCODE LIBNDR
+                                          LDAP_ENCODE LIBNDR LP_RESOLVE
 
 
 [SUBSYSTEM::LDAP_ENCODE]
index fe36aa59ea5926d0c39c47a74c13a7e0f9298443..33ace094432a261726926cbaf30fb4c3220d172e 100644 (file)
@@ -228,26 +228,4 @@ void make_nbt_name_server(struct nbt_name *nbt, const char *name)
        make_nbt_name(nbt, name, NBT_NAME_SERVER);
 }
 
-struct resolve_context *lp_resolve_context(struct loadparm_context *lp_ctx)
-{
-       const char **methods = lp_name_resolve_order(lp_ctx);
-       int i;
-       struct resolve_context *ret = resolve_context_init(lp_ctx);
-
-       if (ret == NULL)
-               return NULL;
-
-       for (i = 0; methods != NULL && methods[i] != NULL; i++) {
-               if (!strcmp(methods[i], "wins")) {
-                       resolve_context_add_wins_method(ret, lp_wins_server_list(lp_ctx));
-               } else if (!strcmp(methods[i], "bcast")) {
-                       resolve_context_add_bcast_method(ret, lp_ctx);
-               } else if (!strcmp(methods[i], "host")) {
-                       resolve_context_add_host_method(ret);
-               } else {
-                       DEBUG(0, ("Unknown resolve method '%s'\n", methods[i]));
-               }
-       }
 
-       return ret;
-}
index 73cb78c12412388548ba6c16911fd6757efb1c3e..9282074aa4de16484693b27ab418dd901727ce4a 100644 (file)
@@ -26,5 +26,6 @@
 typedef struct composite_context *(*resolve_name_send_fn)(TALLOC_CTX *mem_ctx, struct event_context *, void *privdata, struct nbt_name *);
 typedef NTSTATUS (*resolve_name_recv_fn)(struct composite_context *, TALLOC_CTX *, const char **);
 #include "libcli/resolve/proto.h"
+#include "libcli/resolve/lp_proto.h"
 
 #endif /* __RESOLVE_H__ */
diff --git a/source4/libcli/resolve/resolve_lp.c b/source4/libcli/resolve/resolve_lp.c
new file mode 100644 (file)
index 0000000..5a506dc
--- /dev/null
@@ -0,0 +1,46 @@
+/* 
+   Unix SMB/CIFS implementation.
+   Samba utility functions
+   Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007
+   
+   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 3 of the License, or
+   (at your option) any later version.
+   
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   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, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "libcli/resolve/resolve.h"
+#include "param/param.h"
+
+struct resolve_context *lp_resolve_context(struct loadparm_context *lp_ctx)
+{
+       const char **methods = lp_name_resolve_order(lp_ctx);
+       int i;
+       struct resolve_context *ret = resolve_context_init(lp_ctx);
+
+       if (ret == NULL)
+               return NULL;
+
+       for (i = 0; methods != NULL && methods[i] != NULL; i++) {
+               if (!strcmp(methods[i], "wins")) {
+                       resolve_context_add_wins_method(ret, lp_wins_server_list(lp_ctx));
+               } else if (!strcmp(methods[i], "bcast")) {
+                       resolve_context_add_bcast_method(ret, lp_ctx);
+               } else if (!strcmp(methods[i], "host")) {
+                       resolve_context_add_host_method(ret);
+               } else {
+                       DEBUG(0, ("Unknown resolve method '%s'\n", methods[i]));
+               }
+       }
+
+       return ret;
+}
index 187ba9f309d9b2f3b4539b974d159d332d19a09c..ff430047804ed760245d91b8a9e5724e9e26e5d4 100644 (file)
@@ -487,7 +487,8 @@ PRIVATE_DEPENDENCIES = \
                samba-socket LIBCLI_RESOLVE LIBCLI_SMB LIBCLI_SMB2 \
                LIBNDR NDR_DCERPC RPC_NDR_EPMAPPER \
                NDR_SCHANNEL RPC_NDR_NETLOGON \
-               gensec LIBCLI_AUTH LIBCLI_RAW CREDENTIALS
+               gensec LIBCLI_AUTH LIBCLI_RAW CREDENTIALS \
+               LP_RESOLVE
 # End SUBSYSTEM dcerpc
 ################################################