CVSROOT:        /cvs
Module name:    src
Changes by:     d...@cvs.openbsd.org    2010/07/09 03:01:32

Modified files:
        sys/net        : if_pfsync.c 

Log message:
sending of bulk updates has been very broken since r1.124.
pfsync_bulk_start sets up a bulk transfer by doing this:

sc->sc_bulk_next = TAILQ_FIRST(&state_list);
sc->sc_bulk_last = sc->sc_bulk_next;

and then calls pfsync_bulk_update which loops over state_list like
this:

st = sc->sc_bulk_next;
while (st != sc->sc_bulk_last) {

basically bulk updates never got sent.

this diff handles jjs problem by not attempting to send a bulk
update when the state table is empty and fixed the loop to break
at the right times.

reported by david@ who's initial tests are positive.
reviewed by mcbride@
tested in production at work.

Reply via email to