[Xastir-dev] Mysteriously non-vanishing deleted stations?

Tom Russo russo at bogodyn.org
Wed Mar 7 14:56:01 EST 2007


On Wed, Mar 07, 2007 at 08:13:40AM -0800, we recorded a bogon-computron collision of the <archer at eskimo.com> flavor, containing:
> On Wed, 7 Mar 2007, Curt, WE7U wrote:
> 
> > Uncommend the EXPIRE_DEBUG line and it'll try to remove each station
> > afer 15 seconds plus output some debug info.  Obviously I've been
> > playing in this bit of code sometime in the past.
> 
> This appears to be expiring stations properly for me.  Of course
> one could check where sec_remove is used to make sure we're not
> overflowing an "int", "short int", or similar.  Maybe at the higher
> values of seconds it isn't working, but at low values it is.

Not sure this is the issue, but there *is* a potential problem:

void check_station_remove(int curr_sec) {


curr_sec (passed in as current_time from main.c) is actually a time_t, not
an int.  It's entirely possible that things like:

    if (last_station_remove < (curr_sec - STATION_REMOVE_CYCLE)) {
aren't working right if curr_sec is truncated down to a signed  int if
time_t is an unsigned long.  This is the conditional that actually runs
the delete code under normal circumstances.  last_station_remove is a time_t,
and is assigned to directly from sec_now().

I'll have to try changing the function argument to a time_t  and let it run 
for a few days, to see if that's it.

-- 
Tom Russo    KM5VY   SAR502   DM64ux          http://www.swcp.com/~russo/
Tijeras, NM  QRPL#1592 K2#398  SOC#236 AHTB#1 http://kevan.org/brain.cgi?DDTNM
"And, isn't sanity really just a one-trick pony anyway? I mean all you get is
 one trick, rational thinking, but when you're good and crazy, oooh, oooh,
 oooh, the sky is the limit!"  --- The Tick



More information about the Xastir-dev mailing list