summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2003-09-18 23:54:12 +0000
committerJeremy Allison <jra@samba.org>2003-09-18 23:54:12 +0000
commit30fd3599143260ee6893a5125e7ec7cec8bb2289 (patch)
treea35349d238a72e05fbc8871929013be8b910bcb4 /source3/include
parent8e0a88b7e2f84175860225363ff17584e6e1ddd4 (diff)
downloadsamba-30fd3599143260ee6893a5125e7ec7cec8bb2289.tar.gz
samba-30fd3599143260ee6893a5125e7ec7cec8bb2289.tar.bz2
samba-30fd3599143260ee6893a5125e7ec7cec8bb2289.zip
The "unknown_5" 32 bit field in the user structs is actually 2 16-bit
fields, bad_password_count and logon_count. Ensure this is stored/fetched in the various SAMs. As it replaces the unknown_5 field this fits exactly into the tdb SAM without any binary problems. It also is added to the LDAP SAM as two extra attributes. It breaks compatibility with the experimental SAMs xml and mysql. The maintainers of these SAMs must fix them so upgrades like this can be done transparently. I will insist on the "experimental" status until this is solved. Jeremy. (This used to be commit 71ecd10181cd35313b79f618c2928c2f45424812)
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/passdb.h8
-rw-r--r--source3/include/rpc_samr.h8
-rw-r--r--source3/include/smbldap.h2
3 files changed, 14 insertions, 4 deletions
diff --git a/source3/include/passdb.h b/source3/include/passdb.h
index e3077eee70..a4b2bcff3f 100644
--- a/source3/include/passdb.h
+++ b/source3/include/passdb.h
@@ -57,7 +57,8 @@ enum pdb_elements {
PDB_MUNGEDDIAL,
PDB_HOURS,
PDB_UNKNOWN3,
- PDB_UNKNOWN5,
+ PDB_BAD_PASSWORD_COUNT,
+ PDB_LOGON_COUNT,
PDB_UNKNOWN6,
PDB_LMPASSWD,
PDB_NTPASSWD,
@@ -136,7 +137,10 @@ typedef struct sam_passwd
uint32 hours_len; /* normally 21 bytes */
uint8 hours[MAX_HOURS_LEN];
- uint32 unknown_5; /* 0x0002 0000 */
+ /* Was unknown_5. */
+ uint16 bad_password_count;
+ uint16 logon_count;
+
uint32 unknown_6; /* 0x0000 04ec */
/* a tag for who added the private methods */
const struct pdb_methods *backend_private_methods;
diff --git a/source3/include/rpc_samr.h b/source3/include/rpc_samr.h
index 4d9ad0b2e1..3b81042df3 100644
--- a/source3/include/rpc_samr.h
+++ b/source3/include/rpc_samr.h
@@ -189,7 +189,9 @@ typedef struct sam_user_info_23
/* uint8 pad[2] */
uint32 ptr_logon_hrs; /* pointer to logon hours */
- uint32 unknown_5; /* 0x0001 0000 */
+ /* Was unknown_5. */
+ uint16 bad_password_count;
+ uint16 logon_count;
uint8 padding1[6];
@@ -312,7 +314,9 @@ typedef struct sam_user_info_21
/* uint8 pad[2] */
uint32 ptr_logon_hrs; /* unknown pointer */
- uint32 unknown_5; /* 0x0002 0000 */
+ /* Was unknown_5. */
+ uint16 bad_password_count;
+ uint16 logon_count;
uint8 padding1[6];
diff --git a/source3/include/smbldap.h b/source3/include/smbldap.h
index 826fc3c55a..9765b9fbd6 100644
--- a/source3/include/smbldap.h
+++ b/source3/include/smbldap.h
@@ -88,6 +88,8 @@
#define LDAP_ATTR_SID 32
#define LDAP_ATTR_ALGORITHMIC_RID_BASE 33
#define LDAP_ATTR_NEXT_RID 34
+#define LDAP_ATTR_BAD_PASSWORD_COUNT 35
+#define LDAP_ATTR_LOGON_COUNT 36
typedef struct _attrib_map_entry {
int attrib;