svn commit: samba r15361 - in
branches/SAMBA_4_0/source/lib/registry: . common tools
jelmer at samba.org
jelmer at samba.org
Sun Apr 30 16:09:01 GMT 2006
Author: jelmer
Date: 2006-04-30 16:09:00 +0000 (Sun, 30 Apr 2006)
New Revision: 15361
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15361
Log:
Export table of predefined registry keys
Modified:
branches/SAMBA_4_0/source/lib/registry/common/reg_interface.c
branches/SAMBA_4_0/source/lib/registry/registry.h
branches/SAMBA_4_0/source/lib/registry/tools/regtree.c
Changeset:
Modified: branches/SAMBA_4_0/source/lib/registry/common/reg_interface.c
===================================================================
--- branches/SAMBA_4_0/source/lib/registry/common/reg_interface.c 2006-04-30 14:34:30 UTC (rev 15360)
+++ branches/SAMBA_4_0/source/lib/registry/common/reg_interface.c 2006-04-30 16:09:00 UTC (rev 15361)
@@ -34,7 +34,7 @@
static struct reg_init_function_entry *reg_find_backend_entry(const char *name);
/** Register a new backend. */
-_PUBLIC_ NTSTATUS registry_register(const void *_hive_ops)
+_PUBLIC_ NTSTATUS registry_register(const void *_hive_ops)
{
const struct hive_operations *hive_ops = _hive_ops;
struct reg_init_function_entry *entry = backends;
@@ -90,11 +90,7 @@
return reg_find_backend_entry(backend) != NULL?True:False;
}
-static const struct {
- uint32_t handle;
- const char *name;
-} predef_names[] =
-{
+const struct reg_predefined_key reg_predefined_keys[] = {
{HKEY_CLASSES_ROOT,"HKEY_CLASSES_ROOT" },
{HKEY_CURRENT_USER,"HKEY_CURRENT_USER" },
{HKEY_LOCAL_MACHINE, "HKEY_LOCAL_MACHINE" },
@@ -111,12 +107,12 @@
_PUBLIC_ int reg_list_predefs(TALLOC_CTX *mem_ctx, char ***predefs, uint32_t **hkeys)
{
int i;
- *predefs = talloc_array(mem_ctx, char *, ARRAY_SIZE(predef_names));
- *hkeys = talloc_array(mem_ctx, uint32_t, ARRAY_SIZE(predef_names));
+ *predefs = talloc_array(mem_ctx, char *, ARRAY_SIZE(reg_predefined_keys));
+ *hkeys = talloc_array(mem_ctx, uint32_t, ARRAY_SIZE(reg_predefined_keys));
- for (i = 0; predef_names[i].name; i++) {
- (*predefs)[i] = talloc_strdup(mem_ctx, predef_names[i].name);
- (*hkeys)[i] = predef_names[i].handle;
+ for (i = 0; reg_predefined_keys[i].name; i++) {
+ (*predefs)[i] = talloc_strdup(mem_ctx, reg_predefined_keys[i].name);
+ (*hkeys)[i] = reg_predefined_keys[i].handle;
}
return i;
@@ -126,8 +122,8 @@
_PUBLIC_ const char *reg_get_predef_name(uint32_t hkey)
{
int i;
- for (i = 0; predef_names[i].name; i++) {
- if (predef_names[i].handle == hkey) return predef_names[i].name;
+ for (i = 0; reg_predefined_keys[i].name; i++) {
+ if (reg_predefined_keys[i].handle == hkey) return reg_predefined_keys[i].name;
}
return NULL;
@@ -138,8 +134,8 @@
{
int i;
- for (i = 0; predef_names[i].name; i++) {
- if (!strcasecmp(predef_names[i].name, name)) return reg_get_predefined_key(ctx, predef_names[i].handle, key);
+ for (i = 0; reg_predefined_keys[i].name; i++) {
+ if (!strcasecmp(reg_predefined_keys[i].name, name)) return reg_get_predefined_key(ctx, reg_predefined_keys[i].handle, key);
}
DEBUG(1, ("No predefined key with name '%s'\n", name));
Modified: branches/SAMBA_4_0/source/lib/registry/registry.h
===================================================================
--- branches/SAMBA_4_0/source/lib/registry/registry.h 2006-04-30 14:34:30 UTC (rev 15360)
+++ branches/SAMBA_4_0/source/lib/registry/registry.h 2006-04-30 16:09:00 UTC (rev 15361)
@@ -36,6 +36,13 @@
#define HKEY_PERFORMANCE_TEXT 0x80000050
#define HKEY_PERFORMANCE_NLSTEXT 0x80000060
+struct reg_predefined_key {
+ uint32_t handle;
+ const char *name;
+};
+
+extern const struct reg_predefined_key reg_predefined_keys[];
+
#define REG_DELETE -1
/*
@@ -145,6 +152,8 @@
struct reg_init_function_entry *prev, *next;
};
+/* Representing differences between registry files */
+
struct reg_diff_value
{
char *name;
Modified: branches/SAMBA_4_0/source/lib/registry/tools/regtree.c
===================================================================
--- branches/SAMBA_4_0/source/lib/registry/tools/regtree.c 2006-04-30 14:34:30 UTC (rev 15360)
+++ branches/SAMBA_4_0/source/lib/registry/tools/regtree.c 2006-04-30 16:09:00 UTC (rev 15361)
@@ -125,10 +125,10 @@
if (!h) {
print_tree(0, root, fullpath, no_values);
} else {
- for(i = HKEY_CLASSES_ROOT; i < HKEY_PERFORMANCE_NLSTEXT; i++) {
- error = reg_get_predefined_key(h, i, &root);
+ for(i = 0; reg_predefined_keys[i].handle; i++) {
+ error = reg_get_predefined_key(h, reg_predefined_keys[i].handle, &root);
if (!W_ERROR_IS_OK(error)) {
- fprintf(stderr, "Skipping %s\n", reg_get_predef_name(i));
+ fprintf(stderr, "Skipping %s\n", reg_predefined_keys[i].name);
continue;
}
print_tree(0, root, fullpath, no_values);
More information about the samba-cvs
mailing list