]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
libads: Move check_cldap_reply_required_flags() to netlogon_ping.c
authorVolker Lendecke <vl@samba.org>
Mon, 28 Oct 2024 14:01:57 +0000 (15:01 +0100)
committerVolker Lendecke <vl@samba.org>
Mon, 11 Nov 2024 14:03:04 +0000 (14:03 +0000)
netlogon_ping.c depends on it but itself has fewer dependencies than
cldap.c, so we can use it in more places

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
source3/libads/cldap.c
source3/libads/cldap.h
source3/libads/netlogon_ping.c
source3/libads/netlogon_ping.h

index e0789c50dacceefc6ef904b0735cd71ede327a0f..96d602d9feb393d3663acdd6894996a92472e486 100644 (file)
 #include "libads/cldap.h"
 #include "libads/netlogon_ping.h"
 
-/****************************************************************
-****************************************************************/
-
-#define RETURN_ON_FALSE(x) if (!(x)) return false;
-
-bool check_cldap_reply_required_flags(uint32_t ret_flags,
-                                     uint32_t req_flags)
-{
-       if (req_flags == 0) {
-               return true;
-       }
-
-       if (req_flags & DS_PDC_REQUIRED)
-               RETURN_ON_FALSE(ret_flags & NBT_SERVER_PDC);
-
-       if (req_flags & DS_GC_SERVER_REQUIRED)
-               RETURN_ON_FALSE(ret_flags & NBT_SERVER_GC);
-
-       if (req_flags & DS_ONLY_LDAP_NEEDED)
-               RETURN_ON_FALSE(ret_flags & NBT_SERVER_LDAP);
-
-       if ((req_flags & DS_DIRECTORY_SERVICE_REQUIRED) ||
-           (req_flags & DS_DIRECTORY_SERVICE_PREFERRED))
-               RETURN_ON_FALSE(ret_flags & NBT_SERVER_DS);
-
-       if (req_flags & DS_KDC_REQUIRED)
-               RETURN_ON_FALSE(ret_flags & NBT_SERVER_KDC);
-
-       if (req_flags & DS_TIMESERV_REQUIRED)
-               RETURN_ON_FALSE(ret_flags & NBT_SERVER_TIMESERV);
-
-       if (req_flags & DS_WEB_SERVICE_REQUIRED)
-               RETURN_ON_FALSE(ret_flags & NBT_SERVER_ADS_WEB_SERVICE);
-
-       if (req_flags & DS_WRITABLE_REQUIRED)
-               RETURN_ON_FALSE(ret_flags & NBT_SERVER_WRITABLE);
-
-       if (req_flags & DS_DIRECTORY_SERVICE_6_REQUIRED)
-               RETURN_ON_FALSE(ret_flags & (NBT_SERVER_SELECT_SECRET_DOMAIN_6
-                                            |NBT_SERVER_FULL_SECRET_DOMAIN_6));
-
-       if (req_flags & DS_DIRECTORY_SERVICE_8_REQUIRED)
-               RETURN_ON_FALSE(ret_flags & NBT_SERVER_DS_8);
-
-       if (req_flags & DS_DIRECTORY_SERVICE_9_REQUIRED)
-               RETURN_ON_FALSE(ret_flags & NBT_SERVER_DS_9);
-
-       if (req_flags & DS_DIRECTORY_SERVICE_10_REQUIRED)
-               RETURN_ON_FALSE(ret_flags & NBT_SERVER_DS_10);
-
-       return true;
-}
-
 /*******************************************************************
   do a cldap netlogon query.  Always 389/udp
 *******************************************************************/
index 0cde4c7ea49a4644d25dd74fab33d4f0b81621bc..3553f12138781ff66d2e0571119e92ae04f89d61 100644 (file)
@@ -27,9 +27,6 @@
 
 /* The following definitions come from libads/cldap.c  */
 
-bool check_cldap_reply_required_flags(uint32_t ret_flags,
-                                     uint32_t req_flags);
-
 bool ads_cldap_netlogon_5(TALLOC_CTX *mem_ctx,
                          struct sockaddr_storage *ss,
                          const char *realm,
index 4fd776a2efe625d55f11404e9632c7004100ef01..c94af8fbc57f2d529d8970b08b1abe36c8796e88 100644 (file)
 #include "lib/util/tevent_ntstatus.h"
 #include "source4/lib/tls/tls.h"
 #include "source3/libads/cldap.h"
+#include "librpc/gen_ndr/netlogon.h"
+
+#define RETURN_ON_FALSE(x) \
+       if (!(x))          \
+               return false;
+
+bool check_cldap_reply_required_flags(uint32_t ret_flags, uint32_t req_flags)
+{
+       if (req_flags == 0) {
+               return true;
+       }
+
+       if (req_flags & DS_PDC_REQUIRED)
+               RETURN_ON_FALSE(ret_flags & NBT_SERVER_PDC);
+
+       if (req_flags & DS_GC_SERVER_REQUIRED)
+               RETURN_ON_FALSE(ret_flags & NBT_SERVER_GC);
+
+       if (req_flags & DS_ONLY_LDAP_NEEDED)
+               RETURN_ON_FALSE(ret_flags & NBT_SERVER_LDAP);
+
+       if ((req_flags & DS_DIRECTORY_SERVICE_REQUIRED) ||
+           (req_flags & DS_DIRECTORY_SERVICE_PREFERRED))
+               RETURN_ON_FALSE(ret_flags & NBT_SERVER_DS);
+
+       if (req_flags & DS_KDC_REQUIRED)
+               RETURN_ON_FALSE(ret_flags & NBT_SERVER_KDC);
+
+       if (req_flags & DS_TIMESERV_REQUIRED)
+               RETURN_ON_FALSE(ret_flags & NBT_SERVER_TIMESERV);
+
+       if (req_flags & DS_WEB_SERVICE_REQUIRED)
+               RETURN_ON_FALSE(ret_flags & NBT_SERVER_ADS_WEB_SERVICE);
+
+       if (req_flags & DS_WRITABLE_REQUIRED)
+               RETURN_ON_FALSE(ret_flags & NBT_SERVER_WRITABLE);
+
+       if (req_flags & DS_DIRECTORY_SERVICE_6_REQUIRED)
+               RETURN_ON_FALSE(ret_flags &
+                               (NBT_SERVER_SELECT_SECRET_DOMAIN_6 |
+                                NBT_SERVER_FULL_SECRET_DOMAIN_6));
+
+       if (req_flags & DS_DIRECTORY_SERVICE_8_REQUIRED)
+               RETURN_ON_FALSE(ret_flags & NBT_SERVER_DS_8);
+
+       if (req_flags & DS_DIRECTORY_SERVICE_9_REQUIRED)
+               RETURN_ON_FALSE(ret_flags & NBT_SERVER_DS_9);
+
+       if (req_flags & DS_DIRECTORY_SERVICE_10_REQUIRED)
+               RETURN_ON_FALSE(ret_flags & NBT_SERVER_DS_10);
+
+       return true;
+}
 
 struct ldap_netlogon_state {
        struct tevent_context *ev;
index dc238bd1c62374a72d900b825fb35d8d77c59098..d50c0a4793683b271ec3f5c1715ab0971b7eedd0 100644 (file)
@@ -24,6 +24,8 @@
 #include "libcli/util/ntstatus.h"
 #include "lib/param/loadparm.h"
 
+bool check_cldap_reply_required_flags(uint32_t ret_flags, uint32_t req_flags);
+
 struct netlogon_samlogon_response;
 
 struct netlogon_ping_filter {