mirror of
https://github.com/ntop/n2n.git
synced 2024-10-18 15:42:49 +05:30
Fix purge_expired_registrations to accept passed-in last_purge instead of static function var.
This commit is contained in:
parent
c10f06e382
commit
9e22321c38
@ -1419,6 +1419,8 @@ int run_edge_loop(n2n_edge_t * eee, int *keep_running) {
|
||||
size_t numPurged;
|
||||
time_t lastIfaceCheck=0;
|
||||
time_t lastTransop=0;
|
||||
time_t last_purge_known = 0;
|
||||
time_t last_purge_pending = 0;
|
||||
#ifdef __ANDROID_NDK__
|
||||
time_t lastArpPeriod=0;
|
||||
#endif
|
||||
@ -1502,8 +1504,8 @@ int run_edge_loop(n2n_edge_t * eee, int *keep_running) {
|
||||
|
||||
update_supernode_reg(eee, nowTime);
|
||||
|
||||
numPurged = purge_expired_registrations(&(eee->known_peers));
|
||||
numPurged += purge_expired_registrations(&(eee->pending_peers));
|
||||
numPurged = purge_expired_registrations(&(eee->known_peers), &last_purge_known);
|
||||
numPurged += purge_expired_registrations(&(eee->pending_peers), &last_purge_pending);
|
||||
|
||||
if(numPurged > 0) {
|
||||
traceEvent(TRACE_NORMAL, "Peer removed: pending=%u, operational=%u",
|
||||
|
7
n2n.c
7
n2n.c
@ -307,18 +307,17 @@ void peer_list_add(struct peer_info * * list,
|
||||
}
|
||||
|
||||
|
||||
size_t purge_expired_registrations(struct peer_info ** peer_list) {
|
||||
static time_t last_purge = 0;
|
||||
size_t purge_expired_registrations(struct peer_info ** peer_list, time_t* p_last_purge) {
|
||||
time_t now = time(NULL);
|
||||
size_t num_reg = 0;
|
||||
|
||||
if((now - last_purge) < PURGE_REGISTRATION_FREQUENCY) return 0;
|
||||
if((now - (*p_last_purge)) < PURGE_REGISTRATION_FREQUENCY) return 0;
|
||||
|
||||
traceEvent(TRACE_INFO, "Purging old registrations");
|
||||
|
||||
num_reg = purge_peer_list(peer_list, now-REGISTRATION_TIMEOUT);
|
||||
|
||||
last_purge = now;
|
||||
(*p_last_purge) = now;
|
||||
traceEvent(TRACE_INFO, "Remove %ld registrations", num_reg);
|
||||
|
||||
return num_reg;
|
||||
|
2
n2n.h
2
n2n.h
@ -297,7 +297,7 @@ size_t peer_list_size( const struct peer_info * list );
|
||||
size_t purge_peer_list( struct peer_info ** peer_list,
|
||||
time_t purge_before );
|
||||
size_t clear_peer_list( struct peer_info ** peer_list );
|
||||
size_t purge_expired_registrations( struct peer_info ** peer_list );
|
||||
size_t purge_expired_registrations( struct peer_info ** peer_list, time_t* p_last_purge );
|
||||
|
||||
/* version.c */
|
||||
extern char *n2n_sw_version, *n2n_sw_osName, *n2n_sw_buildDate;
|
||||
|
3
sn.c
3
sn.c
@ -859,6 +859,7 @@ static int run_loop( n2n_sn_t * sss )
|
||||
{
|
||||
uint8_t pktbuf[N2N_SN_PKTBUF_SIZE];
|
||||
int keep_running=1;
|
||||
time_t last_purge_edges = 0;
|
||||
|
||||
sss->start_time = time(NULL);
|
||||
|
||||
@ -934,7 +935,7 @@ static int run_loop( n2n_sn_t * sss )
|
||||
traceEvent( TRACE_DEBUG, "timeout" );
|
||||
}
|
||||
|
||||
purge_expired_registrations( &(sss->edges) );
|
||||
purge_expired_registrations( &(sss->edges), &last_purge_edges );
|
||||
|
||||
} /* while */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user