From 82685568ebfb6458a7b3399a2eb3dde99ff3dd76 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 3 Apr 2025 17:03:57 +0200 Subject: [PATCH] libcli/smb: define SMB_TRANSPORT_TYPE_QUIC Signed-off-by: Stefan Metzmacher Reviewed-by: Ralph Boehme --- libcli/smb/smb_util.h | 1 + source3/libsmb/smbsock_connect.c | 13 +++++++++++++ source3/smbd/server.c | 11 +++++++++++ source3/utils/status_json.c | 3 +++ source4/smb_server/smb_server.c | 5 +++++ 5 files changed, 33 insertions(+) diff --git a/libcli/smb/smb_util.h b/libcli/smb/smb_util.h index 6ec48625f05..c3533a2d2e1 100644 --- a/libcli/smb/smb_util.h +++ b/libcli/smb/smb_util.h @@ -61,6 +61,7 @@ enum smb_transport_type { SMB_TRANSPORT_TYPE_UNKNOWN = 0, SMB_TRANSPORT_TYPE_NBT, SMB_TRANSPORT_TYPE_TCP, + SMB_TRANSPORT_TYPE_QUIC, }; struct smb_transport { diff --git a/source3/libsmb/smbsock_connect.c b/source3/libsmb/smbsock_connect.c index 482f9d89613..734d2a1a726 100644 --- a/source3/libsmb/smbsock_connect.c +++ b/source3/libsmb/smbsock_connect.c @@ -469,6 +469,11 @@ struct tevent_req *smbsock_connect_send(TALLOC_CTX *mem_ctx, break; case SMB_TRANSPORT_TYPE_TCP: break; + case SMB_TRANSPORT_TYPE_QUIC: + /* + * Not supported yet + */ + continue; } s->req = req; @@ -595,6 +600,14 @@ static bool smbsock_connect_submit_next(struct tevent_req *req) smbsock_connect_tcp_connected, s); break; + + case SMB_TRANSPORT_TYPE_QUIC: + /* + * Not supported yet, should already be + * checked above. + */ + smb_panic(__location__); + break; } if (s->subreq == NULL) { diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 1ad66ecbdba..97d0fbbbc60 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -1102,6 +1102,11 @@ static bool smbd_open_one_socket(struct smbd_parent_context *parent, protocol = IPPROTO_TCP; rebind = true; break; + case SMB_TRANSPORT_TYPE_QUIC: + /* + * Not supported yet + */ + break; case SMB_TRANSPORT_TYPE_UNKNOWN: /* * Should never happen @@ -1207,6 +1212,12 @@ static bool open_sockets_smbd(struct smbd_parent_context *parent, case SMB_TRANSPORT_TYPE_NBT: port = t->port; break; + case SMB_TRANSPORT_TYPE_QUIC: + /* + * Unlikely to be useful + * for mDNS registration + */ + break; case SMB_TRANSPORT_TYPE_UNKNOWN: /* * Should never happen diff --git a/source3/utils/status_json.c b/source3/utils/status_json.c index 22606439b78..ad25ed5d91b 100644 --- a/source3/utils/status_json.c +++ b/source3/utils/status_json.c @@ -340,6 +340,9 @@ static int add_channel_to_json(struct json_object *parent_json, case SMB_TRANSPORT_TYPE_TCP: transport_str = "tcp"; break; + case SMB_TRANSPORT_TYPE_QUIC: + transport_str = "quic"; + break; } if (transport_str == NULL) { diff --git a/source4/smb_server/smb_server.c b/source4/smb_server/smb_server.c index c52e8fe721e..cf0d3b83104 100644 --- a/source4/smb_server/smb_server.c +++ b/source4/smb_server/smb_server.c @@ -197,6 +197,11 @@ _PUBLIC_ NTSTATUS smbsrv_add_socket(TALLOC_CTX *mem_ctx, case SMB_TRANSPORT_TYPE_TCP: port = t->port; break; + case SMB_TRANSPORT_TYPE_QUIC: + /* + * Not supported + */ + break; case SMB_TRANSPORT_TYPE_UNKNOWN: break; } -- 2.47.3