]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
docs-xml/smbdotconf: add 'server smb transport' option
authorStefan Metzmacher <metze@samba.org>
Wed, 2 Apr 2025 18:45:53 +0000 (20:45 +0200)
committerStefan Metzmacher <metze@samba.org>
Fri, 18 Apr 2025 10:17:29 +0000 (10:17 +0000)
In the next commits 'smb ports' will become just
a synonym for 'server smb transport'...

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
docs-xml/smbdotconf/protocol/serversmbtransports.xml [new file with mode: 0644]
lib/param/loadparm.c
source3/param/loadparm.c

diff --git a/docs-xml/smbdotconf/protocol/serversmbtransports.xml b/docs-xml/smbdotconf/protocol/serversmbtransports.xml
new file mode 100644 (file)
index 0000000..f50afd3
--- /dev/null
@@ -0,0 +1,34 @@
+<samba:parameter name="server smb transports"
+                 context="G"
+                 type="list"
+                 handler="handle_server_smb_transports"
+                 xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+       <para>Specifies which transports and ports the server should listen on for SMB traffic.</para>
+
+       <para>The order matters only for mDNS registrations, the first
+       'tcp' or 'nbt' port is used for that.</para>
+
+       <para>The transport 'tcp' uses raw tcp with a 4 byte length header per SMB PDU.
+       The default port for 'tcp' is 445. Other ports can be specified by adding it
+       after ':', e.g. 'tcp:1445'.
+       </para>
+
+       <para>The transport 'nbt' uses netbios framing on top of tcp per SMB PDU.
+       The default port for 'nbt' is 139. Other ports can be specified by adding it
+       after ':', e.g. 'nbt:1139'.
+       </para>
+
+       <para>Numerical ports are handled as 'tcp' except port '139' is handled as 'nbt'.
+       </para>
+
+       <para>Note that's currently a limit of 10 unique transports, all others will
+       be ignored.</para>
+</description>
+
+<value type="example">445</value>
+<value type="example">tcp, tcp:1445</value>
+<value type="example">8000, nbt:1139</value>
+
+<value type="default">tcp, nbt</value>
+</samba:parameter>
index 49b12837f53ef730ae4d6155ca3d417282a0b3b7..29f7c75048ddd5d05349d252b5b4bcfdee6b74c2 100644 (file)
@@ -1520,6 +1520,15 @@ bool handle_client_smb_transports(struct loadparm_context *lp_ctx,
                                     "client smb transports");
 }
 
+bool handle_server_smb_transports(struct loadparm_context *lp_ctx,
+                                 struct loadparm_service *service,
+                                 const char *pszParmValue,
+                                 char **ptr)
+{
+       return handle_smb_transports(lp_ctx, service, pszParmValue, ptr,
+                                    "server smb transports");
+}
+
 bool handle_rpc_server_dynamic_port_range(struct loadparm_context *lp_ctx,
                                          struct loadparm_service *service,
                                          const char *pszParmValue,
@@ -2974,6 +2983,7 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
 
        lpcfg_do_global_parameter(lp_ctx, "use mmap", "True");
 
+       lpcfg_do_global_parameter(lp_ctx, "server smb transports", "tcp, nbt");
        lpcfg_do_global_parameter(lp_ctx, "client smb transports", "tcp, nbt");
        lpcfg_do_global_parameter(lp_ctx, "smb ports", "445 139");
        lpcfg_do_global_parameter_var(lp_ctx, "nbt port", "%d", NBT_NAME_SERVICE_PORT);
index 999c4f74d803f2c70577a0314865cf369ac8b1d3..a27521cf00246378a0420f5e9349ec0137132d07 100644 (file)
@@ -848,6 +848,7 @@ void loadparm_s3_init_globals(struct loadparm_context *lp_ctx,
 
        Globals.defer_sharing_violations = true;
        Globals.smb_ports = str_list_make_v3_const(NULL, SMB_PORTS, NULL);
+       Globals.server_smb_transports = str_list_make_v3_const(NULL, "tcp, nbt", NULL);
        Globals.client_smb_transports = str_list_make_v3_const(NULL, "tcp, nbt", NULL);
 
        Globals.enable_privileges = true;