diff options
author | Gerald Carter <jerry@samba.org> | 2005-01-04 20:26:50 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2005-01-04 20:26:50 +0000 |
commit | 850d0c066bfc00b09233d5ea404f26fea530374b (patch) | |
tree | d6a603e31db1891221597df04dda61e59183f920 /source/utils | |
parent | b262548fec09659f46839dcf4c079176775f0871 (diff) | |
download | samba-850d0c066bfc00b09233d5ea404f26fea530374b.tar.gz |
r4516: current with 3.0 as of r4514. Updated release notes
Diffstat (limited to 'source/utils')
-rw-r--r-- | source/utils/net_rpc_samsync.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/source/utils/net_rpc_samsync.c b/source/utils/net_rpc_samsync.c index e8a110d083e..fccdc5f5ba5 100644 --- a/source/utils/net_rpc_samsync.c +++ b/source/utils/net_rpc_samsync.c @@ -380,8 +380,11 @@ sam_account_from_delta(SAM_ACCOUNT *account, SAM_ACCOUNT_INFO *delta) } if (delta->hdr_parameters.buffer) { + DATA_BLOB mung; old_string = pdb_get_munged_dial(account); - new_string = unistr2_static(&delta->uni_parameters); + mung.length = delta->hdr_parameters.uni_str_len; + mung.data = (uint8 *) delta->uni_parameters.buffer; + new_string = (mung.length == 0) ? NULL : base64_encode_data_blob(mung); if (STRING_CHANGED) pdb_set_munged_dial(account, new_string, PDB_CHANGED); @@ -408,10 +411,29 @@ sam_account_from_delta(SAM_ACCOUNT *account, SAM_ACCOUNT_INFO *delta) pdb_set_logoff_time(account, unix_time,PDB_CHANGED); } + /* Logon Divs */ if (pdb_get_logon_divs(account) != delta->logon_divs) pdb_set_logon_divs(account, delta->logon_divs, PDB_CHANGED); - /* TODO: logon hours */ + /* Max Logon Hours */ + if (delta->unknown1 != pdb_get_unknown_6(account)) { + pdb_set_unknown_6(account, delta->unknown1, PDB_CHANGED); + } + + /* Logon Hours Len */ + if (delta->buf_logon_hrs.buf_len != pdb_get_hours_len(account)) { + pdb_set_hours_len(account, delta->buf_logon_hrs.buf_len, PDB_CHANGED); + } + + /* Logon Hours */ + if (delta->buf_logon_hrs.buffer) { + pstring old, new; + pdb_sethexhours(old, pdb_get_hours(account)); + pdb_sethexhours(new, (const char *)delta->buf_logon_hrs.buffer); + if (!strequal(old, new)) + pdb_set_hours(account, (const char *)delta->buf_logon_hrs.buffer, PDB_CHANGED); + } + if (pdb_get_bad_password_count(account) != delta->bad_pwd_count) pdb_set_bad_password_count(account, delta->bad_pwd_count, PDB_CHANGED); |