From 7303dea98c80a0572cf894de2b90e12e5cafd1b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20Gallou=C3=ABt?= Date: Tue, 20 Feb 2018 19:30:16 +0000 Subject: [PATCH] Let's decrypt everything MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Adrien Gallouët --- mud.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/mud.c b/mud.c index 1cc3223..f91b000 100644 --- a/mud.c +++ b/mud.c @@ -1153,14 +1153,12 @@ mud_recv(struct mud *mud, void *data, size_t size) uint64_t send_time = mud_read48(packet); int mud_packet = !send_time; - int new_path = 0; if (mud_packet) { if (mud_packet_check_size(packet, packet_size)) return 0; send_time = mud_read48(&packet[MUD_U48_SIZE]); - new_path = ((struct mud_packet *)packet)->hdr.code == mud_conf; } if (mud_abs_diff(now, send_time) >= mud->time_tolerance) @@ -1176,11 +1174,6 @@ mud_recv(struct mud *mud, void *data, size_t size) if (mud_localaddr(&local_addr, &msg, addr.ss_family)) return 0; - struct mud_path *path = mud_path(mud, &local_addr, &addr, new_path); - - if (!path) - return 0; - int ret = 0; if (!mud_packet) { @@ -1191,6 +1184,11 @@ mud_recv(struct mud *mud, void *data, size_t size) } } + struct mud_path *path = mud_path(mud, &local_addr, &addr, 1); + + if (!path) + return 0; + if (path->rdt) { path->rdt = ((now - path->recv_time) + UINT64_C(7) * path->rdt) / UINT64_C(8); path->sdt = ((send_time - path->rst) + UINT64_C(7) * path->sdt) / UINT64_C(8);