M pc/vga.c => pc/vga.c +3 -3
@@ 97,7 97,7 @@ vgascreenputc(VGAscr* scr, char* buf, Rectangle *flushr)
pos = 4-(pos%4);
r = Rect(curpos.x, curpos.y, curpos.x+pos*w, curpos.y+h);
memimagedraw(scr->gscreen, r, back, back->r.min, nil, ZP);
- bbox(flushr, r);
+ combinerect(flushr, r);
curpos.x += pos*w;
break;
@@ 107,7 107,7 @@ vgascreenputc(VGAscr* scr, char* buf, Rectangle *flushr)
xp--;
r = Rect(*xp, curpos.y, curpos.x, curpos.y+h);
memimagedraw(scr->gscreen, r, back, back->r.min, nil, ZP);
- bbox(flushr, r);
+ combinerect(flushr, r);
curpos.x = *xp;
break;
@@ 122,7 122,7 @@ vgascreenputc(VGAscr* scr, char* buf, Rectangle *flushr)
r = Rect(curpos.x, curpos.y, curpos.x+w, curpos.y+h);
memimagedraw(scr->gscreen, r, back, back->r.min, nil, back->r.min);
memimagestring(scr->gscreen, curpos, conscol, scr->memdefont, buf);
- bbox(flushr, r);
+ combinerect(flushr, r);
curpos.x += w;
}
// drawdebug = 0;
M port/devdraw.c => port/devdraw.c +3 -3
@@ 287,7 287,7 @@ drawrefresh(Memimage *l, Rectangle r, void *v)
d = x->dimage;
for(ref=c->refresh; ref; ref=ref->next)
if(ref->dimage == d){
- bbox(&ref->r, r);
+ combinerect(&ref->r, r);
return;
}
ref = malloc(sizeof(Refresh));
@@ 314,7 314,7 @@ addflush(Rectangle r)
return;
}
nbb = flushrect;
- bbox(&nbb, r);
+ combinerect(&nbb, r);
ar = Dx(r)*Dy(r);
abb = Dx(flushrect)*Dy(flushrect);
anbb = Dx(nbb)*Dy(nbb);
@@ 349,7 349,7 @@ dstflush(int dstid, Memimage *dst, Rectangle r)
Memlayer *l;
if(dstid == 0){
- bbox(&flushrect, r);
+ combinerect(&flushrect, r);
return;
}
l = dst->layer;
M port/devsdp.c => port/devsdp.c +15 -4
@@ 1185,7 1185,7 @@ print("dup sequence number: %ld (%ld %ld)\n", seq, c->in.seqwrap, seqdiff);
if(0) print("coniput seq=%ulx\n", seq);
if(c->in.auth != 0) {
if(!(*c->in.auth)(&c->in, b->rp-4, BLEN(b)+4)) {
-print("bad auth %d\n", BLEN(b)+4);
+print("bad auth %ld\n", BLEN(b)+4);
c->lstats.inBadAuth++;
freeb(b);
return nil;
@@ 1686,9 1686,17 @@ static Block *
readdata(Conv *c, int n)
{
Block *b;
+ int nn;
for(;;) {
- b = convreadblock(c, n);
+
+ // some slack for tunneling overhead
+ nn = n + 100;
+
+ // make sure size is big enough for control messages
+ if(nn < 1000)
+ nn = 1000;
+ b = convreadblock(c, nn);
if(b == nil)
return nil;
qlock(c);
@@ 1699,8 1707,11 @@ readdata(Conv *c, int n)
b = conviput(c, b, 0);
poperror();
qunlock(c);
- if(b != nil)
+ if(b != nil) {
+ if(BLEN(b) > n)
+ b->wp = b->rp + n;
return b;
+ }
}
}
@@ 1726,7 1737,7 @@ writedata(Conv *c, Block *b)
c->lstats.outDataPackets++;
c->lstats.outDataBytes += n;
- if(c->out.comp != nil && 0) {
+ if(0 && c->out.comp != nil) {
// must generate same value as convoput
seq = (c->out.seq + 1) & (SeqMax-1);