]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
param: Add "client netlogon ping protocol"
authorVolker Lendecke <vl@samba.org>
Thu, 24 Oct 2024 14:52:46 +0000 (16:52 +0200)
committerVolker Lendecke <vl@samba.org>
Mon, 11 Nov 2024 14:03:04 +0000 (14:03 +0000)
Allow "net ads join" in environments where UDP/389 is blocked. Code
will follow.

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

diff --git a/docs-xml/smbdotconf/security/clientnetlogonpingprotocol.xml b/docs-xml/smbdotconf/security/clientnetlogonpingprotocol.xml
new file mode 100644 (file)
index 0000000..a616c7b
--- /dev/null
@@ -0,0 +1,30 @@
+<samba:parameter name="client netlogon ping protocol"
+                 context="G"
+                 type="enum"
+                 enumlist="enum_client_netlogon_ping_protocol"
+                 xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+        <para>This option controls the protocol Samba uses to issue netlogon
+        ping requests. This is normally done via connectionless ldap, but
+        some installations require LDAPS over TCP port 636 for this.
+       </para>
+
+       <para>Possible values are :</para>
+       <itemizedlist>
+         <listitem>
+           <para><constant>CLDAP</constant></para>
+         </listitem>
+         <listitem>
+           <para><constant>LDAP</constant></para>
+         </listitem>
+         <listitem>
+           <para><constant>LDAPS</constant></para>
+         </listitem>
+         <listitem>
+           <para><constant>STARTTLS</constant></para>
+         </listitem>
+       </itemizedlist>
+</description>
+
+<value type="default">CLDAP</value>
+</samba:parameter>
index 7e9e5d2da3f8f5f4dab0798aacca710f86423b14..32788e37391a24f49eaa8ce32453c1a087a5a6d9 100644 (file)
@@ -265,6 +265,14 @@ enum acl_claims_evaluation {
        ACL_CLAIMS_EVALUATION_NEVER
 };
 
+/* Controlling the protocol for netlogon ping */
+enum client_netlogon_ping_protocol {
+       CLIENT_NETLOGON_PING_CLDAP,
+       CLIENT_NETLOGON_PING_LDAP,
+       CLIENT_NETLOGON_PING_LDAPS,
+       CLIENT_NETLOGON_PING_STARTTLS
+};
+
 /*
  * Default passwd chat script.
  */
index 229585b280788741b8ba4d7350bcb9d3823c392a..f2a5a7ec40d80cc961bb697e8bf2671c530be667 100644 (file)
@@ -449,6 +449,14 @@ static const struct enum_list enum_acl_claims_evaluation[] = {
        {-1, NULL}
 };
 
+static const struct enum_list enum_client_netlogon_ping_protocol[] = {
+       {CLIENT_NETLOGON_PING_CLDAP, "cldap"},
+       {CLIENT_NETLOGON_PING_LDAP, "ldap"},
+       {CLIENT_NETLOGON_PING_LDAPS, "ldaps"},
+       {CLIENT_NETLOGON_PING_STARTTLS, "starttls"},
+       {-1, NULL}
+};
+
 /* Note: We do not initialise the defaults union - it is not allowed in ANSI C
  *
  * NOTE: Handling of duplicated (synonym) parameters: