]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:libsmb: pass struct smb_transports to smbsock_connect()
authorStefan Metzmacher <metze@samba.org>
Sat, 5 Apr 2025 15:50:16 +0000 (17:50 +0200)
committerStefan Metzmacher <metze@samba.org>
Fri, 18 Apr 2025 10:17:29 +0000 (10:17 +0000)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
source3/include/proto.h
source3/libsmb/smbsock_connect.c
source3/winbindd/winbindd_cm.c

index fd487a59ffe07cd5f4a5edf736b6c72b42e9a226..ea8735c18674d7eaae2802bc8e3831fbfd2703be 100644 (file)
@@ -665,10 +665,12 @@ struct tevent_req *smbsock_connect_send(TALLOC_CTX *mem_ctx,
 
 NTSTATUS smbsock_connect_recv(struct tevent_req *req, int *sock,
                              uint16_t *ret_port);
-NTSTATUS smbsock_connect(const struct sockaddr_storage *addr, uint16_t 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);
+                        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,
index 3c43c2e424152214e393633a7fd618d3866b1470..fd64111049d5d96a1b5567ef2f791fd02eb1d569 100644 (file)
@@ -750,7 +750,8 @@ NTSTATUS smbsock_connect_recv(struct tevent_req *req, int *sock,
        return NT_STATUS_OK;
 }
 
-NTSTATUS smbsock_connect(const struct sockaddr_storage *addr, uint16_t 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)
@@ -759,13 +760,12 @@ NTSTATUS smbsock_connect(const struct sockaddr_storage *addr, uint16_t port,
        struct tevent_context *ev;
        struct tevent_req *req;
        NTSTATUS status = NT_STATUS_NO_MEMORY;
-       struct smb_transports ts = smbsock_transports_from_port(port);
 
        ev = samba_tevent_context_init(frame);
        if (ev == NULL) {
                goto fail;
        }
-       req = smbsock_connect_send(frame, ev, addr, &ts,
+       req = smbsock_connect_send(frame, ev, addr, transports,
                                   called_name, called_type,
                                   calling_name, calling_type);
        if (req == NULL) {
index 420ea961876c37d7186805d9b4d2671f310cf724..dd8d2fae830363fb40bd45ee4c2a882a9fd01665 100644 (file)
@@ -1440,6 +1440,9 @@ static bool connect_preferred_dc(TALLOC_CTX *mem_ctx,
                                 int *fd)
 {
        char *saf_servername = NULL;
+       struct smb_transports ts =
+               smb_transports_parse("client smb transports",
+                       lp_client_smb_transports());
        NTSTATUS status;
        bool ok;
 
@@ -1507,7 +1510,7 @@ static bool connect_preferred_dc(TALLOC_CTX *mem_ctx,
                return false;
        }
 
-       status = smbsock_connect(&domain->dcaddr, 0,
+       status = smbsock_connect(&domain->dcaddr, &ts,
                                 domain->dcname, -1, NULL, -1,
                                 fd, NULL, 10);
        if (!NT_STATUS_IS_OK(status)) {