ref: 64c6eaaaef193ef730f16c6217a6d3e6b8fdb719
parent: e61ca3be6f93135afc575df89d146e946e2b6ec4
author: cinap_lenrek <[email protected]>
date: Fri Feb 3 20:35:35 EST 2017
aan: use unsigned message counters
--- a/aan.c
+++ b/aan.c
@@ -35,8 +35,8 @@
int writer;
int syncer;
- long inmsg;
- long outmsg;
+ ulong inmsg;
+ ulong outmsg;
Buf *unackedhead;
Buf **unackedtail;
@@ -77,7 +77,7 @@
Client *c = (Client*)arg;
Buf *b;
int n;
- long m;
+ ulong m;
for(;;){
b = malloc(sizeof(Buf));
@@ -138,7 +138,7 @@
aanreader(void *arg)
{
Client *c = (Client*)arg;
- long a, m, lastacked = 0;
+ ulong a, m, lastacked = 0;
Buf *b, *x;
int n;
@@ -151,7 +151,7 @@
m = GBIT32(b->hdr.msg);
n = GBIT32(b->hdr.nb);
if(n == 0){
- if(m < 0)
+ if(m == (ulong)-1)
continue;
goto Closed;
} else if(n < 0 || n > Bufsize)
@@ -159,11 +159,11 @@
if(readn(c->netfd, b->buf, n) != n)
break;
- if(m < c->inmsg)
+ if(m != c->inmsg)
continue;
c->inmsg++;
- if(lastacked != a){
+ if((long)(a - lastacked) > 0){
qlock(&c->lk);
while((x = c->unackedhead) != nil){
assert(GBIT32(x->hdr.msg) == lastacked);