From: Stefan Metzmacher Date: Wed, 9 Apr 2025 14:54:36 +0000 (+0200) Subject: s3:libsmb: introduce smbsock_connect.h X-Git-Tag: tevent-0.17.0~253 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9f76585754a43ea175db0e21e08220ca9a23866f;p=thirdparty%2Fsamba.git s3:libsmb: introduce smbsock_connect.h Signed-off-by: Stefan Metzmacher Reviewed-by: Volker Lendecke --- diff --git a/examples/fuse/smb2mount.c b/examples/fuse/smb2mount.c index 3cc45c81323..0c97f32846c 100644 --- a/examples/fuse/smb2mount.c +++ b/examples/fuse/smb2mount.c @@ -24,6 +24,7 @@ #include "lib/param/param.h" #include "client.h" #include "libsmb/proto.h" +#include "libsmb/smbsock_connect.h" #include "clifuse.h" static struct cli_state *connect_one(struct cli_credentials *creds, diff --git a/examples/winexe/winexe.c b/examples/winexe/winexe.c index b09c57c1bf6..a296572eaae 100644 --- a/examples/winexe/winexe.c +++ b/examples/winexe/winexe.c @@ -32,6 +32,7 @@ #include "librpc/gen_ndr/ndr_svcctl_c.h" #include "rpc_client/cli_pipe.h" #include "libcli/smb/smbXcli_base.h" +#include "libsmb/smbsock_connect.h" #include "libcli/util/werror.h" #include "lib/async_req/async_sock.h" #include "lib/cmdline/cmdline.h" diff --git a/source3/client/client.c b/source3/client/client.c index a1991c1cd8c..e448ded6b6e 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -33,6 +33,7 @@ #include "../libcli/security/security.h" #include "system/select.h" #include "libsmb/libsmb.h" +#include "libsmb/smbsock_connect.h" #include "libsmb/clirap.h" #include "trans2.h" #include "libsmb/nmblib.h" diff --git a/source3/client/smbspool.c b/source3/client/smbspool.c index f58217331ab..56661b98336 100644 --- a/source3/client/smbspool.c +++ b/source3/client/smbspool.c @@ -27,6 +27,7 @@ #include "system/passwd.h" #include "system/kerberos.h" #include "libsmb/libsmb.h" +#include "libsmb/smbsock_connect.h" #include "lib/param/param.h" #include "lib/krb5_wrap/krb5_samba.h" diff --git a/source3/include/proto.h b/source3/include/proto.h index 7cf2572e6ee..e8dfb533b44 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -649,53 +649,6 @@ NTSTATUS sessionid_traverse_read(int (*fn)(const char *key, struct AvahiPoll *tevent_avahi_poll(TALLOC_CTX *mem_ctx, struct tevent_context *ev); -/* The following definitions come from libsmb/smbsock_connect.c */ - -struct smb_transports smbsock_transports_from_port(uint16_t port); - -struct tevent_req *smbsock_connect_send(TALLOC_CTX *mem_ctx, - struct tevent_context *ev, - const struct sockaddr_storage *addr, - const struct smb_transports *transports, - const char *called_name, - int called_type, - const char *calling_name, - int calling_type) - NONNULL(2) NONNULL(3) NONNULL(4); - -NTSTATUS smbsock_connect_recv(struct tevent_req *req, int *sock, - uint16_t *ret_port); -NTSTATUS smbsock_connect(const struct sockaddr_storage *addr, - const struct smb_transports *transports, - const char *called_name, int called_type, - const char *calling_name, int calling_type, - int *pfd, uint16_t *ret_port, int sec_timeout) - NONNULL(1) NONNULL(2) NONNULL(7); - -struct tevent_req *smbsock_any_connect_send(TALLOC_CTX *mem_ctx, - struct tevent_context *ev, - const struct sockaddr_storage *addrs, - const char **called_names, - int *called_types, - const char **calling_names, - int *calling_types, - size_t num_addrs, - const struct smb_transports *transports) - NONNULL(2) NONNULL(3) NONNULL(9); -NTSTATUS smbsock_any_connect_recv(struct tevent_req *req, int *pfd, - size_t *chosen_index, uint16_t *chosen_port); -NTSTATUS smbsock_any_connect(const struct sockaddr_storage *addrs, - const char **called_names, - int *called_types, - const char **calling_names, - int *calling_types, - size_t num_addrs, - const struct smb_transports *transports, - int sec_timeout, - int *pfd, size_t *chosen_index, - uint16_t *chosen_port) - NONNULL(1) NONNULL(7) NONNULL(9); - /* The following definitions come from lib/util_wellknown.c */ bool sid_check_is_wellknown_domain(const struct dom_sid *sid, const char **name); diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index a688982b7d9..09b2240bde8 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -31,6 +31,7 @@ #include "../lib/util/tevent_ntstatus.h" #include "async_smb.h" #include "libsmb/nmblib.h" +#include "libsmb/smbsock_connect.h" #include "librpc/ndr/libndr.h" #include "../libcli/smb/smbXcli_base.h" #include "../libcli/smb/smb_seal.h" diff --git a/source3/libsmb/libsmb_server.c b/source3/libsmb/libsmb_server.c index 8044539d213..9a115caaf37 100644 --- a/source3/libsmb/libsmb_server.c +++ b/source3/libsmb/libsmb_server.c @@ -33,6 +33,7 @@ #include "libcli/security/security.h" #include "libsmb/nmblib.h" #include "../libcli/smb/smbXcli_base.h" +#include "libsmb/smbsock_connect.h" /* * Check a server for being alive and well. diff --git a/source3/libsmb/smbsock_connect.c b/source3/libsmb/smbsock_connect.c index 0691a677cdd..91f7db1743a 100644 --- a/source3/libsmb/smbsock_connect.c +++ b/source3/libsmb/smbsock_connect.c @@ -25,6 +25,7 @@ #include "async_smb.h" #include "../libcli/smb/read_smb.h" #include "libsmb/nmblib.h" +#include "libsmb/smbsock_connect.h" struct cli_session_request_state { struct tevent_context *ev; diff --git a/source3/libsmb/smbsock_connect.h b/source3/libsmb/smbsock_connect.h new file mode 100644 index 00000000000..1a0fbce85a3 --- /dev/null +++ b/source3/libsmb/smbsock_connect.h @@ -0,0 +1,69 @@ +/* + * Unix SMB/CIFS implementation. + * + * Copyright (C) Stefan Metzmacher 2025 + * + * 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 . + */ + +#ifndef _LIBSMB_SMBSOCK_CONNECT_H_ +#define _LIBSMB_SMBSOCK_CONNECT_H_ + +/* The following definitions come from libsmb/smbsock_connect.c */ + +struct smb_transports smbsock_transports_from_port(uint16_t port); + +struct tevent_req *smbsock_connect_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + const struct sockaddr_storage *addr, + const struct smb_transports *transports, + const char *called_name, + int called_type, + const char *calling_name, + int calling_type) + NONNULL(2) NONNULL(3) NONNULL(4); +NTSTATUS smbsock_connect_recv(struct tevent_req *req, int *sock, + uint16_t *ret_port); +NTSTATUS smbsock_connect(const struct sockaddr_storage *addr, + const struct smb_transports *transports, + const char *called_name, int called_type, + const char *calling_name, int calling_type, + int *pfd, uint16_t *ret_port, int sec_timeout) + NONNULL(1) NONNULL(2) NONNULL(7); + +struct tevent_req *smbsock_any_connect_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + const struct sockaddr_storage *addrs, + const char **called_names, + int *called_types, + const char **calling_names, + int *calling_types, + size_t num_addrs, + const struct smb_transports *transports) + NONNULL(2) NONNULL(3) NONNULL(9); +NTSTATUS smbsock_any_connect_recv(struct tevent_req *req, int *pfd, + size_t *chosen_index, uint16_t *chosen_port); +NTSTATUS smbsock_any_connect(const struct sockaddr_storage *addrs, + const char **called_names, + int *called_types, + const char **calling_names, + int *calling_types, + size_t num_addrs, + const struct smb_transports *transports, + int sec_timeout, + int *pfd, size_t *chosen_index, + uint16_t *chosen_port) + NONNULL(1) NONNULL(7) NONNULL(9); + +#endif /* _LIBSMB_SMBSOCK_CONNECT_H_ */ diff --git a/source3/rpcclient/rpcclient.c b/source3/rpcclient/rpcclient.c index f558cc21d39..37b78b8ffef 100644 --- a/source3/rpcclient/rpcclient.c +++ b/source3/rpcclient/rpcclient.c @@ -31,6 +31,7 @@ #include "../libcli/security/security.h" #include "passdb.h" #include "libsmb/libsmb.h" +#include "libsmb/smbsock_connect.h" #include "auth/gensec/gensec.h" #include "../libcli/smb/smbXcli_base.h" #include "messages.h" diff --git a/source3/torture/test_smbsock_any_connect.c b/source3/torture/test_smbsock_any_connect.c index 8fbf0ac6f8a..98a0618b952 100644 --- a/source3/torture/test_smbsock_any_connect.c +++ b/source3/torture/test_smbsock_any_connect.c @@ -18,6 +18,7 @@ */ #include "includes.h" +#include "libsmb/smbsock_connect.h" #include "torture/proto.h" bool run_smb_any_connect(int dummy) diff --git a/source3/utils/net_util.c b/source3/utils/net_util.c index d637dd02777..f4f60ab71d4 100644 --- a/source3/utils/net_util.c +++ b/source3/utils/net_util.c @@ -29,6 +29,7 @@ #include "secrets.h" #include "../libcli/security/security.h" #include "libsmb/libsmb.h" +#include "libsmb/smbsock_connect.h" #include "lib/param/param.h" #include "auth/gensec/gensec.h" #include "libcli/auth/netlogon_creds_cli.h" diff --git a/source3/winbindd/winbindd_cm.c b/source3/winbindd/winbindd_cm.c index d0fa451e83a..9452a8db7e0 100644 --- a/source3/winbindd/winbindd_cm.c +++ b/source3/winbindd/winbindd_cm.c @@ -88,6 +88,7 @@ #include "lib/util/string_wrappers.h" #include "lib/global_contexts.h" #include "librpc/gen_ndr/ndr_winbind_c.h" +#include "libsmb/smbsock_connect.h" #undef DBGC_CLASS #define DBGC_CLASS DBGC_WINBIND