Simplify how typed_wu() counts telegrams
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 20 Nov 2011 19:14:00 +0000 (20:14 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Thu, 29 Dec 2011 10:47:06 +0000 (11:47 +0100)
commita0b82b8d46ad043e39709f91c36ffe1f6043d3de
tree0ebdc8df83fa6a4797d04670f1d1c1eaa79d1414
parenta5bcb63b8585a9a78751fa2de051f808095ac888
Simplify how typed_wu() counts telegrams

typed_wu() counts telegrams to update nat_tgms and, since Empire 2,
send C_INFORM messages.  Adjacent telegrams are squashed together if
type and sender are the same, and the timestamp is within TEL_SECONDS.

typed_wu() increments nat_tgms when it sends a telegram that read
doesn't squash into the previous one.

Since Empire 2, it also sends a C_INFORM message then.  Inexplicably,
it fails to use the same condition: it tests just new_tele, not
new_tele || np->nat_tgms == 0.  C_INFORM messages got missed, until
4.0.18 made rea() call clear_telegram_is_new().  Convoluted.

Send C_INFORM exactly when incrementing nat_tgms, and back out
4.0.18's fix.
src/lib/commands/rea.c
src/lib/subs/wu.c