s3:auth Remove NT_USER_TOKEN
[nivanova/samba-autobuild/.git] / libgpo / gpo_ldap.c
index 788d6887a3f73c2aec3c3fb80889503e1381e61a..c5096428921e384c5eac357b63499c097e300657 100644 (file)
@@ -18,7 +18,9 @@
  */
 
 #include "includes.h"
+#include "libgpo/gpo.h"
 #if _SAMBA_BUILD_ == 4
+#include "libgpo/gpo_s4.h"
 #include "source4/libgpo/ads_convenience.h"
 #endif
 
@@ -42,12 +44,12 @@ bool ads_parse_gp_ext(TALLOC_CTX *mem_ctx,
 
        DEBUG(20,("ads_parse_gp_ext: %s\n", extension_raw));
 
-       ext = TALLOC_ZERO_P(mem_ctx, struct GP_EXT);
+       ext = talloc_zero(mem_ctx, struct GP_EXT);
        if (!ext) {
                goto parse_error;
        }
 
-       ext_list = str_list_make_v3(mem_ctx, extension_raw, "]");
+       ext_list = str_list_make(mem_ctx, extension_raw, "]");
        if (!ext_list) {
                goto parse_error;
        }
@@ -59,13 +61,13 @@ bool ads_parse_gp_ext(TALLOC_CTX *mem_ctx,
        ext->num_exts = i;
 
        if (ext->num_exts) {
-               ext->extensions         = TALLOC_ZERO_ARRAY(mem_ctx, char *,
+               ext->extensions         = talloc_zero_array(mem_ctx, char *,
                                                            ext->num_exts);
-               ext->extensions_guid    = TALLOC_ZERO_ARRAY(mem_ctx, char *,
+               ext->extensions_guid    = talloc_zero_array(mem_ctx, char *,
                                                            ext->num_exts);
-               ext->snapins            = TALLOC_ZERO_ARRAY(mem_ctx, char *,
+               ext->snapins            = talloc_zero_array(mem_ctx, char *,
                                                            ext->num_exts);
-               ext->snapins_guid       = TALLOC_ZERO_ARRAY(mem_ctx, char *,
+               ext->snapins_guid       = talloc_zero_array(mem_ctx, char *,
                                                            ext->num_exts);
        }
 
@@ -90,7 +92,7 @@ bool ads_parse_gp_ext(TALLOC_CTX *mem_ctx,
                        p++;
                }
 
-               ext_strings = str_list_make_v3(mem_ctx, p, "}");
+               ext_strings = str_list_make(mem_ctx, p, "}");
                if (ext_strings == NULL) {
                        goto parse_error;
                }
@@ -140,8 +142,8 @@ bool ads_parse_gp_ext(TALLOC_CTX *mem_ctx,
        ret = true;
 
  parse_error:
-       TALLOC_FREE(ext_list);
-       TALLOC_FREE(ext_strings);
+       talloc_free(ext_list);
+       talloc_free(ext_strings);
 
        return ret;
 }
@@ -178,9 +180,9 @@ static ADS_STATUS gpo_parse_gplink(TALLOC_CTX *mem_ctx,
        gp_link->num_links = i;
 
        if (gp_link->num_links) {
-               gp_link->link_names = TALLOC_ZERO_ARRAY(mem_ctx, char *,
+               gp_link->link_names = talloc_zero_array(mem_ctx, char *,
                                                        gp_link->num_links);
-               gp_link->link_opts = TALLOC_ZERO_ARRAY(mem_ctx, uint32_t,
+               gp_link->link_opts = talloc_zero_array(mem_ctx, uint32_t,
                                                       gp_link->num_links);
        }
 
@@ -225,7 +227,7 @@ static ADS_STATUS gpo_parse_gplink(TALLOC_CTX *mem_ctx,
        status = ADS_SUCCESS;
 
  parse_error:
-       TALLOC_FREE(link_list);
+       talloc_free(link_list);
 
        return status;
 }
@@ -483,7 +485,7 @@ ADS_STATUS ads_get_gpo(ADS_STRUCT *ads,
                "ntSecurityDescriptor",
                "versionNumber",
                NULL};
-       uint32_t sd_flags = DACL_SECURITY_INFORMATION;
+       uint32_t sd_flags = SECINFO_DACL;
 
        ZERO_STRUCTP(gpo);
 
@@ -550,7 +552,7 @@ static ADS_STATUS add_gplink_to_gpo_list(ADS_STRUCT *ads,
                                         struct GP_LINK *gp_link,
                                         enum GPO_LINK_TYPE link_type,
                                         bool only_add_forced_gpos,
-                                        const struct nt_user_token *token)
+                                        const struct security_token *token)
 {
        ADS_STATUS status;
        int i;
@@ -595,7 +597,7 @@ static ADS_STATUS add_gplink_to_gpo_list(ADS_STRUCT *ads,
                        DEBUG(10,("skipping GPO \"%s\" as object "
                                "has no access to it\n",
                                new_gpo->display_name));
-                       TALLOC_FREE(new_gpo);
+                       talloc_free(new_gpo);
                        continue;
                }
 
@@ -617,16 +619,16 @@ static ADS_STATUS add_gplink_to_gpo_list(ADS_STRUCT *ads,
 ADS_STATUS ads_get_sid_token(ADS_STRUCT *ads,
                             TALLOC_CTX *mem_ctx,
                             const char *dn,
-                            struct nt_user_token **token)
+                            struct security_token **token)
 {
        ADS_STATUS status;
-       DOM_SID object_sid;
-       DOM_SID primary_group_sid;
-       DOM_SID *ad_token_sids;
+       struct dom_sid object_sid;
+       struct dom_sid primary_group_sid;
+       struct dom_sid *ad_token_sids;
        size_t num_ad_token_sids = 0;
-       DOM_SID *token_sids;
-       size_t num_token_sids = 0;
-       struct nt_user_token *new_token = NULL;
+       struct dom_sid *token_sids;
+       uint32_t num_token_sids = 0;
+       struct security_token *new_token = NULL;
        int i;
 
        status = ads_get_tokensids(ads, mem_ctx, dn,
@@ -636,7 +638,7 @@ ADS_STATUS ads_get_sid_token(ADS_STRUCT *ads,
                return status;
        }
 
-       token_sids = TALLOC_ARRAY(mem_ctx, DOM_SID, 1);
+       token_sids = TALLOC_ARRAY(mem_ctx, struct dom_sid, 1);
        ADS_ERROR_HAVE_NO_MEMORY(token_sids);
 
        status = ADS_ERROR_NT(add_sid_to_array_unique(mem_ctx,
@@ -708,7 +710,7 @@ ADS_STATUS ads_get_gpo_list(ADS_STRUCT *ads,
                            TALLOC_CTX *mem_ctx,
                            const char *dn,
                            uint32_t flags,
-                           const struct nt_user_token *token,
+                           const struct security_token *token,
                            struct GROUP_POLICY_OBJECT **gpo_list)
 {
        /* (L)ocal (S)ite (D)omain (O)rganizational(U)nit */
@@ -724,6 +726,10 @@ ADS_STATUS ads_get_gpo_list(ADS_STRUCT *ads,
                return ADS_ERROR_NT(NT_STATUS_INVALID_PARAMETER);
        }
 
+       if (!ads_set_sasl_wrap_flags(ads, ADS_AUTH_SASL_SIGN)) {
+               return ADS_ERROR(LDAP_INVALID_CREDENTIALS);
+       }
+
        DEBUG(10,("ads_get_gpo_list: getting GPO list for [%s]\n", dn));
 
        /* (L)ocal */