From fd5dc301e4a69d7b7c1293aafe5b069b4ff400a4 Mon Sep 17 00:00:00 2001 From: rodri Date: Thu, 16 Feb 2023 13:35:24 +0000 Subject: implemented a keep alive mechanism. also changed the newframe fn to take a Udphdr* instead of a Frame*. the verifyframe fn now returns 1 if correct 0 otherwise. --- musw.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'musw.c') diff --git a/musw.c b/musw.c index 039f7b6..08d1272 100644 --- a/musw.c +++ b/musw.c @@ -268,7 +268,7 @@ threadnetppu(void *) case NShi: unpack(frame->data, frame->len, "kk", &netconn.dh.p, &netconn.dh.g); - newf = newframe(frame, NCdhx, 0, 0, sizeof(ulong), nil); + newf = newframe(nil, NCdhx, frame->seq+1, frame->seq, sizeof(ulong), nil); netconn.dh.sec = truerand(); pack(newf->data, newf->len, "k", dhgenkey(netconn.dh.g, netconn.dh.sec, netconn.dh.p)); @@ -290,7 +290,7 @@ threadnetppu(void *) } break; case NCSConnected: - if(verifyframe(frame, netconn.dh.priv) != 0){ + if(!verifyframe(frame, netconn.dh.priv)){ if(debug) fprint(2, "\tbad signature\n"); goto discard; @@ -304,7 +304,7 @@ threadnetppu(void *) &universe->star.p); break; case NSnudge: - newf = newframe(frame, NCnudge, 0, 0, 0, nil); + newf = newframe(nil, NCnudge, frame->seq+1, frame->seq, 0, nil); signframe(newf, netconn.dh.priv); sendp(egress, newf); -- cgit v1.2.3