[SCM] Samba Shared Repository - branch master updated
Michael Adam
obnox at samba.org
Tue May 25 02:54:25 MDT 2010
The branch, master has been updated
via af2cbaa... s3:registry: add C for substantial changes to reg_objects
via 80293b8... s3:registry:reg_objects: Remove use of uint{8,16,32} in favour of C99 types
via 0b446e0... s3:registry: add comment header block to registry.h
via 0fe1ff9... s3:registry: move reg_objects.h to registry/ and use it only where needed
via 552e505... s3:registry: move non-reg_objects definitions from reg_objects.h to registry.h
via 75e691a... s3:registry: hide definition of regval_ctr and regval_blob in reg_objects.c
via 0e8e5d5... s3:net rpc registry: use regval_ctr_init() instead of direct allocation
via bf65ff5... s3:profiles: use regval_ctr_init() instead of direct allocation
via 7b2f5f2... s3:rpcclient:spoolss: use regval_ctr/blob accessor functions.
via 112eddf... s3:net_rpc_printer: use regval_blob/ctr accessor functions
via c4de07a... s3:net rpc printer: fix use of a possibly uninitialized variable
via b5d0fdd... s3:nt_printing: use regval_ctr_init().
via dcf2cc2... s3:srv_ntsvcs: use regval_ctr/blob accessor functions
via 1be8f5f... s3:services_db: use regval_ctr_init() instead of direct allocation
via 53ba74e... s3:libads:use regval_ctr/blob accessor functions in ldap_printer.c
via 5fbf935... s3:registry: use regval_ctr/blob accessor functoin in reg_eventlog.c
via a71dac4... s3:registry: user regval_ctr/blob accessor functions in reg_backend_db.c
via 0d20053... s3:registry: use regval_ctr/blob accessor functions in reg_api.c
via 987514d... s3:registry:reg_objects: add regval_ctr_set_seqnum()
via 6b33132... s3:registry:reg_objects: add regval_ctr_get_seqnum()
via e0d5bcc... s3:registry:reg_objects: add regval_ctr_init()
via 97846ed... s3:registry: move definition of registry_hook to reg_init_full.c - it's only user
via e829b42... s3:registry: extract registry_pull/push_value prototypes into own header
via 36b74e0... s3:registry: rename lib/util_reg_api.c to registry/reg_util_marshalling.c
via 773255b... s3:registry: rename reg_util.{c,h} to reg_util_internal.{c,h}
via f305373... s3:registry: move prototype registry_create_admin_token() to new header reg_util_token.h
via e3f7fab... s3:registry: move registry_create_admin_token() to new reg_util_token.c
via 847a19d... s3:registry: extract reg_eventlog prototypes to header of their own
via 5a92d88... s3:registry: extract reg_perfcount prototypes into header of their own.
via b94267a... s3:registry: extraxt the reg_dispatcher prototypes into their own header.
via d335f29... s3:registry: extract the reg_backend_db prototypes into their own header.
via 9ccf663... s3:registry: adapt callers of regval_ctr_addvalue to uint8 * instead of char *
via 70a8179... s3:registry: fix regval_ctr_addvalue() to take data as uint8 *, not char *.
via f7f9ce3... s3:registry: fix data_p arg of regval_compose to be uint8 * instead of char *
via 4ae77b2... s3:registry: extract the reg_util prototypes into their own header.
via c682fd6... s3:registry: remove superfluous comments from registry.h
via a4efda9... s3:registry: extract the reg_util_legacy prototypes into their own header.
via 14a0250... s3:registry: extract the reg_cachehook prototypes into their own header.
via 9c5d7c7... s3:registry: protect registry.h from multiple inclusion
via d59d9df... s3:registry: add C to reg_cachehook, confessing considerable changes in 2008
from 8eed328... s3:fix configure after change "add Werror_FLAGS for IBM's xlc"
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit af2cbaa700f8a56228131061ad10a1d219df1d83
Author: Michael Adam <obnox at samba.org>
Date: Tue May 25 10:53:17 2010 +0200
s3:registry: add C for substantial changes to reg_objects
commit 80293b80670d5106d1aa8822c2de081f7caecb64
Author: Michael Adam <obnox at samba.org>
Date: Tue May 25 10:32:51 2010 +0200
s3:registry:reg_objects: Remove use of uint{8,16,32} in favour of C99 types
commit 0b446e0842a9e79dcc290aa0841e56e0b0d2c495
Author: Michael Adam <obnox at samba.org>
Date: Tue May 25 08:54:29 2010 +0200
s3:registry: add comment header block to registry.h
commit 0fe1ff99a1aa6858ec0f1cfb1130b801238fc8e2
Author: Michael Adam <obnox at samba.org>
Date: Tue May 25 01:00:37 2010 +0200
s3:registry: move reg_objects.h to registry/ and use it only where needed
Every place outside of registry/ where this is used, should probably
be changed to use pure reg_api.c code.
commit 552e505cee966e7f734fb6bc8f5991bb5b73ba32
Author: Michael Adam <obnox at samba.org>
Date: Tue May 25 00:42:50 2010 +0200
s3:registry: move non-reg_objects definitions from reg_objects.h to registry.h
commit 75e691ae6baeac88878e2c8107ceb7e057fd4c5b
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 00:05:26 2010 +0200
s3:registry: hide definition of regval_ctr and regval_blob in reg_objects.c
commit 0e8e5d5d6e7a1ab54cd108d70ade6aa884effe8f
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 15:10:48 2010 +0200
s3:net rpc registry: use regval_ctr_init() instead of direct allocation
commit bf65ff5ea2b84f3f5406d840f759da87e146cc3a
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 15:08:58 2010 +0200
s3:profiles: use regval_ctr_init() instead of direct allocation
commit 7b2f5f20daded43705f4321acf1b9311fa0fe6d4
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 15:07:47 2010 +0200
s3:rpcclient:spoolss: use regval_ctr/blob accessor functions.
commit 112eddf107de7910224e5854fda9fea2bfd11087
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 14:48:31 2010 +0200
s3:net_rpc_printer: use regval_blob/ctr accessor functions
commit c4de07a2597911e71b763a00ca7c72b68128fdbb
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 14:18:21 2010 +0200
s3:net rpc printer: fix use of a possibly uninitialized variable
commit b5d0fdd96c835281378d21a7dc73b1fd8f100d9f
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 14:08:01 2010 +0200
s3:nt_printing: use regval_ctr_init().
commit dcf2cc2806bcccef42adf84c8a60e875bc49efdf
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 14:06:20 2010 +0200
s3:srv_ntsvcs: use regval_ctr/blob accessor functions
commit 1be8f5fba4d5059a43732e2ad65ab269132bd205
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 14:03:46 2010 +0200
s3:services_db: use regval_ctr_init() instead of direct allocation
commit 53ba74ecee5ac0cb75f51f3af9f0c62119ed5367
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 13:57:35 2010 +0200
s3:libads:use regval_ctr/blob accessor functions in ldap_printer.c
commit 5fbf935ffce6204843fc498afd02dc3ba1dd9ff5
Author: Michael Adam <obnox at samba.org>
Date: Sun May 23 23:59:34 2010 +0200
s3:registry: use regval_ctr/blob accessor functoin in reg_eventlog.c
commit a71dac488233a9d95df32361d10d96dde951988c
Author: Michael Adam <obnox at samba.org>
Date: Sun May 23 23:58:28 2010 +0200
s3:registry: user regval_ctr/blob accessor functions in reg_backend_db.c
commit 0d20053f101f21f584f5bf5562ffc767979081db
Author: Michael Adam <obnox at samba.org>
Date: Sun May 23 23:56:40 2010 +0200
s3:registry: use regval_ctr/blob accessor functions in reg_api.c
commit 987514d98d3cb8711b5c56b5416fa690ecb3b8eb
Author: Michael Adam <obnox at samba.org>
Date: Sun May 23 22:55:12 2010 +0200
s3:registry:reg_objects: add regval_ctr_set_seqnum()
commit 6b331321e3d2bdf67c7acd63138b62fcf7cc5208
Author: Michael Adam <obnox at samba.org>
Date: Sun May 23 22:53:44 2010 +0200
s3:registry:reg_objects: add regval_ctr_get_seqnum()
commit e0d5bccfd381ebb83ee7d626ee94087d47f4b8dd
Author: Michael Adam <obnox at samba.org>
Date: Sun May 23 22:47:53 2010 +0200
s3:registry:reg_objects: add regval_ctr_init()
commit 97846edfa59b95572d176981bb4bab6a5c06b61c
Author: Michael Adam <obnox at samba.org>
Date: Tue May 25 00:31:01 2010 +0200
s3:registry: move definition of registry_hook to reg_init_full.c - it's only user
commit e829b42978d91cf8a5ec67cd322e66a538f7fd75
Author: Michael Adam <obnox at samba.org>
Date: Tue May 25 00:15:52 2010 +0200
s3:registry: extract registry_pull/push_value prototypes into own header
reg_util_marshalling.h and use them only where needed.
commit 36b74e03cfec6bb5aaa7c3909c115629f0b076b1
Author: Michael Adam <obnox at samba.org>
Date: Tue May 25 00:08:15 2010 +0200
s3:registry: rename lib/util_reg_api.c to registry/reg_util_marshalling.c
commit 773255ba504201e5ec1c34dbe30f40fd2bc0447d
Author: Michael Adam <obnox at samba.org>
Date: Tue May 25 00:04:13 2010 +0200
s3:registry: rename reg_util.{c,h} to reg_util_internal.{c,h}
commit f3053739b7e62e4749821bf2283d67ec379b1abc
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 23:37:09 2010 +0200
s3:registry: move prototype registry_create_admin_token() to new header reg_util_token.h
and use it only where necessary.
commit e3f7fab668c1bf1366257f64a5099cca919ca358
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 23:27:57 2010 +0200
s3:registry: move registry_create_admin_token() to new reg_util_token.c
commit 847a19df946432558e75a6f81f0a761407114f45
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 23:06:27 2010 +0200
s3:registry: extract reg_eventlog prototypes to header of their own
and use them only where needed.
commit 5a92d88f38dc9fc65db7e6451eae2d22da04463e
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 22:59:04 2010 +0200
s3:registry: extract reg_perfcount prototypes into header of their own.
And use them only when necessary.
commit b94267aa3f83ec604e8b242006e09ecf4f7d5e57
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 22:49:42 2010 +0200
s3:registry: extraxt the reg_dispatcher prototypes into their own header.
And use them only where needed.
commit d335f292ce10824d483eff8d34fb0444e3d91f23
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 22:42:00 2010 +0200
s3:registry: extract the reg_backend_db prototypes into their own header.
And use them only where needed.
commit 9ccf66379a946cef87d915c5f0f7758adb11a4d6
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 22:19:17 2010 +0200
s3:registry: adapt callers of regval_ctr_addvalue to uint8 * instead of char *
commit 70a81796fca29d3e924ab6a9396b1a4ab344a730
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 15:15:33 2010 +0200
s3:registry: fix regval_ctr_addvalue() to take data as uint8 *, not char *.
commit f7f9ce30caa838f8408faa4bddcaebe2e266a0e4
Author: Michael Adam <obnox at samba.org>
Date: Mon May 24 15:00:29 2010 +0200
s3:registry: fix data_p arg of regval_compose to be uint8 * instead of char *
commit 4ae77b2ef9ef5f936055b03a7fb96231a069683b
Author: Michael Adam <obnox at samba.org>
Date: Sun May 23 16:11:13 2010 +0200
s3:registry: extract the reg_util prototypes into their own header.
And use them only where needed.
commit c682fd65b20e6b17150b3a57bebb222767c60796
Author: Michael Adam <obnox at samba.org>
Date: Sun May 23 16:00:35 2010 +0200
s3:registry: remove superfluous comments from registry.h
commit a4efda959af36e0611c5204852dc1eea3f0310bf
Author: Michael Adam <obnox at samba.org>
Date: Sun May 23 15:57:27 2010 +0200
s3:registry: extract the reg_util_legacy prototypes into their own header.
And use them only where necessary.
commit 14a025062ee2923aac4f9e57c05a9004ddf55856
Author: Michael Adam <obnox at samba.org>
Date: Sun May 23 15:25:00 2010 +0200
s3:registry: extract the reg_cachehook prototypes into their own header.
And use them only where necessary.
commit 9c5d7c789664d15017a837ad735b79e3b0ea4479
Author: Michael Adam <obnox at samba.org>
Date: Sun May 23 13:32:08 2010 +0200
s3:registry: protect registry.h from multiple inclusion
commit d59d9dfb90c67a5332ca76f38702ba6bacc0da76
Author: Michael Adam <obnox at samba.org>
Date: Sun May 23 13:28:05 2010 +0200
s3:registry: add C to reg_cachehook, confessing considerable changes in 2008
-----------------------------------------------------------------------
Summary of changes:
source3/Makefile.in | 8 +-
source3/include/reg_objects.h | 206 ------------------
source3/include/registry.h | 271 +++++++++++++-----------
source3/lib/smbconf/smbconf_reg.c | 2 +
source3/lib/util_reg_api.c | 215 -------------------
source3/libads/ldap_printer.c | 77 ++++---
source3/libgpo/gpo_reg.c | 1 +
source3/printing/nt_printing.c | 14 +-
source3/registry/reg_api.c | 81 ++++---
source3/registry/reg_backend_current_version.c | 2 +
source3/registry/reg_backend_db.c | 27 ++-
source3/registry/reg_backend_db.h | 41 ++++
source3/registry/reg_backend_hkpt_params.c | 6 +-
source3/registry/reg_backend_netlogon_params.c | 3 +-
source3/registry/reg_backend_perflib.c | 15 +-
source3/registry/reg_backend_printing.c | 39 ++--
source3/registry/reg_backend_prod_options.c | 1 +
source3/registry/reg_backend_shares.c | 1 +
source3/registry/reg_backend_tcpip_params.c | 1 +
source3/registry/reg_cachehook.c | 2 +
source3/registry/reg_cachehook.h | 29 +++
source3/registry/reg_dispatcher.c | 1 +
source3/registry/reg_dispatcher.h | 44 ++++
source3/registry/reg_eventlog.c | 37 ++--
source3/registry/reg_eventlog.h | 29 +++
source3/registry/reg_init_basic.c | 2 +
source3/registry/reg_init_full.c | 9 +
source3/registry/reg_init_smbconf.c | 40 +----
source3/registry/reg_objects.c | 99 +++++++--
source3/registry/reg_objects.h | 76 +++++++
source3/registry/reg_perfcount.c | 1 +
source3/registry/reg_perfcount.h | 33 +++
source3/registry/reg_util.c | 161 --------------
source3/registry/reg_util_internal.c | 162 ++++++++++++++
source3/registry/reg_util_internal.h | 29 +++
source3/registry/reg_util_legacy.c | 1 +
source3/registry/reg_util_legacy.h | 45 ++++
source3/registry/reg_util_marshalling.c | 216 +++++++++++++++++++
source3/registry/reg_util_marshalling.h | 32 +++
source3/registry/reg_util_token.c | 59 +++++
source3/registry/reg_util_token.h | 26 +++
source3/rpc_server/srv_ntsvcs_nt.c | 11 +-
source3/rpc_server/srv_spoolss_nt.c | 1 +
source3/rpc_server/srv_svcctl_nt.c | 1 +
source3/rpc_server/srv_winreg_nt.c | 2 +
source3/rpcclient/cmd_spoolss.c | 41 +++--
source3/services/services_db.c | 34 ++-
source3/utils/eventlogadm.c | 2 +
source3/utils/net_registry.c | 1 +
source3/utils/net_rpc_printer.c | 94 +++++----
source3/utils/net_rpc_registry.c | 7 +-
source3/utils/profiles.c | 7 +-
52 files changed, 1376 insertions(+), 969 deletions(-)
delete mode 100644 source3/include/reg_objects.h
delete mode 100644 source3/lib/util_reg_api.c
create mode 100644 source3/registry/reg_backend_db.h
create mode 100644 source3/registry/reg_cachehook.h
create mode 100644 source3/registry/reg_dispatcher.h
create mode 100644 source3/registry/reg_eventlog.h
create mode 100644 source3/registry/reg_objects.h
create mode 100644 source3/registry/reg_perfcount.h
delete mode 100644 source3/registry/reg_util.c
create mode 100644 source3/registry/reg_util_internal.c
create mode 100644 source3/registry/reg_util_internal.h
create mode 100644 source3/registry/reg_util_legacy.h
create mode 100644 source3/registry/reg_util_marshalling.c
create mode 100644 source3/registry/reg_util_marshalling.h
create mode 100644 source3/registry/reg_util_token.c
create mode 100644 source3/registry/reg_util_token.h
Changeset truncated at 500 lines:
diff --git a/source3/Makefile.in b/source3/Makefile.in
index f895374..5465e8b 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -561,7 +561,8 @@ LIBMSRPC_GEN_OBJ = librpc/gen_ndr/cli_lsa.o \
# registry-related objects
#
UTIL_REG_OBJ = ../libcli/registry/util_reg.o
-UTIL_REG_API_OBJ = lib/util_reg_api.o
+
+REG_UTIL_MARSHALLING_OBJ = registry/reg_util_marshalling.o
REG_INIT_BASIC_OBJ = registry/reg_init_basic.o
REG_INIT_SMBCONF_OBJ = registry/reg_init_smbconf.o
@@ -589,13 +590,14 @@ REG_BASE_OBJ = registry/reg_api.o \
registry/reg_cachehook.o \
$(REGFIO_OBJ) \
$(REGOBJS_OBJ) \
- registry/reg_util.o \
- $(UTIL_REG_API_OBJ) \
+ registry/reg_util_internal.o \
+ $(REG_UTIL_MARSHALLING_OBJ) \
lib/util_nttoken.o \
$(REG_BACKENDS_BASE_OBJ) \
$(REG_INIT_BASIC_OBJ)
REG_SMBCONF_OBJ = $(REG_BASE_OBJ) \
+ registry/reg_util_token.o \
$(REG_BACKENDS_SMBCONF_OBJ) \
$(REG_INIT_SMBCONF_OBJ)
diff --git a/source3/include/reg_objects.h b/source3/include/reg_objects.h
deleted file mode 100644
index 761bb49..0000000
--- a/source3/include/reg_objects.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- Samba's Internal Registry objects
-
- SMB parameters and setup
- Copyright (C) Gerald Carter 2002-2006.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _REG_OBJECTS_H /* _REG_OBJECTS_H */
-#define _REG_OBJECTS_H
-
-/* low level structure to contain registry values */
-
-struct regval_blob {
- fstring valuename;
- uint16 type;
- /* this should be encapsulated in an RPC_DATA_BLOB */
- uint32 size; /* in bytes */
- uint8 *data_p;
-};
-
-/*
- * A REG_SZ string is not necessarily NULL terminated. When retrieving it from
- * the net, we guarantee this however. A server might want to push it without
- * the terminator though.
- */
-
-struct registry_string {
- size_t len;
- char *str;
-};
-
-struct registry_value {
- enum winreg_Type type;
- union {
- uint32 dword;
- uint64 qword;
- struct registry_string sz;
- struct {
- uint32 num_strings;
- char **strings;
- } multi_sz;
- DATA_BLOB binary;
- } v;
-};
-
-/* container for registry values */
-
-struct regval_ctr {
- uint32 num_values;
- struct regval_blob **values;
- int seqnum;
-};
-
-/* container for registry subkey names */
-
-struct regsubkey_ctr;
-
-/*
- *
- * Macros that used to reside in rpc_reg.h
- *
- */
-
-#define HKEY_CLASSES_ROOT 0x80000000
-#define HKEY_CURRENT_USER 0x80000001
-#define HKEY_LOCAL_MACHINE 0x80000002
-#define HKEY_USERS 0x80000003
-#define HKEY_PERFORMANCE_DATA 0x80000004
-
-#define KEY_HKLM "HKLM"
-#define KEY_HKU "HKU"
-#define KEY_HKCC "HKCC"
-#define KEY_HKCR "HKCR"
-#define KEY_HKPD "HKPD"
-#define KEY_HKPT "HKPT"
-#define KEY_HKPN "HKPN"
-#define KEY_HKCU "HKCU"
-#define KEY_HKDD "HKDD"
-#define KEY_SERVICES "HKLM\\SYSTEM\\CurrentControlSet\\Services"
-#define KEY_EVENTLOG "HKLM\\SYSTEM\\CurrentControlSet\\Services\\Eventlog"
-#define KEY_SHARES "HKLM\\SYSTEM\\CurrentControlSet\\Services\\LanmanServer\\Shares"
-#define KEY_NETLOGON_PARAMS "HKLM\\SYSTEM\\CurrentControlSet\\Services\\Netlogon\\Parameters"
-#define KEY_TCPIP_PARAMS "HKLM\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters"
-#define KEY_PROD_OPTIONS "HKLM\\SYSTEM\\CurrentControlSet\\Control\\ProductOptions"
-#define KEY_PRINTING "HKLM\\SYSTEM\\CurrentControlSet\\Control\\Print"
-#define KEY_PRINTING_2K "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Print\\Printers"
-#define KEY_PRINTING_PORTS "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Ports"
-#define KEY_CURRENT_VERSION "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"
-#define KEY_PERFLIB "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Perflib"
-#define KEY_PERFLIB_009 "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Perflib\\009"
-#define KEY_GROUP_POLICY "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Group Policy"
-#define KEY_WINLOGON "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon"
-#define KEY_SMBCONF "HKLM\\SOFTWARE\\Samba\\smbconf"
-#define KEY_SAMBA_GROUP_POLICY "HKLM\\SOFTWARE\\Samba\\Group Policy"
-#define KEY_TREE_ROOT ""
-
-#define KEY_GP_MACHINE_POLICY "HKLM\\Software\\Policies"
-#define KEY_GP_MACHINE_WIN_POLICY "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies"
-#define KEY_GP_USER_POLICY "HKCU\\Software\\Policies"
-#define KEY_GP_USER_WIN_POLICY "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies"
-/*
- * Registry key types
- * Most keys are going to be GENERIC -- may need a better name?
- * HKPD and HKPT are used by reg_perfcount.c
- * they are special keys that contain performance data
- */
-#define REG_KEY_GENERIC 0
-#define REG_KEY_HKPD 1
-#define REG_KEY_HKPT 2
-
-/*
- * container for function pointers to enumeration routines
- * for virtual registry view
- */
-
-struct registry_ops {
- /* functions for enumerating subkeys and values */
- int (*fetch_subkeys)( const char *key, struct regsubkey_ctr *subkeys);
- int (*fetch_values) ( const char *key, struct regval_ctr *val );
- bool (*store_subkeys)( const char *key, struct regsubkey_ctr *subkeys );
- WERROR (*create_subkey)(const char *key, const char *subkey);
- WERROR (*delete_subkey)(const char *key, const char *subkey);
- bool (*store_values)( const char *key, struct regval_ctr *val );
- bool (*reg_access_check)( const char *keyname, uint32 requested,
- uint32 *granted,
- const NT_USER_TOKEN *token );
- WERROR (*get_secdesc)(TALLOC_CTX *mem_ctx, const char *key,
- struct security_descriptor **psecdesc);
- WERROR (*set_secdesc)(const char *key,
- struct security_descriptor *sec_desc);
- bool (*subkeys_need_update)(struct regsubkey_ctr *subkeys);
- bool (*values_need_update)(struct regval_ctr *values);
-};
-
-struct registry_hook {
- const char *keyname; /* full path to name of key */
- struct registry_ops *ops; /* registry function hooks */
-};
-
-
-/* structure to store the registry handles */
-
-struct registry_key_handle {
- uint32 type;
- char *name; /* full name of registry key */
- uint32 access_granted;
- struct registry_ops *ops;
-};
-
-struct registry_key {
- struct registry_key_handle *key;
- struct regsubkey_ctr *subkeys;
- struct regval_ctr *values;
- 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/registry.h b/source3/include/registry.h
index 5644819..703176f 100644
--- a/source3/include/registry.h
+++ b/source3/include/registry.h
@@ -1,4 +1,152 @@
-#include "reg_objects.h"
+/*
+ * Unix SMB/CIFS implementation.
+ * Virtual Windows Registry Layer
+ *
+ * Copyright (C) Gerald Carter 2002-2005
+ * Copyright (C) Volker Lendecke 2006
+ * Copyright (C) Michael Adam 2006-2010
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef _REGISTRY_H
+#define _REGISTRY_H
+
+/*
+ * A REG_SZ string is not necessarily NULL terminated. When retrieving it from
+ * the net, we guarantee this however. A server might want to push it without
+ * the terminator though.
+ */
+
+struct registry_string {
+ size_t len;
+ char *str;
+};
+
+struct registry_value {
+ enum winreg_Type type;
+ union {
+ uint32 dword;
+ uint64 qword;
+ struct registry_string sz;
+ struct {
+ uint32 num_strings;
+ char **strings;
+ } multi_sz;
+ DATA_BLOB binary;
+ } v;
+};
+
+/* forward declarations. definitions in reg_objects.c */
+struct regval_ctr;
+struct regsubkey_ctr;
+
+/*
+ * container for function pointers to enumeration routines
+ * for virtual registry view
+ */
+
+struct registry_ops {
+ /* functions for enumerating subkeys and values */
+ int (*fetch_subkeys)( const char *key, struct regsubkey_ctr *subkeys);
+ int (*fetch_values) ( const char *key, struct regval_ctr *val );
+ bool (*store_subkeys)( const char *key, struct regsubkey_ctr *subkeys );
+ WERROR (*create_subkey)(const char *key, const char *subkey);
+ WERROR (*delete_subkey)(const char *key, const char *subkey);
+ bool (*store_values)( const char *key, struct regval_ctr *val );
+ bool (*reg_access_check)( const char *keyname, uint32 requested,
+ uint32 *granted,
+ const NT_USER_TOKEN *token );
+ WERROR (*get_secdesc)(TALLOC_CTX *mem_ctx, const char *key,
+ struct security_descriptor **psecdesc);
+ WERROR (*set_secdesc)(const char *key,
+ struct security_descriptor *sec_desc);
+ bool (*subkeys_need_update)(struct regsubkey_ctr *subkeys);
+ bool (*values_need_update)(struct regval_ctr *values);
+};
+
+/* structure to store the registry handles */
+
+struct registry_key_handle {
+ uint32 type;
+ char *name; /* full name of registry key */
+ uint32 access_granted;
+ struct registry_ops *ops;
+};
+
+struct registry_key {
+ struct registry_key_handle *key;
+ struct regsubkey_ctr *subkeys;
+ struct regval_ctr *values;
+ struct nt_user_token *token;
+};
+
+
+/*
+ *
+ * Macros that used to reside in rpc_reg.h
+ *
+ */
+
+#define HKEY_CLASSES_ROOT 0x80000000
+#define HKEY_CURRENT_USER 0x80000001
+#define HKEY_LOCAL_MACHINE 0x80000002
+#define HKEY_USERS 0x80000003
+#define HKEY_PERFORMANCE_DATA 0x80000004
+
+#define KEY_HKLM "HKLM"
+#define KEY_HKU "HKU"
+#define KEY_HKCC "HKCC"
+#define KEY_HKCR "HKCR"
+#define KEY_HKPD "HKPD"
+#define KEY_HKPT "HKPT"
+#define KEY_HKPN "HKPN"
+#define KEY_HKCU "HKCU"
+#define KEY_HKDD "HKDD"
+#define KEY_SERVICES "HKLM\\SYSTEM\\CurrentControlSet\\Services"
+#define KEY_EVENTLOG "HKLM\\SYSTEM\\CurrentControlSet\\Services\\Eventlog"
+#define KEY_SHARES "HKLM\\SYSTEM\\CurrentControlSet\\Services\\LanmanServer\\Shares"
+#define KEY_NETLOGON_PARAMS "HKLM\\SYSTEM\\CurrentControlSet\\Services\\Netlogon\\Parameters"
+#define KEY_TCPIP_PARAMS "HKLM\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters"
+#define KEY_PROD_OPTIONS "HKLM\\SYSTEM\\CurrentControlSet\\Control\\ProductOptions"
+#define KEY_PRINTING "HKLM\\SYSTEM\\CurrentControlSet\\Control\\Print"
+#define KEY_PRINTING_2K "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Print\\Printers"
+#define KEY_PRINTING_PORTS "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Ports"
+#define KEY_CURRENT_VERSION "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"
+#define KEY_PERFLIB "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Perflib"
+#define KEY_PERFLIB_009 "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Perflib\\009"
+#define KEY_GROUP_POLICY "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Group Policy"
+#define KEY_WINLOGON "HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon"
+#define KEY_SMBCONF "HKLM\\SOFTWARE\\Samba\\smbconf"
+#define KEY_SAMBA_GROUP_POLICY "HKLM\\SOFTWARE\\Samba\\Group Policy"
+#define KEY_TREE_ROOT ""
+
+#define KEY_GP_MACHINE_POLICY "HKLM\\Software\\Policies"
+#define KEY_GP_MACHINE_WIN_POLICY "HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies"
+#define KEY_GP_USER_POLICY "HKCU\\Software\\Policies"
+#define KEY_GP_USER_WIN_POLICY "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies"
+
+/*
+ * Registry key types
+ * Most keys are going to be GENERIC -- may need a better name?
+ * HKPD and HKPT are used by reg_perfcount.c
+ * they are special keys that contain performance data
+ */
+#define REG_KEY_GENERIC 0
+#define REG_KEY_HKPD 1
+#define REG_KEY_HKPT 2
+
/* The following definitions come from registry/reg_api.c */
@@ -53,86 +201,6 @@ WERROR reg_create_path(TALLOC_CTX *mem_ctx, const char *orig_path,
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);
@@ -144,45 +212,6 @@ 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);
--
Samba Shared Repository
More information about the samba-cvs
mailing list