#define SEC_CHAN_BDC 6
/* Returned delta types */
-#define SAM_DELTA_DOMAIN_INFO 0x01 /* Domain */
-#define SAM_DELTA_GROUP_INFO 0x02 /* Domain groups */
-#define SAM_DELTA_ACCOUNT_INFO 0x05 /* Users */
-#define SAM_DELTA_GROUP_MEM 0x08 /* Group membership */
-#define SAM_DELTA_ALIAS_INFO 0x09 /* Local groups */
-#define SAM_DELTA_ALIAS_MEM 0x0C /* Local group membership */
-#define SAM_DELTA_DOM_INFO 0x0D /* Privilege stuff */
-#define SAM_DELTA_UNK0E_INFO 0x0e /* Privilege stuff */
-#define SAM_DELTA_PRIVS_INFO 0x10 /* Privilege stuff */
-#define SAM_DELTA_UNK12_INFO 0x12 /* Privilege stuff */
-#define SAM_DELTA_SAM_STAMP 0x16 /* Some kind of journal record? */
+#define SAM_DELTA_DOMAIN_INFO 0x01
+#define SAM_DELTA_GROUP_INFO 0x02
+#define SAM_DELTA_RENAME_GROUP 0x04
+#define SAM_DELTA_ACCOUNT_INFO 0x05
+#define SAM_DELTA_RENAME_USER 0x07
+#define SAM_DELTA_GROUP_MEM 0x08
+#define SAM_DELTA_ALIAS_INFO 0x09
+#define SAM_DELTA_RENAME_ALIAS 0x0b
+#define SAM_DELTA_ALIAS_MEM 0x0c
+#define SAM_DELTA_POLICY_INFO 0x0d
+#define SAM_DELTA_TRUST_DOMS 0x0e
+#define SAM_DELTA_PRIVS_INFO 0x10 /* DT_DELTA_ACCOUNTS */
+#define SAM_DELTA_SECRET_INFO 0x12
+#define SAM_DELTA_DELETE_GROUP 0x14
+#define SAM_DELTA_DELETE_USER 0x15
+#define SAM_DELTA_MODIFIED_COUNT 0x16
/* SAM database types */
#define SAM_DATABASE_DOMAIN 0x00 /* Domain users and groups */
} SAM_ALIAS_MEM_INFO;
-/* SAM_DELTA_DOM (0x0D) */
+/* SAM_DELTA_POLICY (0x0D) */
typedef struct
{
uint32 unknown1; /* 0x5000 */
UNISTR2 domain_name;
DOM_SID2 domain_sid;
-} SAM_DELTA_DOM;
+} SAM_DELTA_POLICY;
-/* SAM_DELTA_UNK0E (0x0e) */
+/* SAM_DELTA_TRUST_DOMS */
typedef struct
{
uint32 buf_size;
uint32 unknown3;
UNISTR2 domain;
-} SAM_DELTA_UNK0E;
+} SAM_DELTA_TRUSTDOMS;
/* SAM_DELTA_PRIVS (0x10) */
typedef struct
} SAM_DELTA_PRIVS;
-/* SAM_DELTA_UNK12 (0x12) */
+/* SAM_DELTA_SECRET */
typedef struct
{
uint32 buf_size;
uint32 buf_size3;
SEC_DESC *sec_desc2;
-} SAM_DELTA_UNK12;
+} SAM_DELTA_SECRET;
-/* SAM_DELTA_STAMP (0x16) */
+/* SAM_DELTA_MOD_COUNT (0x16) */
typedef struct
{
uint32 seqnum;
uint32 dom_mod_count_ptr;
UINT64_S dom_mod_count; /* domain mod count at last sync */
-} SAM_DELTA_STAMP;
+} SAM_DELTA_MOD_COUNT;
typedef union sam_delta_ctr_info
{
SAM_GROUP_MEM_INFO grp_mem_info;
SAM_ALIAS_INFO alias_info ;
SAM_ALIAS_MEM_INFO als_mem_info;
- SAM_DELTA_DOM dom_info;
+ SAM_DELTA_POLICY policy_info;
SAM_DELTA_PRIVS privs_info;
- SAM_DELTA_STAMP stamp;
- SAM_DELTA_UNK0E unk0e_info;
- SAM_DELTA_UNK12 unk12_info;
+ SAM_DELTA_MOD_COUNT mod_count;
+ SAM_DELTA_TRUSTDOMS trustdoms_info;
+ SAM_DELTA_SECRET secret_info;
} SAM_DELTA_CTR;
/* NET_R_SAM_SYNC */
/*******************************************************************
reads or writes a structure.
********************************************************************/
-static BOOL net_io_sam_delta_stamp(char *desc, SAM_DELTA_STAMP *info,
+static BOOL net_io_sam_delta_mod_count(char *desc, SAM_DELTA_MOD_COUNT *info,
prs_struct *ps, int depth)
{
prs_debug(ps, depth, desc, "net_io_sam_delta_stamp");
/*******************************************************************
reads or writes a structure.
********************************************************************/
-static BOOL net_io_sam_dom_info(char *desc, SAM_DELTA_DOM *info,
+static BOOL net_io_sam_policy_info(char *desc, SAM_DELTA_POLICY *info,
prs_struct *ps, int depth)
{
int i;
- prs_debug(ps, depth, desc, "net_io_sam_dom_info");
+ prs_debug(ps, depth, desc, "net_io_sam_policy_info");
depth++;
if(!prs_align(ps))
/*******************************************************************
reads or writes a structure.
********************************************************************/
-static BOOL net_io_sam_unk0e_info(char *desc, SAM_DELTA_UNK0E *info,
+static BOOL net_io_sam_trustdoms_info(char *desc, SAM_DELTA_TRUSTDOMS *info,
prs_struct *ps, int depth)
{
int i;
- prs_debug(ps, depth, desc, "net_io_sam_unk0e_info");
+ prs_debug(ps, depth, desc, "net_io_sam_trustdoms_info");
depth++;
if(!prs_align(ps))
/*******************************************************************
reads or writes a structure.
********************************************************************/
-static BOOL net_io_sam_unk12_info(char *desc, SAM_DELTA_UNK12 *info,
- prs_struct *ps, int depth)
+static BOOL net_io_sam_secret_info(char *desc, SAM_DELTA_SECRET *info,
+ prs_struct *ps, int depth)
{
int i;
- prs_debug(ps, depth, desc, "net_io_sam_unk12_info");
+ prs_debug(ps, depth, desc, "net_io_sam_secret_info");
depth++;
if(!prs_align(ps))
switch (type) {
/* Seen in sam deltas */
- case SAM_DELTA_SAM_STAMP:
- if (!net_io_sam_delta_stamp("", &delta->stamp, ps, depth))
+ case SAM_DELTA_MODIFIED_COUNT:
+ if (!net_io_sam_delta_mod_count("", &delta->mod_count, ps, depth))
return False;
break;
return False;
break;
- case SAM_DELTA_DOM_INFO:
- if (!net_io_sam_dom_info("", &delta->dom_info, ps, depth))
+ case SAM_DELTA_POLICY_INFO:
+ if (!net_io_sam_policy_info("", &delta->policy_info, ps, depth))
return False;
break;
return False;
break;
- case SAM_DELTA_UNK0E_INFO:
- if (!net_io_sam_unk0e_info("", &delta->unk0e_info, ps, depth))
+ case SAM_DELTA_TRUST_DOMS:
+ if (!net_io_sam_trustdoms_info("", &delta->trustdoms_info, ps, depth))
return False;
break;
- case SAM_DELTA_UNK12_INFO:
- if (!net_io_sam_unk12_info("", &delta->unk12_info, ps, depth))
+ case SAM_DELTA_SECRET_INFO:
+ if (!net_io_sam_secret_info("", &delta->secret_info, ps, depth))
return False;
break;
+ /* These guys are not implemented yet */
+
+ case SAM_DELTA_RENAME_GROUP:
+ case SAM_DELTA_RENAME_USER:
+ case SAM_DELTA_RENAME_ALIAS:
+ case SAM_DELTA_DELETE_GROUP:
+ case SAM_DELTA_DELETE_USER:
default:
DEBUG(0, ("Replication error: Unknown delta type 0x%x\n", type));
break;