diff options
author | Jeremy Allison <jra@samba.org> | 2008-01-02 11:56:07 -0800 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2008-01-02 11:56:07 -0800 |
commit | 0090ec236d16a2da7b5432083b079034c642a2fc (patch) | |
tree | 30f0f58893b5098854c36917f98f787fa4d964b2 /source3/nmbd/nmbd_packets.c | |
parent | a5d2449fe1f25d74ac3a3d4eae66c43cd8dcbde9 (diff) | |
download | samba-0090ec236d16a2da7b5432083b079034c642a2fc.tar.gz samba-0090ec236d16a2da7b5432083b079034c642a2fc.tar.bz2 samba-0090ec236d16a2da7b5432083b079034c642a2fc.zip |
Attempt to fix bug #3617. Mix of patches from Volker and
myself. Use standard dlinklist macros.
Jeremy.
(This used to be commit 1b06ee69f6b737c1d6e7b29f8ae9621e6eb07d27)
Diffstat (limited to 'source3/nmbd/nmbd_packets.c')
-rw-r--r-- | source3/nmbd/nmbd_packets.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/source3/nmbd/nmbd_packets.c b/source3/nmbd/nmbd_packets.c index 3bb1514203..c1d373aa18 100644 --- a/source3/nmbd/nmbd_packets.c +++ b/source3/nmbd/nmbd_packets.c @@ -1613,6 +1613,8 @@ void retransmit_or_expire_response_records(time_t t) for (subrec = FIRST_SUBNET; subrec; subrec = get_next_subnet_maybe_unicast_or_wins_server(subrec)) { struct response_record *rrec, *nextrrec; + restart: + for (rrec = subrec->responselist; rrec; rrec = nextrrec) { nextrrec = rrec->next; @@ -1651,6 +1653,9 @@ on subnet %s\n", rrec->response_id, inet_ntoa(rrec->packet->ip), subrec->subnet_ no timeout function. */ remove_response_record(subrec, rrec); } + /* We have changed subrec->responselist, + * restart from the beginning of this list. */ + goto restart; } /* !rrec->in_expitation_processing */ } /* rrec->repeat_count > 0 */ } /* rrec->repeat_time <= t */ |