mirror of
https://github.com/samba-team/samba.git
synced 2024-12-25 23:21:54 +03:00
r19092: active replica records cannot expire!
we handle that in the scavenging code, but were missing that
in the wins server name query code...
metze
(This used to be commit 7fb8dd3ab7
)
This commit is contained in:
parent
df31092a01
commit
eb06c35f12
@ -618,6 +618,7 @@ NTSTATUS winsdb_record(struct winsdb_handle *h, struct ldb_message *msg, TALLOC_
|
||||
struct ldb_message_element *el;
|
||||
struct nbt_name *name;
|
||||
uint32_t i, j, num_values;
|
||||
BOOL we_are_owner = False;
|
||||
|
||||
rec = talloc(mem_ctx, struct winsdb_record);
|
||||
if (rec == NULL) {
|
||||
@ -678,10 +679,21 @@ NTSTATUS winsdb_record(struct winsdb_handle *h, struct ldb_message *msg, TALLOC_
|
||||
goto failed;
|
||||
}
|
||||
|
||||
/* see if it has already expired */
|
||||
if (strcmp(rec->wins_owner, h->local_owner) == 0) {
|
||||
we_are_owner = True;
|
||||
}
|
||||
|
||||
/*
|
||||
* see if it has already expired
|
||||
*
|
||||
* NOTE: only expire owned records this way!
|
||||
* w2k3 resolves expired replicas
|
||||
* which are in active state
|
||||
*/
|
||||
if (!rec->is_static &&
|
||||
rec->expire_time <= now &&
|
||||
rec->state == WREPL_STATE_ACTIVE) {
|
||||
rec->state == WREPL_STATE_ACTIVE &&
|
||||
we_are_owner) {
|
||||
DEBUG(5,("WINS: expiring name %s (expired at %s)\n",
|
||||
nbt_name_string(mem_ctx, rec->name), timestring(mem_ctx, rec->expire_time)));
|
||||
rec->state = WREPL_STATE_RELEASED;
|
||||
@ -703,7 +715,8 @@ NTSTATUS winsdb_record(struct winsdb_handle *h, struct ldb_message *msg, TALLOC_
|
||||
*/
|
||||
if (!rec->is_static &&
|
||||
rec->addresses[j]->expire_time <= now &&
|
||||
rec->state == WREPL_STATE_ACTIVE) {
|
||||
rec->state == WREPL_STATE_ACTIVE &&
|
||||
we_are_owner) {
|
||||
DEBUG(5,("WINS: expiring name addr %s of %s (expired at %s)\n",
|
||||
rec->addresses[j]->address, nbt_name_string(rec->addresses[j], rec->name),
|
||||
timestring(rec->addresses[j], rec->addresses[j]->expire_time)));
|
||||
|
Loading…
Reference in New Issue
Block a user