kernel-netlink,pfroute: Properly update address flag within ROAM_DELAY

77d4a02 and 55da01f only updated the address flag when a job was created,
which obviously had the same limitation as the old code.

Fixes #374.
This commit is contained in:
Tobias Brunner
2013-08-12 12:08:23 +02:00
parent 55da01f348
commit 11f468533f
2 changed files with 2 additions and 2 deletions
@@ -729,6 +729,7 @@ static void fire_roam_event(private_kernel_netlink_net_t *this, bool address)
time_monotonic(&now);
this->roam_lock->lock(this->roam_lock);
this->roam_address |= address;
if (!timercmp(&now, &this->next_roam, >))
{
this->roam_lock->unlock(this->roam_lock);
@@ -736,7 +737,6 @@ static void fire_roam_event(private_kernel_netlink_net_t *this, bool address)
}
timeval_add_ms(&now, ROAM_DELAY);
this->next_roam = now;
this->roam_address |= address;
this->roam_lock->unlock(this->roam_lock);
job = (job_t*)callback_job_create((callback_job_cb_t)roam_event,
@@ -565,6 +565,7 @@ static void fire_roam_event(private_kernel_pfroute_net_t *this, bool address)
time_monotonic(&now);
this->roam_lock->lock(this->roam_lock);
this->roam_address |= address;
if (!timercmp(&now, &this->next_roam, >))
{
this->roam_lock->unlock(this->roam_lock);
@@ -572,7 +573,6 @@ static void fire_roam_event(private_kernel_pfroute_net_t *this, bool address)
}
timeval_add_ms(&now, ROAM_DELAY);
this->next_roam = now;
this->roam_address |= address;
this->roam_lock->unlock(this->roam_lock);
job = (job_t*)callback_job_create((callback_job_cb_t)roam_event,