svn commit: samba r13444 - branches/SAMBA_3_0/source/include
branches/SAMBA_3_0/source/rpc_server
branches/SAMBA_3_0/source/smbd trunk/source/include
trunk/source/rpc_server trunk/source/smbd
gd at samba.org
gd at samba.org
Fri Feb 10 23:41:42 GMT 2006
Author: gd
Date: 2006-02-10 23:41:41 +0000 (Fri, 10 Feb 2006)
New Revision: 13444
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=13444
Log:
Add REJECT_REASON_OTHER for samr_chgpasswd_user3
Guenther
Modified:
branches/SAMBA_3_0/source/include/rpc_samr.h
branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c
branches/SAMBA_3_0/source/smbd/chgpasswd.c
trunk/source/include/rpc_samr.h
trunk/source/rpc_server/srv_samr_nt.c
trunk/source/smbd/chgpasswd.c
Changeset:
Modified: branches/SAMBA_3_0/source/include/rpc_samr.h
===================================================================
--- branches/SAMBA_3_0/source/include/rpc_samr.h 2006-02-10 23:23:10 UTC (rev 13443)
+++ branches/SAMBA_3_0/source/include/rpc_samr.h 2006-02-10 23:41:41 UTC (rev 13444)
@@ -1848,6 +1848,7 @@
} SAMR_Q_CHGPASSWD_USER3;
+#define REJECT_REASON_OTHER 0x00000000
#define REJECT_REASON_TOO_SHORT 0x00000001
#define REJECT_REASON_IN_HISTORY 0x00000002
#define REJECT_REASON_NOT_COMPLEX 0x00000005
Modified: branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c 2006-02-10 23:23:10 UTC (rev 13443)
+++ branches/SAMBA_3_0/source/rpc_server/srv_samr_nt.c 2006-02-10 23:41:41 UTC (rev 13444)
@@ -1505,7 +1505,8 @@
r_u->status = pass_oem_change(user_name, q_u->lm_newpass.pass, q_u->lm_oldhash.hash,
q_u->nt_newpass.pass, q_u->nt_oldhash.hash, &reject_reason);
- if (NT_STATUS_EQUAL(r_u->status, NT_STATUS_PASSWORD_RESTRICTION)) {
+ if (NT_STATUS_EQUAL(r_u->status, NT_STATUS_PASSWORD_RESTRICTION) ||
+ NT_STATUS_EQUAL(r_u->status, NT_STATUS_ACCOUNT_RESTRICTION)) {
uint32 min_pass_len,pass_hist,password_properties;
time_t u_expire, u_min_age;
Modified: branches/SAMBA_3_0/source/smbd/chgpasswd.c
===================================================================
--- branches/SAMBA_3_0/source/smbd/chgpasswd.c 2006-02-10 23:23:10 UTC (rev 13443)
+++ branches/SAMBA_3_0/source/smbd/chgpasswd.c 2006-02-10 23:41:41 UTC (rev 13444)
@@ -1016,6 +1016,10 @@
time_t last_change_time = pdb_get_pass_last_set_time(hnd);
time_t can_change_time = pdb_get_pass_can_change_time(hnd);
+ if (samr_reject_reason) {
+ *samr_reject_reason = Undefined;
+ }
+
if (pdb_get_account_policy(AP_MIN_PASSWORD_AGE, &min_age)) {
/*
* Windows calculates the minimum password age check
@@ -1026,6 +1030,9 @@
DEBUG(1, ("user %s cannot change password now, must "
"wait until %s\n", username,
http_timestring(last_change_time+min_age)));
+ if (samr_reject_reason) {
+ *samr_reject_reason = REJECT_REASON_OTHER;
+ }
return NT_STATUS_ACCOUNT_RESTRICTION;
}
} else {
@@ -1033,6 +1040,9 @@
DEBUG(1, ("user %s cannot change password now, must "
"wait until %s\n", username,
http_timestring(can_change_time)));
+ if (samr_reject_reason) {
+ *samr_reject_reason = REJECT_REASON_OTHER;
+ }
return NT_STATUS_ACCOUNT_RESTRICTION;
}
}
Modified: trunk/source/include/rpc_samr.h
===================================================================
--- trunk/source/include/rpc_samr.h 2006-02-10 23:23:10 UTC (rev 13443)
+++ trunk/source/include/rpc_samr.h 2006-02-10 23:41:41 UTC (rev 13444)
@@ -1848,6 +1848,7 @@
} SAMR_Q_CHGPASSWD_USER3;
+#define REJECT_REASON_OTHER 0x00000000
#define REJECT_REASON_TOO_SHORT 0x00000001
#define REJECT_REASON_IN_HISTORY 0x00000002
#define REJECT_REASON_NOT_COMPLEX 0x00000005
Modified: trunk/source/rpc_server/srv_samr_nt.c
===================================================================
--- trunk/source/rpc_server/srv_samr_nt.c 2006-02-10 23:23:10 UTC (rev 13443)
+++ trunk/source/rpc_server/srv_samr_nt.c 2006-02-10 23:41:41 UTC (rev 13444)
@@ -1505,7 +1505,8 @@
r_u->status = pass_oem_change(user_name, q_u->lm_newpass.pass, q_u->lm_oldhash.hash,
q_u->nt_newpass.pass, q_u->nt_oldhash.hash, &reject_reason);
- if (NT_STATUS_EQUAL(r_u->status, NT_STATUS_PASSWORD_RESTRICTION)) {
+ if (NT_STATUS_EQUAL(r_u->status, NT_STATUS_PASSWORD_RESTRICTION) ||
+ NT_STATUS_EQUAL(r_u->status, NT_STATUS_ACCOUNT_RESTRICTION)) {
uint32 min_pass_len,pass_hist,password_properties;
time_t u_expire, u_min_age;
Modified: trunk/source/smbd/chgpasswd.c
===================================================================
--- trunk/source/smbd/chgpasswd.c 2006-02-10 23:23:10 UTC (rev 13443)
+++ trunk/source/smbd/chgpasswd.c 2006-02-10 23:41:41 UTC (rev 13444)
@@ -1016,6 +1016,10 @@
time_t last_change_time = pdb_get_pass_last_set_time(hnd);
time_t can_change_time = pdb_get_pass_can_change_time(hnd);
+ if (samr_reject_reason) {
+ *samr_reject_reason = Undefined;
+ }
+
if (pdb_get_account_policy(AP_MIN_PASSWORD_AGE, &min_age)) {
/*
* Windows calculates the minimum password age check
@@ -1026,6 +1030,9 @@
DEBUG(1, ("user %s cannot change password now, must "
"wait until %s\n", username,
http_timestring(last_change_time+min_age)));
+ if (samr_reject_reason) {
+ *samr_reject_reason = REJECT_REASON_OTHER;
+ }
return NT_STATUS_ACCOUNT_RESTRICTION;
}
} else {
@@ -1033,6 +1040,9 @@
DEBUG(1, ("user %s cannot change password now, must "
"wait until %s\n", username,
http_timestring(can_change_time)));
+ if (samr_reject_reason) {
+ *samr_reject_reason = REJECT_REASON_OTHER;
+ }
return NT_STATUS_ACCOUNT_RESTRICTION;
}
}
More information about the samba-cvs
mailing list