diff options
author | Andrew Bartlett <abartlet@samba.org> | 2008-02-28 10:43:57 +1100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2008-02-28 10:43:57 +1100 |
commit | 2a209a6a9dcd0c6b7814fa7eb3838dbaf5d57481 (patch) | |
tree | f32d81caee74ec343aefacf6de95e67058db2bec /source4 | |
parent | b33873ae5d13993030f41f5304d78640fe07d25c (diff) | |
download | samba-2a209a6a9dcd0c6b7814fa7eb3838dbaf5d57481.tar.gz samba-2a209a6a9dcd0c6b7814fa7eb3838dbaf5d57481.tar.bz2 samba-2a209a6a9dcd0c6b7814fa7eb3838dbaf5d57481.zip |
Ensure we don't try and set the acct_flags if they are 0 (meaning
unchanged in this interface).
We seem to have two very similar interfaces here, and this is the
poorer interface, for this reason.
Andrew Bartlett
(This used to be commit 582073eff1f21f81abb3e5f1ce2eca4ebef56a00)
Diffstat (limited to 'source4')
-rw-r--r-- | source4/libnet/libnet_user.c | 2 | ||||
-rw-r--r-- | source4/libnet/libnet_user.h | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/source4/libnet/libnet_user.c b/source4/libnet/libnet_user.c index d5ccf34a57..678c7a226e 100644 --- a/source4/libnet/libnet_user.c +++ b/source4/libnet/libnet_user.c @@ -534,7 +534,7 @@ static NTSTATUS set_user_changes(TALLOC_CTX *mem_ctx, struct usermod_change *mod SET_FIELD_NTTIME(r->in, user, mod, acct_expiry, USERMOD_FIELD_ACCT_EXPIRY); /* account flags change */ - SET_FIELD_UINT32(r->in, user, mod, acct_flags, USERMOD_FIELD_ACCT_FLAGS); + SET_FIELD_ACCT_FLAGS(r->in, user, mod, acct_flags, USERMOD_FIELD_ACCT_FLAGS); return NT_STATUS_OK; } diff --git a/source4/libnet/libnet_user.h b/source4/libnet/libnet_user.h index ece06f08fc..94aa38464f 100644 --- a/source4/libnet/libnet_user.h +++ b/source4/libnet/libnet_user.h @@ -91,6 +91,14 @@ struct libnet_ModifyUser { mod->fields |= flag; \ } +#define SET_FIELD_ACCT_FLAGS(new, current, mod, field, flag) \ + if (new.field) { \ + if (current->field != new.field) { \ + mod->field = new.field; \ + mod->fields |= flag; \ + } \ + } + struct libnet_UserInfo { struct { |