diff options
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/gums.h | 26 | ||||
-rw-r--r-- | source3/include/tdbsam2.h | 94 |
2 files changed, 107 insertions, 13 deletions
diff --git a/source3/include/gums.h b/source3/include/gums.h index a44dadc883..ca124d7442 100644 --- a/source3/include/gums.h +++ b/source3/include/gums.h @@ -23,6 +23,7 @@ #define GUMS_VERSION_MAJOR 0 #define GUMS_VERSION_MINOR 1 +#define GUMS_OBJECT_VERSION 1 #define GUMS_OBJ_DOMAIN 1 #define GUMS_OBJ_NORMAL_USER 2 @@ -36,12 +37,12 @@ typedef struct gums_user { DOM_SID *group_sid; /* Primary Group SID */ - NTTIME *logon_time; /* logon time */ - NTTIME *logoff_time; /* logoff time */ - NTTIME *kickoff_time; /* kickoff time */ - NTTIME *pass_last_set_time; /* password last set time */ - NTTIME *pass_can_change_time; /* password can change time */ - NTTIME *pass_must_change_time; /* password must change time */ + NTTIME logon_time; /* logon time */ + NTTIME logoff_time; /* logoff time */ + NTTIME kickoff_time; /* kickoff time */ + NTTIME pass_last_set_time; /* password last set time */ + NTTIME pass_can_change_time; /* password can change time */ + NTTIME pass_must_change_time; /* password must change time */ char *full_name; /* user's full name string */ char *home_dir; /* home directory string */ @@ -52,14 +53,14 @@ typedef struct gums_user char *unknown_str; /* don't know what this is, yet. */ char *munged_dial; /* munged path name and dial-back tel number */ - DATA_BLOB *lm_pw; /* .data is Null if no password */ - DATA_BLOB *nt_pw; /* .data is Null if no password */ + DATA_BLOB lm_pw; /* .data is Null if no password */ + DATA_BLOB nt_pw; /* .data is Null if no password */ uint32 unknown_3; /* 0x00ff ffff */ uint16 logon_divs; /* 168 - number of hours in a week */ uint32 hours_len; /* normally 21 bytes */ - uint8 hours[MAX_HOURS_LEN]; + uint8 *hours; uint32 unknown_5; /* 0x0002 0000 */ uint32 unknown_6; /* 0x0000 04ec */ @@ -69,14 +70,13 @@ typedef struct gums_user typedef struct gums_group { uint32 count; /* Number of SIDs */ - DOM_SID *members; /* SID array */ + DOM_SID **members; /* SID array */ } GUMS_GROUP; union gums_obj_p { gums_user *user; gums_group *group; - gums_group *alias; } typedef struct gums_object @@ -111,7 +111,7 @@ typedef struct gums_commit_set uint32 type; /* Object type */ DOM_SID sid; /* Object Sid */ uint32 count; /* number of changes */ - GUMS_DATA_SET *data; + GUMS_DATA_SET **data; } GUMS_COMMIT_SET; typedef struct gums_privilege @@ -127,7 +127,7 @@ typedef struct gums_privilege char *description; /* Object Description */ uint32 count; - DOM_SID *members; + DOM_SID **members; } GUMS_PRIVILEGE; diff --git a/source3/include/tdbsam2.h b/source3/include/tdbsam2.h new file mode 100644 index 0000000000..0ca9d34618 --- /dev/null +++ b/source3/include/tdbsam2.h @@ -0,0 +1,94 @@ +/* + * Unix SMB/CIFS implementation. + * tdbsam2 genstruct enabled header file + * Copyright (C) Simo Sorce 2002 + * + * 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 2 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, write to the Free Software Foundation, Inc., 675 + * Mass Ave, Cambridge, MA 02139, USA. + */ + + +/* ALL strings assumes UTF8 as encoding */ + +GENSTRUCT struct tdbsam2_domain_data { + uint32 xcounter; /* counter to be updated at any change */ + + SEC_DESC *sec_desc; /* Security Descriptor */ + DOM_SID *user_sid; /* The User SID */ + char *name; _NULLTERM /* NT User Name */ + char *description; _NULLTERM /* Descritpion (Gecos) */ +}; + +GENSTRUCT struct tdbsam2_user_data { + uint32 xcounter; /* counter to be updated at any change */ + + SEC_DESC *sec_desc; /* Security Descriptor */ + DOM_SID *user_sid; /* The User SID */ + char *name; _NULLTERM /* NT User Name */ + char *description; _NULLTERM /* Descritpion (Gecos) */ + + DOM_SID *group_sid; /* The Primary Group SID */ + + NTTIME *logon_time; + NTTIME *logoff_time; + NTTIME *kickoff_time; + NTTIME *pass_last_set_time; + NTTIME *pass_can_change_time; + NTTIME *pass_must_change_time; + + char *full_name; _NULLTERM /* The Full Name */ + char *home_dir; _NULLTERM /* Home Directory */ + char *dir_drive; _NULLTERM /* Drive Letter the home should be mapped to */ + char *logon_script; _NULLTERM /* Logon script path */ + char *profile_path; _NULLTERM /* Profile is stored here */ + char *workstations; _NULLTERM /* List of Workstation names the user is allowed to LogIn */ + char *unknown_str; _NULLTERM /* Guess ... Unknown */ + char *munged_dial; _NULLTERM /* Callback Number */ + + /* passwords are 16 byte leght, pointer is null if no password */ + uint8 *lm_pw_ptr; _LEN(16) /* Lanman hashed password */ + uint8 *nt_pw_ptr; _LEN(16) /* NT hashed password */ + + uint16 logon_divs; /* 168 - num of hours in a week */ + uint32 hours_len; /* normally 21 */ + uint8 *hours; _LEN(hours_len) /* normally 21 bytes (depends on hours_len) */ + + uint32 unknown_3; /* 0x00ff ffff */ + uint32 unknown_5; /* 0x0002 0000 */ + uint32 unknown_6; /* 0x0000 04ec */ +}; + +GENSTRUCT struct tdbsam2_group_data { + uint32 xcounter; /* counter to be updated at any change */ + + SEC_DESC *sec_desc; /* Security Descriptor */ + DOM_SID *group_sid; /* The Group SID */ + char *name; _NULLTERM /* NT User Name */ + char *description; _NULLTERM /* Descritpion (Gecos) */ + + uint32 count; /* number of sids */ + DOM_SID **members; _LEN(count) /* SID array */ +}; + +GENSTRUCT struct tdbsam2_privilege_data { + uint32 xcounter; /* counter to be updated at any change */ + + LUID_ATTR *privilege; /* Privilege */ + char *name; _NULLTERM /* NT User Name */ + char *description; _NULLTERM /* Descritpion (Gecos) */ + + uint32 count; /* number of sids */ + DOM_SID **members; _LEN(count) /* SID array */ +}; + |