]> git.meshlink.io Git - meshlink/blobdiff - src/utcp.c
The maximum unreliable packet size is 65535 bytes.
[meshlink] / src / utcp.c
index f81150bf7ee7ec06a1aa9d0e88c2ab5751eb743a..c4305cd4de4978d265155f2dcb537cd746e39251 100644 (file)
@@ -719,7 +719,7 @@ static void ack(struct utcp_connection *c, bool sendatleastone) {
                        pkt->hdr.ctl |= FIN;
                }
 
-               if(!c->rtt_start.tv_sec) {
+               if(!c->rtt_start.tv_sec && is_reliable(c)) {
                        // Start RTT measurement
                        clock_gettime(UTCP_CLOCK, &c->rtt_start);
                        c->rtt_seq = pkt->hdr.seq + seglen;
@@ -1147,7 +1147,7 @@ static void handle_unreliable(struct utcp_connection *c, const struct hdr *hdr,
        }
 
        // Ensure reassembled packet are not larger than 64 kiB
-       if(hdr->wnd >= MAX_UNRELIABLE_SIZE || hdr->wnd + len > MAX_UNRELIABLE_SIZE) {
+       if(hdr->wnd > MAX_UNRELIABLE_SIZE || hdr->wnd + len > MAX_UNRELIABLE_SIZE) {
                return;
        }