summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorMatthew Chapman <matty@samba.org>1999-06-02 03:19:20 +0000
committerMatthew Chapman <matty@samba.org>1999-06-02 03:19:20 +0000
commit99e42c0656d3e1e3b8e06437a8a9082c12df22d2 (patch)
treedb75fd259f749760beca37872888246158438ca9 /source3/include
parentc2919e499a755014ade1381552f4d808f443d89f (diff)
downloadsamba-99e42c0656d3e1e3b8e06437a8a9082c12df22d2.tar.gz
samba-99e42c0656d3e1e3b8e06437a8a9082c12df22d2.tar.bz2
samba-99e42c0656d3e1e3b8e06437a8a9082c12df22d2.zip
Some more BDC-related fixes, mainly to the NET_SAM_SYNC RPC with respect
to alignment, missing fields, etc. - it should now work correctly. There is still the problem of decoding the private data field. (This used to be commit c3c25e762fbc30d5663323f23449c913f2ce4b0e)
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/proto.h3
-rw-r--r--source3/include/rpc_netlogon.h50
2 files changed, 32 insertions, 21 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 12958baa3a..4efc7f803c 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1708,9 +1708,10 @@ BOOL cli_net_srv_pwset(struct cli_state *cli, uint16 nt_pipe_fnum,
BOOL cli_net_sam_logon(struct cli_state *cli, uint16 nt_pipe_fnum, NET_ID_INFO_CTR *ctr,
NET_USER_INFO_3 *user_info3);
BOOL cli_net_sam_logoff(struct cli_state *cli, uint16 nt_pipe_fnum, NET_ID_INFO_CTR *ctr);
-BOOL cli_net_sam_sync(struct cli_state *cli, uint16 nt_pipe_fnum, uint32 database_id);
+BOOL cli_net_sam_sync(struct cli_state *cli, uint16 nt_pipe_fnum, uint32 database_id, uint32 *num_deltas, SAM_DELTA_HDR *hdr_deltas, SAM_DELTA_CTR *deltas);
BOOL change_trust_account_password(char *domain, char *remote_machine_list,
uint16 sec_chan);
+BOOL do_sam_sync(struct cli_state *cli);
/*The following definitions come from rpc_client/cli_pipe.c */
diff --git a/source3/include/rpc_netlogon.h b/source3/include/rpc_netlogon.h
index 2d8f5ae1b7..2c02e96d18 100644
--- a/source3/include/rpc_netlogon.h
+++ b/source3/include/rpc_netlogon.h
@@ -460,30 +460,38 @@ typedef struct sam_account_info_info
UNIHDR hdr_dir_drive;
UNIHDR hdr_logon_script;
UNIHDR hdr_acct_desc;
+ UNIHDR hdr_workstations;
- NTTIME time_1;
- NTTIME time_2;
- NTTIME time_3;
+ NTTIME logon_time;
+ NTTIME logoff_time;
uint32 logon_divs; /* 0xA8 */
uint32 ptr_logon_hrs;
- /* N.B. 8-byte alignment */
- NTTIME time_4;
- NTTIME time_5;
+ uint16 bad_pwd_count;
+ uint16 logon_count;
+ NTTIME pwd_last_set_time;
+ NTTIME acct_expiry_time;
+
uint32 acb_info;
- char reserved[36];
+ uint8 nt_pwd[16];
+ uint8 lm_pwd[16];
+ uint8 nt_pwd_present;
+ uint8 lm_pwd_present;
+ uint8 pwd_expired;
UNIHDR hdr_comment;
- char unknown1[12];
+ UNIHDR hdr_parameters;
+ uint16 country;
+ uint16 codepage;
- BUFHDR2 hdr_pwd_info;
+ BUFHDR2 hdr_priv_data;
BUFHDR2 hdr_sec_desc; /* security descriptor */
- UNIHDR hdr_profile;
- char unknown2[24];
- NTTIME time_6; /* *** HIGH/LOW DWORDS THE WRONG WAY!!! *** */
- char unknown3[8];
+ UNIHDR hdr_profile;
+ UNIHDR hdr_reserved[3]; /* space for more strings */
+ uint32 dw_reserved[4]; /* space for more data - first two seem to
+ be an NTTIME */
UNISTR2 uni_acct_name;
UNISTR2 uni_full_name;
@@ -491,13 +499,15 @@ typedef struct sam_account_info_info
UNISTR2 uni_dir_drive;
UNISTR2 uni_logon_script;
UNISTR2 uni_acct_desc;
+ UNISTR2 uni_workstations;
- uint32 unknown4; /* 0x4EC */
- uint32 unknown5; /* 0 */
+ uint32 unknown1; /* 0x4EC */
+ uint32 unknown2; /* 0 */
BUFFER4 buf_logon_hrs;
UNISTR2 uni_comment;
- BUFFER4 buf_pwd_info;
+ UNISTR2 uni_parameters;
+ BUFFER4 buf_priv_data;
BUFFER4 buf_sec_desc;
UNISTR2 uni_profile;
@@ -571,8 +581,8 @@ typedef struct net_r_sam_sync_info
uint32 ptr_deltas2;
uint32 num_deltas2;
- SAM_DELTA_HDR hdr_deltas[MAX_SAM_DELTAS];
- SAM_DELTA_CTR deltas[MAX_SAM_DELTAS];
+ SAM_DELTA_HDR *hdr_deltas;
+ SAM_DELTA_CTR *deltas;
uint32 status;
@@ -605,8 +615,8 @@ typedef struct net_r_sam_deltas_info
uint32 ptr_deltas;
uint32 num_deltas2;
- SAM_DELTA_HDR hdr_deltas[MAX_SAM_DELTAS];
- SAM_DELTA_CTR deltas[MAX_SAM_DELTAS];
+ SAM_DELTA_HDR *hdr_deltas;
+ SAM_DELTA_CTR *deltas;
uint32 status;