samldb: Allow automatic generation of mAPIIDs
[sfrench/samba-autobuild/.git] / source4 / lib / policy / policy.h
index d55cb30abdc6d492b63c9d1fe3e5989cfd492e3e..fd26e59f0843a729f71e79fb33e361a954085b07 100644 (file)
  *  along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef __GPO_H__
-#define __GPO_H__
-#include "libcli/libcli.h"
+#ifndef __POLICY_H__
+#define __POLICY_H__
 
 #define GPLINK_OPT_DISABLE             (1 << 0)
 #define GPLINK_OPT_ENFORCE             (1 << 1)
 
-
 #define GPO_FLAG_USER_DISABLE          (1 << 0)
 #define GPO_FLAG_MACHINE_DISABLE       (1 << 1)
 
 struct security_token;
+struct nbt_dc_name;
 
 enum gpo_inheritance {
        GPO_INHERIT = 0,
@@ -42,7 +41,7 @@ struct gp_context {
        struct cli_credentials *credentials;
        struct tevent_context *ev_ctx;
        struct smbcli_state *cli;
-       struct nbt_dc_name active_dc;
+       struct nbt_dc_name *active_dc;
 };
 
 struct gp_object {
@@ -104,15 +103,25 @@ NTSTATUS gp_set_inheritance(struct gp_context *gp_ctx, const char *dn_str, enum
 
 NTSTATUS gp_create_ldap_gpo(struct gp_context *gp_ctx, struct gp_object *gpo);
 NTSTATUS gp_set_ads_acl (struct gp_context *gp_ctx, const char *dn_str, const struct security_descriptor *sd);
+NTSTATUS gp_push_gpo (struct gp_context *gp_ctx, const char *local_path, struct gp_object *gpo);
+NTSTATUS gp_set_ldap_gpo(struct gp_context *gp_ctx, struct gp_object *gpo);
 
 /* File system functions */
 NTSTATUS gp_fetch_gpt (struct gp_context *gp_ctx, struct gp_object *gpo, const char **path);
 NTSTATUS gp_create_gpt(struct gp_context *gp_ctx, const char *name, const char *file_sys_path);
 NTSTATUS gp_set_gpt_security_descriptor(struct gp_context *gp_ctx, struct gp_object *gpo, struct security_descriptor *sd);
+NTSTATUS gp_push_gpt(struct gp_context *gp_ctx, const char *local_path,
+                     const char *file_sys_path);
+
+/* Ini functions */
+NTSTATUS gp_parse_ini(TALLOC_CTX *mem_ctx, struct gp_context *gp_ctx, const char *filename, struct gp_ini_context **ret);
+NTSTATUS gp_get_ini_string(struct gp_ini_context *ini, const char *section, const char *name, char **ret);
+NTSTATUS gp_get_ini_uint(struct gp_ini_context *ini, const char *section, const char *name, uint32_t *ret);
 
 /* Managing functions */
 NTSTATUS gp_create_gpo (struct gp_context *gp_ctx, const char *display_name, struct gp_object **ret);
 NTSTATUS gp_create_gpt_security_descriptor (TALLOC_CTX *mem_ctx, struct security_descriptor *ds_sd, struct security_descriptor **ret);
 NTSTATUS gp_set_acl (struct gp_context *gp_ctx, const char *dn_str, const struct security_descriptor *sd);
+uint32_t gp_ads_to_dir_access_mask(uint32_t access_mask);
 
 #endif