diff options
author | Simo Sorce <idra@samba.org> | 2001-08-10 09:52:10 +0000 |
---|---|---|
committer | Simo Sorce <idra@samba.org> | 2001-08-10 09:52:10 +0000 |
commit | acc149c427e780b35ebe3028722ed0c42c4c3854 (patch) | |
tree | 064b2307dac4fbaa23c1fdab0d900b63faf04737 /source3/include | |
parent | 5c47841335059ace57dfbf03e35872504d86b447 (diff) | |
download | samba-acc149c427e780b35ebe3028722ed0c42c4c3854.tar.gz samba-acc149c427e780b35ebe3028722ed0c42c4c3854.tar.bz2 samba-acc149c427e780b35ebe3028722ed0c42c4c3854.zip |
- avoid possible mem leaks in rpcclient/cmd_*.c (talloc_destroy not performed)
- ported two rpc back from TNG (WINREG: shutdown and abort shutdown)
- some optimizations and changed some DEBUG statement in loadparm.c
- changed rpcclient a bit moved from non reentrant next_token_nr to next_token
- in cmd_reg.c not sure if getopt will work ok on all platforms only setting optind=0
(This used to be commit fd54412ce9c3504a547e232602d6129e08dd9d4d)
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/rpc_reg.h | 174 | ||||
-rw-r--r-- | source3/include/util_getent.h | 5 |
2 files changed, 126 insertions, 53 deletions
diff --git a/source3/include/rpc_reg.h b/source3/include/rpc_reg.h index 103a7492cd..f65d8d7cc3 100644 --- a/source3/include/rpc_reg.h +++ b/source3/include/rpc_reg.h @@ -26,47 +26,81 @@ /* winreg pipe defines */ -#define REG_OPEN_HKLM 0x02 -#define REG_OPEN_HKU 0x04 -#define REG_FLUSH_KEY 0x0B -#define REG_UNK_1A 0x1a -#define REG_QUERY_KEY 0x10 -#define REG_ENUM_KEY 0x09 -#define REG_CREATE_KEY 0x06 -#define REG_DELETE_KEY 0x07 -#define REG_DELETE_VALUE 0x08 -#define REG_CREATE_VALUE 0x16 -#define REG_GET_KEY_SEC 0x0c -#define REG_SET_KEY_SEC 0x15 -#define REG_ENUM_VALUE 0x0a -#define REG_OPEN_ENTRY 0x0f -#define REG_INFO 0x11 -#define REG_CLOSE 0x05 - -#define HKEY_LOCAL_MACHINE 0x80000000 -#define HKEY_USERS 0x80000003 - -/* REG_Q_OPEN_HKLM */ -typedef struct q_reg_open_policy_info +#define REG_OPEN_HKCR 0x00 +#define _REG_UNK_01 0x01 +#define REG_OPEN_HKLM 0x02 +#define _REG_UNK_03 0x03 +#define REG_OPEN_HKU 0x04 +#define REG_CLOSE 0x05 +#define REG_CREATE_KEY 0x06 +#define REG_DELETE_KEY 0x07 +#define REG_DELETE_VALUE 0x08 +#define REG_ENUM_KEY 0x09 +#define REG_ENUM_VALUE 0x0a +#define REG_FLUSH_KEY 0x0b +#define REG_GET_KEY_SEC 0x0c +#define _REG_UNK_0D 0x0d +#define _REG_UNK_0E 0x0e +#define REG_OPEN_ENTRY 0x0f +#define REG_QUERY_KEY 0x10 +#define REG_INFO 0x11 +#define _REG_UNK_12 0x12 +#define _REG_UNK_13 0x13 +#define _REG_UNK_14 0x14 +#define REG_SET_KEY_SEC 0x15 +#define REG_CREATE_VALUE 0x16 +#define _REG_UNK_17 0x17 +#define REG_SHUTDOWN 0x18 +#define REG_ABORT_SHUTDOWN 0x19 +#define REG_UNK_1A 0x1a + +#define HKEY_CLASSES_ROOT 0x80000000 +#define HKEY_CURRENT_USER 0x80000001 +#define HKEY_LOCAL_MACHINE 0x80000002 +#define HKEY_USERS 0x80000003 + +/* REG_Q_OPEN_HKCR */ +typedef struct q_reg_open_hkcr_info { uint32 ptr; - uint16 unknown_0; /* 0xE084 - 16 bit unknown */ + uint16 unknown_0; /* 0x5428 - 16 bit unknown */ uint16 unknown_1; /* random. changes */ uint32 level; /* 0x0000 0002 - 32 bit unknown */ -} REG_Q_OPEN_HKLM ; +} REG_Q_OPEN_HKCR ; -/* REG_R_OPEN_HKLM */ -typedef struct r_reg_open_policy_info +/* REG_R_OPEN_HKCR */ +typedef struct r_reg_open_hkcr_info { POLICY_HND pol; /* policy handle */ uint32 status; /* return status */ -} REG_R_OPEN_HKLM; +} REG_R_OPEN_HKCR; + + +/* REG_Q_OPEN_HKLM */ +typedef struct q_reg_open_hklm_info +{ + uint32 ptr; + uint16 unknown_0; /* 0xE084 - 16 bit unknown */ + uint16 unknown_1; /* random. changes */ + uint32 access_mask; /* 0x0000 0002 - 32 bit unknown */ + +} +REG_Q_OPEN_HKLM; + +/* REG_R_OPEN_HKLM */ +typedef struct r_reg_open_hklm_info +{ + POLICY_HND pol; /* policy handle */ + uint32 status; /* return status */ + +} +REG_R_OPEN_HKLM; /* REG_Q_OPEN_HKU */ -typedef struct q_reg_open_unk4_info +typedef struct q_reg_open_hku_info { uint32 ptr; uint16 unknown_0; /* 0xE084 - 16 bit unknown */ @@ -76,7 +110,7 @@ typedef struct q_reg_open_unk4_info } REG_Q_OPEN_HKU; /* REG_R_OPEN_HKU */ -typedef struct r_reg_open_unk4_info +typedef struct r_reg_open_hku_info { POLICY_HND pol; /* policy handle */ uint32 status; /* return status */ @@ -396,43 +430,43 @@ typedef struct r_reg_enum_key_info /* REG_Q_INFO */ typedef struct q_reg_info_info { - POLICY_HND pol; /* policy handle */ + POLICY_HND pol; /* policy handle */ - UNIHDR hdr_type; /* unicode product type header */ - UNISTR2 uni_type; /* unicode product type - "ProductType" */ + UNIHDR hdr_type; /* unicode product type header */ + UNISTR2 uni_type; /* unicode product type - "ProductType" */ - uint32 ptr_reserved; + uint32 ptr_reserved; /* pointer */ - uint32 ptr_buf; /* the next three fields follow if ptr_buf != 0 */ - uint32 ptr_bufsize; - uint32 bufsize; - uint32 buf_unk; - - uint32 unk1; - uint32 ptr_buflen; - uint32 buflen; + uint32 ptr_buf; /* the next three fields follow if ptr_buf != 0 */ + uint32 ptr_bufsize; + uint32 bufsize; + uint32 buf_unk; + + uint32 unk1; + uint32 ptr_buflen; + uint32 buflen; - uint32 ptr_buflen2; - uint32 buflen2; + uint32 ptr_buflen2; + uint32 buflen2; } REG_Q_INFO; /* REG_R_INFO */ typedef struct r_reg_info_info { - uint32 ptr_type; /* keyvalue pointer */ - uint32 type; /* keyvalue datatype */ - - uint32 ptr_uni_val; /* pointer to o/s type */ - BUFFER2 *uni_val; /* unicode string o/s type - "LanmanNT" */ + uint32 ptr_type; /* key type pointer */ + uint32 type; /* key datatype */ - uint32 ptr_max_len; /* pointer to unknown_0 */ - uint32 buf_max_len; /* 0x12 */ + uint32 ptr_uni_val; /* key value pointer */ + BUFFER2 *uni_val; /* key value */ - uint32 ptr_len; /* pointer to unknown_1 */ - uint32 buf_len; /* 0x12 */ + uint32 ptr_max_len; + uint32 buf_max_len; - uint32 status; /* return status */ + uint32 ptr_len; + uint32 buf_len; + + uint32 status; /* return status */ } REG_R_INFO; @@ -460,6 +494,40 @@ typedef struct r_reg_open_entry_info } REG_R_OPEN_ENTRY; +/* REG_Q_SHUTDOWN */ +typedef struct q_reg_shutdown_info +{ + uint32 ptr_0; + uint32 ptr_1; + uint32 ptr_2; + UNIHDR hdr_msg; /* shutdown message */ + UNISTR2 uni_msg; /* seconds */ + uint32 timeout; /* seconds */ + uint16 flags; + +} REG_Q_SHUTDOWN; + +/* REG_R_SHUTDOWN */ +typedef struct r_reg_shutdown_info +{ + uint32 status; /* return status */ + +} REG_R_SHUTDOWN; + +/* REG_Q_ABORT_SHUTDOWN */ +typedef struct q_reg_abort_shutdown_info +{ + uint32 ptr_server; + uint16 server; + +} REG_Q_ABORT_SHUTDOWN; + +/* REG_R_ABORT_SHUTDOWN */ +typedef struct r_reg_abort_shutdown_info +{ + uint32 status; /* return status */ + +} REG_R_ABORT_SHUTDOWN; #endif /* _RPC_REG_H */ diff --git a/source3/include/util_getent.h b/source3/include/util_getent.h index 11926b8964..877d272ceb 100644 --- a/source3/include/util_getent.h +++ b/source3/include/util_getent.h @@ -19,6 +19,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#ifndef _UTIL_GETENT_H +#define _UTIL_GETENT_H + /* element for a single linked list of group entries */ /* replace the use of struct group in some cases */ /* used by getgrent_list() */ @@ -43,3 +46,5 @@ struct sys_pwent { char *pw_shell; struct sys_pwent *next; }; + +#endif /* _UTIL_GETENT_H */ |