Limit telegram squashing to 5s total
Before, only the time between adjacent telegrams was limited, not the total time.
This commit is contained in:
parent
4d046738fd
commit
5acdcfec63
1 changed files with 8 additions and 14 deletions
|
@ -51,9 +51,7 @@ static struct telstr last_tel[MAXNOC];
|
|||
void
|
||||
clear_telegram_is_new(natid to)
|
||||
{
|
||||
last_tel[to].tel_type = 0;
|
||||
last_tel[to].tel_from = NATID_BAD;
|
||||
last_tel[to].tel_date = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -64,18 +62,14 @@ clear_telegram_is_new(natid to)
|
|||
static int
|
||||
telegram_is_new(natid to, struct telstr *tel)
|
||||
{
|
||||
int is_new = 0;
|
||||
|
||||
is_new |= tel->tel_type != last_tel[to].tel_type;
|
||||
is_new |= tel->tel_from != last_tel[to].tel_from;
|
||||
is_new |= tel->tel_type != TEL_UPDATE &&
|
||||
abs(tel->tel_date - last_tel[to].tel_date) > TEL_SECONDS;
|
||||
|
||||
last_tel[to].tel_type = tel->tel_type;
|
||||
last_tel[to].tel_from = tel->tel_from;
|
||||
last_tel[to].tel_date = tel->tel_date;
|
||||
|
||||
return is_new;
|
||||
if (tel->tel_from != last_tel[to].tel_from
|
||||
|| tel->tel_type != last_tel[to].tel_type
|
||||
|| (tel->tel_type != TEL_UPDATE
|
||||
&& abs(tel->tel_date - last_tel[to].tel_date) > TEL_SECONDS)) {
|
||||
last_tel[to] = *tel;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue