]> git.meshlink.io Git - utcp/blobdiff - utcp.c
Fix generating invalid retransmit timeouts.
[utcp] / utcp.c
diff --git a/utcp.c b/utcp.c
index 9fa37b9f18671941da9b582e5157974df1dbe091..fd507f91abecc9d674ab99c0cb47ef1d94b1f96e 100644 (file)
--- a/utcp.c
+++ b/utcp.c
@@ -74,6 +74,7 @@ static bool timespec_lt(const struct timespec *a, const struct timespec *b) {
 
 static void timespec_clear(struct timespec *a) {
        a->tv_sec = 0;
+       a->tv_nsec = 0;
 }
 
 static bool timespec_isset(const struct timespec *a) {
@@ -579,7 +580,7 @@ static void start_retransmit_timer(struct utcp_connection *c) {
                rto -= USEC_PER_SEC;
        }
 
-       c->rtrx_timeout.tv_nsec += c->rto * 1000;
+       c->rtrx_timeout.tv_nsec += rto * 1000;
 
        if(c->rtrx_timeout.tv_nsec >= NSEC_PER_SEC) {
                c->rtrx_timeout.tv_nsec -= NSEC_PER_SEC;