diff options
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/includes.h | 2 | ||||
-rw-r--r-- | source3/include/proto.h | 221 | ||||
-rw-r--r-- | source3/include/reg_objects.h | 36 | ||||
-rw-r--r-- | source3/include/regfio.h | 2 | ||||
-rw-r--r-- | source3/include/registry.h | 188 |
5 files changed, 226 insertions, 223 deletions
diff --git a/source3/include/includes.h b/source3/include/includes.h index 07b31c2406..20a52e6e5d 100644 --- a/source3/include/includes.h +++ b/source3/include/includes.h @@ -656,8 +656,6 @@ struct ntlmssp_state; #include "auth.h" #include "ntdomain.h" -#include "reg_objects.h" -#include "reg_db.h" #include "librpc/gen_ndr/ndr_nbt.h" #include "librpc/rpc/dcerpc.h" #include "nt_printing.h" diff --git a/source3/include/proto.h b/source3/include/proto.h index 8735b9aa78..53f76545bf 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -1303,16 +1303,6 @@ bool pull_reg_sz(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic, bool pull_reg_multi_sz(TALLOC_CTX *mem_ctx, struct smb_iconv_convenience *ic, const DATA_BLOB *blob, const char ***a); -/* The following definitions come from lib/util_reg_api.c */ - -WERROR registry_pull_value(TALLOC_CTX *mem_ctx, - struct registry_value **pvalue, - enum winreg_Type type, uint8 *data, - uint32 size, uint32 length); -WERROR registry_push_value(TALLOC_CTX *mem_ctx, - const struct registry_value *value, - DATA_BLOB *presult); - /* The following definitions come from lib/util_seaccess.c */ void se_map_generic(uint32 *access_mask, const struct generic_mapping *mapping); @@ -4878,217 +4868,6 @@ TDB_DATA get_printer_notify_pid_list(TDB_CONTEXT *tdb, const char *printer_name, void set_profile_level(int level, struct server_id src); bool profile_setup(struct messaging_context *msg_ctx, bool rdonly); -/* The following definitions come from registry/reg_api.c */ - -WERROR reg_openhive(TALLOC_CTX *mem_ctx, const char *hive, - uint32 desired_access, - const struct nt_user_token *token, - struct registry_key **pkey); -WERROR reg_openkey(TALLOC_CTX *mem_ctx, struct registry_key *parent, - const char *name, uint32 desired_access, - struct registry_key **pkey); -WERROR reg_enumkey(TALLOC_CTX *mem_ctx, struct registry_key *key, - uint32 idx, char **name, NTTIME *last_write_time); -WERROR reg_enumvalue(TALLOC_CTX *mem_ctx, struct registry_key *key, - uint32 idx, char **pname, struct registry_value **pval); -WERROR reg_queryvalue(TALLOC_CTX *mem_ctx, struct registry_key *key, - const char *name, struct registry_value **pval); -WERROR reg_queryinfokey(struct registry_key *key, uint32_t *num_subkeys, - uint32_t *max_subkeylen, uint32_t *max_subkeysize, - uint32_t *num_values, uint32_t *max_valnamelen, - uint32_t *max_valbufsize, uint32_t *secdescsize, - NTTIME *last_changed_time); -WERROR reg_createkey(TALLOC_CTX *ctx, struct registry_key *parent, - const char *subkeypath, uint32 desired_access, - struct registry_key **pkey, - enum winreg_CreateAction *paction); -WERROR reg_deletekey(struct registry_key *parent, const char *path); -WERROR reg_setvalue(struct registry_key *key, const char *name, - const struct registry_value *val); -WERROR reg_deletevalue(struct registry_key *key, const char *name); -WERROR reg_getkeysecurity(TALLOC_CTX *mem_ctx, struct registry_key *key, - struct security_descriptor **psecdesc); -WERROR reg_setkeysecurity(struct registry_key *key, - struct security_descriptor *psecdesc); -WERROR reg_getversion(uint32_t *version); -WERROR reg_restorekey(struct registry_key *key, const char *fname); -WERROR reg_savekey(struct registry_key *key, const char *fname); -WERROR reg_deleteallvalues(struct registry_key *key); -WERROR reg_open_path(TALLOC_CTX *mem_ctx, const char *orig_path, - uint32 desired_access, const struct nt_user_token *token, - struct registry_key **pkey); -WERROR reg_deletekey_recursive(TALLOC_CTX *ctx, - struct registry_key *parent, - const char *path); -WERROR reg_deletesubkeys_recursive(TALLOC_CTX *ctx, - struct registry_key *parent, - const char *path); -WERROR reg_create_path(TALLOC_CTX *mem_ctx, const char *orig_path, - uint32 desired_access, - const struct nt_user_token *token, - enum winreg_CreateAction *paction, - struct registry_key **pkey); -WERROR reg_delete_path(const struct nt_user_token *token, - const char *orig_path); - -/* The following definitions come from registry/reg_backend_current_version.c */ - - -/* The following definitions come from registry/reg_backend_db.c */ - -WERROR init_registry_key(const char *add_path); -WERROR init_registry_data(void); -WERROR regdb_init(void); -WERROR regdb_open( void ); -int regdb_close( void ); -WERROR regdb_transaction_start(void); -WERROR regdb_transaction_commit(void); -WERROR regdb_transaction_cancel(void); -int regdb_get_seqnum(void); -bool regdb_store_keys(const char *key, struct regsubkey_ctr *ctr); -int regdb_fetch_keys(const char *key, struct regsubkey_ctr *ctr); -int regdb_fetch_values(const char* key, struct regval_ctr *values); -bool regdb_store_values(const char *key, struct regval_ctr *values); -bool regdb_subkeys_need_update(struct regsubkey_ctr *subkeys); -bool regdb_values_need_update(struct regval_ctr *values); - -/* The following definitions come from registry/reg_backend_hkpt_params.c */ - - -/* The following definitions come from registry/reg_backend_netlogon_params.c */ - - -/* The following definitions come from registry/reg_backend_perflib.c */ - - -/* The following definitions come from registry/reg_backend_printing.c */ - - -/* The following definitions come from registry/reg_backend_prod_options.c */ - - -/* The following definitions come from registry/reg_backend_shares.c */ - - -/* The following definitions come from registry/reg_backend_smbconf.c */ - - -/* The following definitions come from registry/reg_backend_tcpip_params.c */ - - -/* The following definitions come from registry/reg_cachehook.c */ - -WERROR reghook_cache_init(void); -WERROR reghook_cache_add(const char *keyname, struct registry_ops *ops); -struct registry_ops *reghook_cache_find(const char *keyname); -void reghook_dump_cache( int debuglevel ); - -/* The following definitions come from registry/reg_dispatcher.c */ - -bool store_reg_keys(struct registry_key_handle *key, - struct regsubkey_ctr *subkeys); -bool store_reg_values(struct registry_key_handle *key, struct regval_ctr *val); -WERROR create_reg_subkey(struct registry_key_handle *key, const char *subkey); -WERROR delete_reg_subkey(struct registry_key_handle *key, const char *subkey); -int fetch_reg_keys(struct registry_key_handle *key, - struct regsubkey_ctr *subkey_ctr); -int fetch_reg_values(struct registry_key_handle *key, struct regval_ctr *val); -bool regkey_access_check(struct registry_key_handle *key, uint32 requested, - uint32 *granted, - const struct nt_user_token *token); -WERROR regkey_get_secdesc(TALLOC_CTX *mem_ctx, struct registry_key_handle *key, - struct security_descriptor **psecdesc); -WERROR regkey_set_secdesc(struct registry_key_handle *key, - struct security_descriptor *psecdesc); -bool reg_subkeys_need_update(struct registry_key_handle *key, - struct regsubkey_ctr *subkeys); -bool reg_values_need_update(struct registry_key_handle *key, - struct regval_ctr *values); - -/* The following definitions come from registry/reg_eventlog.c */ - -bool eventlog_init_keys(void); -bool eventlog_add_source( const char *eventlog, const char *sourcename, - const char *messagefile ); - -/* The following definitions come from registry/reg_init_basic.c */ - -WERROR registry_init_common(void); -WERROR registry_init_basic(void); - -/* The following definitions come from registry/reg_init_full.c */ - -WERROR registry_init_full(void); - -/* The following definitions come from registry/reg_init_smbconf.c */ - -NTSTATUS registry_create_admin_token(TALLOC_CTX *mem_ctx, - NT_USER_TOKEN **ptoken); -WERROR registry_init_smbconf(const char *keyname); - -/* The following definitions come from registry/reg_objects.c */ - -WERROR regsubkey_ctr_init(TALLOC_CTX *mem_ctx, struct regsubkey_ctr **ctr); -WERROR regsubkey_ctr_reinit(struct regsubkey_ctr *ctr); -WERROR regsubkey_ctr_set_seqnum(struct regsubkey_ctr *ctr, int seqnum); -int regsubkey_ctr_get_seqnum(struct regsubkey_ctr *ctr); -WERROR regsubkey_ctr_addkey( struct regsubkey_ctr *ctr, const char *keyname ); -WERROR regsubkey_ctr_delkey( struct regsubkey_ctr *ctr, const char *keyname ); -bool regsubkey_ctr_key_exists( struct regsubkey_ctr *ctr, const char *keyname ); -int regsubkey_ctr_numkeys( struct regsubkey_ctr *ctr ); -char* regsubkey_ctr_specific_key( struct regsubkey_ctr *ctr, uint32 key_index ); -int regval_ctr_numvals(struct regval_ctr *ctr); -struct regval_blob* dup_registry_value(struct regval_blob *val); -void free_registry_value(struct regval_blob *val); -uint8* regval_data_p(struct regval_blob *val); -uint32 regval_size(struct regval_blob *val); -char* regval_name(struct regval_blob *val); -uint32 regval_type(struct regval_blob *val); -struct regval_blob* regval_ctr_specific_value(struct regval_ctr *ctr, - uint32 idx); -bool regval_ctr_key_exists(struct regval_ctr *ctr, const char *value); -struct regval_blob *regval_compose(TALLOC_CTX *ctx, const char *name, - uint16 type, - const char *data_p, size_t size); -int regval_ctr_addvalue(struct regval_ctr *ctr, const char *name, uint16 type, - const char *data_p, size_t size); -int regval_ctr_addvalue_sz(struct regval_ctr *ctr, const char *name, const char *data); -int regval_ctr_addvalue_multi_sz(struct regval_ctr *ctr, const char *name, const char **data); -int regval_ctr_copyvalue(struct regval_ctr *ctr, struct regval_blob *val); -int regval_ctr_delvalue(struct regval_ctr *ctr, const char *name); -struct regval_blob* regval_ctr_getvalue(struct regval_ctr *ctr, - const char *name); -uint32 regval_dword(struct regval_blob *val); -const char *regval_sz(struct regval_blob *val); - -/* The following definitions come from registry/reg_perfcount.c */ - -void perfcount_init_keys( void ); -uint32 reg_perfcount_get_base_index(void); -uint32 reg_perfcount_get_last_counter(uint32 base_index); -uint32 reg_perfcount_get_last_help(uint32 last_counter); -uint32 reg_perfcount_get_counter_help(uint32 base_index, char **retbuf); -uint32 reg_perfcount_get_counter_names(uint32 base_index, char **retbuf); -WERROR reg_perfcount_get_hkpd(prs_struct *ps, uint32 max_buf_size, uint32 *outbuf_len, const char *object_ids); - -/* The following definitions come from registry/reg_util.c */ - -bool reg_split_path(char *path, char **base, char **new_path); -bool reg_split_key(char *path, char **base, char **key); -char *normalize_reg_path(TALLOC_CTX *ctx, const char *keyname ); -void normalize_dbkey(char *key); -char *reg_remaining_path(TALLOC_CTX *ctx, const char *key); - -/* The following definitions come from registry/reg_util_legacy.c */ - -WERROR regkey_open_internal(TALLOC_CTX *ctx, - struct registry_key_handle **regkey, - const char *path, - const struct nt_user_token *token, - uint32 access_desired ); - -/* The following definitions come from registry/regfio.c */ - /* The following definitions come from rpc_client/cli_lsarpc.c */ diff --git a/source3/include/reg_objects.h b/source3/include/reg_objects.h index 8d220ebdf5..761bb49596 100644 --- a/source3/include/reg_objects.h +++ b/source3/include/reg_objects.h @@ -167,4 +167,40 @@ struct registry_key { struct nt_user_token *token; }; +/* The following definitions come from registry/reg_objects.c */ + +WERROR regsubkey_ctr_init(TALLOC_CTX *mem_ctx, struct regsubkey_ctr **ctr); +WERROR regsubkey_ctr_reinit(struct regsubkey_ctr *ctr); +WERROR regsubkey_ctr_set_seqnum(struct regsubkey_ctr *ctr, int seqnum); +int regsubkey_ctr_get_seqnum(struct regsubkey_ctr *ctr); +WERROR regsubkey_ctr_addkey( struct regsubkey_ctr *ctr, const char *keyname ); +WERROR regsubkey_ctr_delkey( struct regsubkey_ctr *ctr, const char *keyname ); +bool regsubkey_ctr_key_exists( struct regsubkey_ctr *ctr, const char *keyname ); +int regsubkey_ctr_numkeys( struct regsubkey_ctr *ctr ); +char* regsubkey_ctr_specific_key( struct regsubkey_ctr *ctr, uint32 key_index ); +int regval_ctr_numvals(struct regval_ctr *ctr); +struct regval_blob* dup_registry_value(struct regval_blob *val); +void free_registry_value(struct regval_blob *val); +uint8* regval_data_p(struct regval_blob *val); +uint32 regval_size(struct regval_blob *val); +char* regval_name(struct regval_blob *val); +uint32 regval_type(struct regval_blob *val); +struct regval_blob* regval_ctr_specific_value(struct regval_ctr *ctr, + uint32 idx); +bool regval_ctr_key_exists(struct regval_ctr *ctr, const char *value); +struct regval_blob *regval_compose(TALLOC_CTX *ctx, const char *name, + uint16 type, + const char *data_p, size_t size); +int regval_ctr_addvalue(struct regval_ctr *ctr, const char *name, uint16 type, + const char *data_p, size_t size); +int regval_ctr_addvalue_sz(struct regval_ctr *ctr, const char *name, const char *data); +int regval_ctr_addvalue_multi_sz(struct regval_ctr *ctr, const char *name, const char **data); +int regval_ctr_copyvalue(struct regval_ctr *ctr, struct regval_blob *val); +int regval_ctr_delvalue(struct regval_ctr *ctr, const char *name); +struct regval_blob* regval_ctr_getvalue(struct regval_ctr *ctr, + const char *name); +uint32 regval_dword(struct regval_blob *val); +const char *regval_sz(struct regval_blob *val); + + #endif /* _REG_OBJECTS_H */ diff --git a/source3/include/regfio.h b/source3/include/regfio.h index 58bfe80c91..61d74d7f2a 100644 --- a/source3/include/regfio.h +++ b/source3/include/regfio.h @@ -27,6 +27,8 @@ #ifndef _REGFIO_H #define _REGFIO_H +struct regsubkey_ctr; + /* Macros */ #define REGF_BLOCKSIZE 0x1000 diff --git a/source3/include/registry.h b/source3/include/registry.h new file mode 100644 index 0000000000..564481945b --- /dev/null +++ b/source3/include/registry.h @@ -0,0 +1,188 @@ +#include "reg_objects.h" + +/* The following definitions come from registry/reg_api.c */ + +WERROR reg_openhive(TALLOC_CTX *mem_ctx, const char *hive, + uint32 desired_access, + const struct nt_user_token *token, + struct registry_key **pkey); +WERROR reg_openkey(TALLOC_CTX *mem_ctx, struct registry_key *parent, + const char *name, uint32 desired_access, + struct registry_key **pkey); +WERROR reg_enumkey(TALLOC_CTX *mem_ctx, struct registry_key *key, + uint32 idx, char **name, NTTIME *last_write_time); +WERROR reg_enumvalue(TALLOC_CTX *mem_ctx, struct registry_key *key, + uint32 idx, char **pname, struct registry_value **pval); +WERROR reg_queryvalue(TALLOC_CTX *mem_ctx, struct registry_key *key, + const char *name, struct registry_value **pval); +WERROR reg_queryinfokey(struct registry_key *key, uint32_t *num_subkeys, + uint32_t *max_subkeylen, uint32_t *max_subkeysize, + uint32_t *num_values, uint32_t *max_valnamelen, + uint32_t *max_valbufsize, uint32_t *secdescsize, + NTTIME *last_changed_time); +WERROR reg_createkey(TALLOC_CTX *ctx, struct registry_key *parent, + const char *subkeypath, uint32 desired_access, + struct registry_key **pkey, + enum winreg_CreateAction *paction); +WERROR reg_deletekey(struct registry_key *parent, const char *path); +WERROR reg_setvalue(struct registry_key *key, const char *name, + const struct registry_value *val); +WERROR reg_deletevalue(struct registry_key *key, const char *name); +WERROR reg_getkeysecurity(TALLOC_CTX *mem_ctx, struct registry_key *key, + struct security_descriptor **psecdesc); +WERROR reg_setkeysecurity(struct registry_key *key, + struct security_descriptor *psecdesc); +WERROR reg_getversion(uint32_t *version); +WERROR reg_restorekey(struct registry_key *key, const char *fname); +WERROR reg_savekey(struct registry_key *key, const char *fname); +WERROR reg_deleteallvalues(struct registry_key *key); +WERROR reg_open_path(TALLOC_CTX *mem_ctx, const char *orig_path, + uint32 desired_access, const struct nt_user_token *token, + struct registry_key **pkey); +WERROR reg_deletekey_recursive(TALLOC_CTX *ctx, + struct registry_key *parent, + const char *path); +WERROR reg_deletesubkeys_recursive(TALLOC_CTX *ctx, + struct registry_key *parent, + const char *path); +WERROR reg_create_path(TALLOC_CTX *mem_ctx, const char *orig_path, + uint32 desired_access, + const struct nt_user_token *token, + enum winreg_CreateAction *paction, + struct registry_key **pkey); +WERROR reg_delete_path(const struct nt_user_token *token, + const char *orig_path); + +/* The following definitions come from registry/reg_backend_current_version.c */ + + +/* The following definitions come from registry/reg_backend_db.c */ + +WERROR init_registry_key(const char *add_path); +WERROR init_registry_data(void); +WERROR regdb_init(void); +WERROR regdb_open( void ); +int regdb_close( void ); +WERROR regdb_transaction_start(void); +WERROR regdb_transaction_commit(void); +WERROR regdb_transaction_cancel(void); +int regdb_get_seqnum(void); +bool regdb_store_keys(const char *key, struct regsubkey_ctr *ctr); +int regdb_fetch_keys(const char *key, struct regsubkey_ctr *ctr); +int regdb_fetch_values(const char* key, struct regval_ctr *values); +bool regdb_store_values(const char *key, struct regval_ctr *values); +bool regdb_subkeys_need_update(struct regsubkey_ctr *subkeys); +bool regdb_values_need_update(struct regval_ctr *values); + +/* The following definitions come from registry/reg_backend_hkpt_params.c */ + + +/* The following definitions come from registry/reg_backend_netlogon_params.c */ + + +/* The following definitions come from registry/reg_backend_perflib.c */ + + +/* The following definitions come from registry/reg_backend_printing.c */ + + +/* The following definitions come from registry/reg_backend_prod_options.c */ + + +/* The following definitions come from registry/reg_backend_shares.c */ + + +/* The following definitions come from registry/reg_backend_smbconf.c */ + + +/* The following definitions come from registry/reg_backend_tcpip_params.c */ + + +/* The following definitions come from registry/reg_cachehook.c */ + +WERROR reghook_cache_init(void); +WERROR reghook_cache_add(const char *keyname, struct registry_ops *ops); +struct registry_ops *reghook_cache_find(const char *keyname); +void reghook_dump_cache( int debuglevel ); + +/* The following definitions come from registry/reg_dispatcher.c */ + +bool store_reg_keys(struct registry_key_handle *key, + struct regsubkey_ctr *subkeys); +bool store_reg_values(struct registry_key_handle *key, struct regval_ctr *val); +WERROR create_reg_subkey(struct registry_key_handle *key, const char *subkey); +WERROR delete_reg_subkey(struct registry_key_handle *key, const char *subkey); +int fetch_reg_keys(struct registry_key_handle *key, + struct regsubkey_ctr *subkey_ctr); +int fetch_reg_values(struct registry_key_handle *key, struct regval_ctr *val); +bool regkey_access_check(struct registry_key_handle *key, uint32 requested, + uint32 *granted, + const struct nt_user_token *token); +WERROR regkey_get_secdesc(TALLOC_CTX *mem_ctx, struct registry_key_handle *key, + struct security_descriptor **psecdesc); +WERROR regkey_set_secdesc(struct registry_key_handle *key, + struct security_descriptor *psecdesc); +bool reg_subkeys_need_update(struct registry_key_handle *key, + struct regsubkey_ctr *subkeys); +bool reg_values_need_update(struct registry_key_handle *key, + struct regval_ctr *values); + +/* The following definitions come from registry/reg_eventlog.c */ + +bool eventlog_init_keys(void); +bool eventlog_add_source( const char *eventlog, const char *sourcename, + const char *messagefile ); + +/* The following definitions come from registry/reg_init_basic.c */ + +WERROR registry_init_common(void); +WERROR registry_init_basic(void); + +/* The following definitions come from registry/reg_init_full.c */ + +WERROR registry_init_full(void); + +/* The following definitions come from registry/reg_init_smbconf.c */ + +NTSTATUS registry_create_admin_token(TALLOC_CTX *mem_ctx, + NT_USER_TOKEN **ptoken); +WERROR registry_init_smbconf(const char *keyname); + +/* The following definitions come from registry/reg_perfcount.c */ + +void perfcount_init_keys( void ); +uint32 reg_perfcount_get_base_index(void); +uint32 reg_perfcount_get_last_counter(uint32 base_index); +uint32 reg_perfcount_get_last_help(uint32 last_counter); +uint32 reg_perfcount_get_counter_help(uint32 base_index, char **retbuf); +uint32 reg_perfcount_get_counter_names(uint32 base_index, char **retbuf); +WERROR reg_perfcount_get_hkpd(prs_struct *ps, uint32 max_buf_size, uint32 *outbuf_len, const char *object_ids); + +/* The following definitions come from registry/reg_util.c */ + +bool reg_split_path(char *path, char **base, char **new_path); +bool reg_split_key(char *path, char **base, char **key); +char *normalize_reg_path(TALLOC_CTX *ctx, const char *keyname ); +void normalize_dbkey(char *key); +char *reg_remaining_path(TALLOC_CTX *ctx, const char *key); + +/* The following definitions come from registry/reg_util_legacy.c */ + +WERROR regkey_open_internal(TALLOC_CTX *ctx, + struct registry_key_handle **regkey, + const char *path, + const struct nt_user_token *token, + uint32 access_desired ); + +/* The following definitions come from registry/regfio.c */ + +/* The following definitions come from lib/util_reg_api.c */ + +WERROR registry_pull_value(TALLOC_CTX *mem_ctx, + struct registry_value **pvalue, + enum winreg_Type type, uint8 *data, + uint32 size, uint32 length); +WERROR registry_push_value(TALLOC_CTX *mem_ctx, + const struct registry_value *value, + DATA_BLOB *presult); + |