Code cleanup

Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
This commit is contained in:
Adrien Gallouët
2020-01-10 09:56:13 +00:00
parent 0a9a139409
commit a9fdd76fa3

22
mud.c
View File

@@ -1426,6 +1426,22 @@ mud_cleanup_path(struct mud *mud, uint64_t now, struct mud_path *path)
return path->state <= MUD_DOWN; return path->state <= MUD_DOWN;
} }
static int
mud_path_is_ok(struct mud *mud, struct mud_path *path)
{
if (!path->mtu.ok)
return 0;
if (path->tx.loss > mud->loss_limit)
return 0;
if (mud->peer.set)
return 1;
return !mud_timeout(mud->last_recv_time, path->rx.time,
MUD_MSG_SENT_MAX * path->conf.msg_timeout);
}
int int
mud_update(struct mud *mud) mud_update(struct mud *mud)
{ {
@@ -1461,11 +1477,7 @@ mud_update(struct mud *mud)
} else { } else {
path->msg.sent = MUD_MSG_SENT_MAX; path->msg.sent = MUD_MSG_SENT_MAX;
} }
} else if (path->mtu.ok && } else if (mud_path_is_ok(mud, path)) {
(path->tx.loss <= mud->loss_limit) &&
(mud->peer.set ||
!mud_timeout(mud->last_recv_time, path->rx.time,
MUD_MSG_SENT_MAX * path->conf.msg_timeout))) {
if (path->state != MUD_BACKUP) if (path->state != MUD_BACKUP)
mud->backup = 0; mud->backup = 0;
rate += path->tx.rate; rate += path->tx.rate;