[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