Browse Source

Plan 9 from Bell Labs 2008-02-21

David du Colombier 16 years ago
parent
commit
1f8a9113fb

+ 0 - 0
sys/src/cmd/usb/misc/usbprint → 386/bin/usb/print


+ 0 - 0
sys/src/cmd/usb/misc/usbprobe → 386/bin/usb/probe


+ 1 - 0
386/bin/usb/usbprint

@@ -1,6 +1,7 @@
 #!/bin/rc
 # usbprint - bind usb printer endpoint to /dev/lp
 rfork e
+echo warning: use usb/print instead of usb/usbprint >[1=2]
 for (id in /dev/usb[0-9]*/[0-9]*)
 	if (grep -s 'Enabled 0x020107' $id/status >[2]/dev/null){
 		echo -n 'ep 2 bulk w 64 32' >$id/ctl

+ 1 - 0
386/bin/usb/usbprobe

@@ -1,6 +1,7 @@
 #!/bin/rc
 # list all usb devices
 rfork e
+echo warning: use usb/probe instead of usb/usbprobe >[1=2]
 for (id in /dev/usb[0-9]*/[0-9]*/status)
 	if (test -e $id) {
 		echo $id | sed 's;/status$;:	;' | tr -d '\12'

+ 21 - 11
dist/replica/_plan9.db

@@ -185,7 +185,7 @@
 386/bin/colors - 775 sys sys 1197732695 151031
 386/bin/comm - 775 sys sys 1168402296 61586
 386/bin/compress - 775 sys sys 1184529900 167036
-386/bin/con - 775 sys sys 1168402297 78486
+386/bin/con - 775 sys sys 1203482824 78416
 386/bin/cp - 775 sys sys 1168402297 63454
 386/bin/cpp - 775 sys sys 1196742451 149149
 386/bin/cpu - 775 sys sys 1196742454 139159
@@ -484,11 +484,14 @@
 386/bin/upas/vf - 775 sys sys 1181704900 97444
 386/bin/usb - 20000000775 sys sys 1019538890 0
 386/bin/usb/disk - 775 sys sys 1202876959 188101
+386/bin/usb/kb - 775 sys sys 1203552595 133600
+386/bin/usb/print - 775 sys sys 1203552483 314
+386/bin/usb/probe - 775 sys sys 1203552486 173
 386/bin/usb/usbaudio - 775 sys sys 1202876962 188937
 386/bin/usb/usbd - 775 sys sys 1202876965 132270
 386/bin/usb/usbmouse - 775 sys sys 1202876967 129429
-386/bin/usb/usbprint - 775 sys sys 1196537245 314
-386/bin/usb/usbprobe - 775 sys sys 1196537245 173
+386/bin/usb/usbprint - 775 sys sys 1203552511 373
+386/bin/usb/usbprobe - 775 sys sys 1203552526 232
 386/bin/vac - 775 sys sys 1196742539 171330
 386/bin/vacfs - 775 sys sys 1196742542 176138
 386/bin/venti - 20000000775 sys sys 947360466 0
@@ -7690,7 +7693,7 @@ sys/man/3/ether - 664 sys sys 1196638941 2890
 sys/man/3/floppy - 664 sys sys 1196638941 881
 sys/man/3/fs - 664 sys sys 1196638942 3159
 sys/man/3/i82365 - 664 sys sys 1196638942 884
-sys/man/3/ip - 664 sys sys 1196638942 26321
+sys/man/3/ip - 664 sys sys 1203556247 26665
 sys/man/3/kbin - 664 sys sys 1202938916 654
 sys/man/3/kbmap - 664 sys sys 1196638942 1732
 sys/man/3/kprof - 664 sys sys 1196638942 1377
@@ -7753,7 +7756,7 @@ sys/man/4/tapefs - 664 sys sys 1196638944 1861
 sys/man/4/telco - 664 sys sys 1196638944 4359
 sys/man/4/u9fs - 664 sys sys 1196638944 4748
 sys/man/4/upasfs - 664 sys sys 1196638944 6212
-sys/man/4/usb - 664 sys sys 1202938916 5689
+sys/man/4/usb - 664 sys sys 1203552814 5677
 sys/man/4/usbd - 664 sys sys 1202846392 1035
 sys/man/4/usbdisk - 664 sys sys 1202847388 3041
 sys/man/4/vacfs - 664 sys sys 1196638944 1545
@@ -8038,8 +8041,8 @@ sys/src/9/ip/netlog.c - 664 sys sys 1188581818 3953
 sys/src/9/ip/nullmedium.c - 664 sys sys 1086406910 492
 sys/src/9/ip/pktmedium.c - 664 sys sys 1084331746 1314
 sys/src/9/ip/ptclbsum.c - 664 sys sys 1022588099 1243
-sys/src/9/ip/rudp.c - 664 sys sys 1187735906 21590
-sys/src/9/ip/tcp.c - 664 sys sys 1193872007 65959
+sys/src/9/ip/rudp.c - 664 sys sys 1203554193 20806
+sys/src/9/ip/tcp.c - 664 sys sys 1203551505 66252
 sys/src/9/ip/tripmedium.c - 664 sys sys 1045063515 7136
 sys/src/9/ip/udp.c - 664 sys sys 1187735914 13315
 sys/src/9/mkfile - 664 sys sys 1063857477 205
@@ -14283,11 +14286,11 @@ sys/src/cmd/usb/lib/setup.c - 664 sys sys 1202255323 1933
 sys/src/cmd/usb/lib/usb.h - 664 sys sys 1165044715 7066
 sys/src/cmd/usb/lib/util.c - 664 sys sys 1091204978 523
 sys/src/cmd/usb/misc - 20000000775 sys sys 1091282306 0
-sys/src/cmd/usb/misc/mkfile - 664 sys sys 1167255850 374
+sys/src/cmd/usb/misc/mkfile - 664 sys sys 1203553011 356
+sys/src/cmd/usb/misc/print - 775 sys sys 1167253831 314
+sys/src/cmd/usb/misc/probe - 775 sys sys 1167253836 173
 sys/src/cmd/usb/misc/usbmouse.c - 664 sys sys 1202702762 4804
-sys/src/cmd/usb/misc/usbprint - 775 sys sys 1167253831 314
-sys/src/cmd/usb/misc/usbprobe - 775 sys sys 1167253836 173
-sys/src/cmd/usb/mkfile - 664 sys sys 1193181446 361
+sys/src/cmd/usb/mkfile - 664 sys sys 1203553384 366
 sys/src/cmd/usb/usbd - 20000000775 sys sys 1091204979 0
 sys/src/cmd/usb/usbd/dat.h - 664 sys sys 1091204979 675
 sys/src/cmd/usb/usbd/fns.h - 664 sys sys 1091204979 495
@@ -15866,3 +15869,10 @@ usr/glenda/lib/profile - 664 glenda glenda 1105128663 890
 usr/glenda/readme.acme - 664 glenda glenda 1019860628 4753
 usr/glenda/readme.rio - 664 glenda glenda 1019860628 6370
 usr/glenda/tmp - 20000000775 glenda glenda 1018802620 0
+386/bin/usb/kb - 775 sys sys 1203567409 133600
+386/bin/usb/print - 775 sys sys 1203567409 314
+386/bin/usb/probe - 775 sys sys 1203567409 173
+386/bin/usb/usbprint - 775 sys sys 1203567409 373
+386/bin/usb/usbprobe - 775 sys sys 1203567409 232
+sys/src/cmd/usb/lib/usb.h - 664 sys sys 1203568227 7076
+sys/src/cmd/usb/lib/util.c - 664 sys sys 1203568227 533

+ 16 - 13
dist/replica/plan9.db

@@ -185,7 +185,7 @@
 386/bin/colors - 775 sys sys 1197732695 151031
 386/bin/comm - 775 sys sys 1168402296 61586
 386/bin/compress - 775 sys sys 1184529900 167036
-386/bin/con - 775 sys sys 1168402297 78486
+386/bin/con - 775 sys sys 1203482824 78416
 386/bin/cp - 775 sys sys 1168402297 63454
 386/bin/cpp - 775 sys sys 1196742451 149149
 386/bin/cpu - 775 sys sys 1196742454 139159
@@ -484,11 +484,14 @@
 386/bin/upas/vf - 775 sys sys 1181704900 97444
 386/bin/usb - 20000000775 sys sys 1019538890 0
 386/bin/usb/disk - 775 sys sys 1202876959 188101
+386/bin/usb/kb - 775 sys sys 1203567409 133600
+386/bin/usb/print - 775 sys sys 1203567409 314
+386/bin/usb/probe - 775 sys sys 1203567409 173
 386/bin/usb/usbaudio - 775 sys sys 1202876962 188937
 386/bin/usb/usbd - 775 sys sys 1202876965 132270
 386/bin/usb/usbmouse - 775 sys sys 1202876967 129429
-386/bin/usb/usbprint - 775 sys sys 1196537245 314
-386/bin/usb/usbprobe - 775 sys sys 1196537245 173
+386/bin/usb/usbprint - 775 sys sys 1203567409 373
+386/bin/usb/usbprobe - 775 sys sys 1203567409 232
 386/bin/vac - 775 sys sys 1196742539 171330
 386/bin/vacfs - 775 sys sys 1196742542 176138
 386/bin/venti - 20000000775 sys sys 947360466 0
@@ -7690,7 +7693,7 @@ sys/man/3/ether - 664 sys sys 1196638941 2890
 sys/man/3/floppy - 664 sys sys 1196638941 881
 sys/man/3/fs - 664 sys sys 1196638942 3159
 sys/man/3/i82365 - 664 sys sys 1196638942 884
-sys/man/3/ip - 664 sys sys 1196638942 26321
+sys/man/3/ip - 664 sys sys 1203556247 26665
 sys/man/3/kbin - 664 sys sys 1202938916 654
 sys/man/3/kbmap - 664 sys sys 1196638942 1732
 sys/man/3/kprof - 664 sys sys 1196638942 1377
@@ -7753,7 +7756,7 @@ sys/man/4/tapefs - 664 sys sys 1196638944 1861
 sys/man/4/telco - 664 sys sys 1196638944 4359
 sys/man/4/u9fs - 664 sys sys 1196638944 4748
 sys/man/4/upasfs - 664 sys sys 1196638944 6212
-sys/man/4/usb - 664 sys sys 1202938916 5689
+sys/man/4/usb - 664 sys sys 1203552814 5677
 sys/man/4/usbd - 664 sys sys 1202846392 1035
 sys/man/4/usbdisk - 664 sys sys 1202847388 3041
 sys/man/4/vacfs - 664 sys sys 1196638944 1545
@@ -8038,8 +8041,8 @@ sys/src/9/ip/netlog.c - 664 sys sys 1188581818 3953
 sys/src/9/ip/nullmedium.c - 664 sys sys 1086406910 492
 sys/src/9/ip/pktmedium.c - 664 sys sys 1084331746 1314
 sys/src/9/ip/ptclbsum.c - 664 sys sys 1022588099 1243
-sys/src/9/ip/rudp.c - 664 sys sys 1187735906 21590
-sys/src/9/ip/tcp.c - 664 sys sys 1193872007 65959
+sys/src/9/ip/rudp.c - 664 sys sys 1203554193 20806
+sys/src/9/ip/tcp.c - 664 sys sys 1203551505 66252
 sys/src/9/ip/tripmedium.c - 664 sys sys 1045063515 7136
 sys/src/9/ip/udp.c - 664 sys sys 1187735914 13315
 sys/src/9/mkfile - 664 sys sys 1063857477 205
@@ -14280,14 +14283,14 @@ sys/src/cmd/usb/lib/dump.c - 664 sys sys 1202846653 13581
 sys/src/cmd/usb/lib/fmt.c - 664 sys sys 1091204978 291
 sys/src/cmd/usb/lib/mkfile - 664 sys sys 1091204979 204
 sys/src/cmd/usb/lib/setup.c - 664 sys sys 1202255323 1933
-sys/src/cmd/usb/lib/usb.h - 664 sys sys 1165044715 7066
-sys/src/cmd/usb/lib/util.c - 664 sys sys 1091204978 523
+sys/src/cmd/usb/lib/usb.h - 664 sys sys 1203568227 7076
+sys/src/cmd/usb/lib/util.c - 664 sys sys 1203568227 533
 sys/src/cmd/usb/misc - 20000000775 sys sys 1091282306 0
-sys/src/cmd/usb/misc/mkfile - 664 sys sys 1167255850 374
+sys/src/cmd/usb/misc/mkfile - 664 sys sys 1203553011 356
+sys/src/cmd/usb/misc/print - 775 sys sys 1167253831 314
+sys/src/cmd/usb/misc/probe - 775 sys sys 1167253836 173
 sys/src/cmd/usb/misc/usbmouse.c - 664 sys sys 1202702762 4804
-sys/src/cmd/usb/misc/usbprint - 775 sys sys 1167253831 314
-sys/src/cmd/usb/misc/usbprobe - 775 sys sys 1167253836 173
-sys/src/cmd/usb/mkfile - 664 sys sys 1193181446 361
+sys/src/cmd/usb/mkfile - 664 sys sys 1203553384 366
 sys/src/cmd/usb/usbd - 20000000775 sys sys 1091204979 0
 sys/src/cmd/usb/usbd/dat.h - 664 sys sys 1091204979 675
 sys/src/cmd/usb/usbd/fns.h - 664 sys sys 1091204979 495

+ 24 - 0
dist/replica/plan9.log

@@ -18505,3 +18505,27 @@
 1203022804 3 c sys/src/cmd/usb/kb/hid.h - 664 sys sys 1203021357 1065
 1203022804 4 c sys/src/cmd/usb/kb/kb.c - 664 sys sys 1203021358 13508
 1203453006 0 c sys/src/cmd/con/con.c - 664 sys sys 1203451679 15318
+1203483604 0 c 386/bin/con - 775 sys sys 1203482824 78416
+1203552004 0 c sys/src/9/ip/tcp.c - 664 sys sys 1203551505 66252
+1203553805 0 a 386/bin/usb/kb - 775 sys sys 1203552595 133600
+1203553805 1 a 386/bin/usb/print - 775 sys sys 1203552483 314
+1203553805 2 a 386/bin/usb/probe - 775 sys sys 1203552486 173
+1203553805 3 c 386/bin/usb/usbprint - 775 sys sys 1203552511 373
+1203553805 4 c 386/bin/usb/usbprobe - 775 sys sys 1203552526 232
+1203553805 5 c sys/man/4/usb - 664 sys sys 1203552814 5677
+1203553805 6 c sys/src/cmd/usb/misc/mkfile - 664 sys sys 1203553011 356
+1203553805 7 a sys/src/cmd/usb/misc/print - 775 sys sys 1167253831 314
+1203553805 8 a sys/src/cmd/usb/misc/probe - 775 sys sys 1167253836 173
+1203553805 9 c sys/src/cmd/usb/mkfile - 664 sys sys 1203553384 366
+1203553805 10 d sys/src/cmd/usb/misc/usbprobe - 775 sys sys 1167253836 0
+1203553805 11 d sys/src/cmd/usb/misc/usbprint - 775 sys sys 1167253831 0
+1203555605 0 c sys/man/3/ip - 664 sys sys 1203554325 26662
+1203555605 1 c sys/src/9/ip/rudp.c - 664 sys sys 1203554193 20806
+1203557403 0 c sys/man/3/ip - 664 sys sys 1203556247 26665
+1203568203 0 c 386/bin/usb/kb - 775 sys sys 1203567409 133600
+1203568203 1 c 386/bin/usb/print - 775 sys sys 1203567409 314
+1203568203 2 c 386/bin/usb/probe - 775 sys sys 1203567409 173
+1203568203 3 c 386/bin/usb/usbprint - 775 sys sys 1203567409 373
+1203568203 4 c 386/bin/usb/usbprobe - 775 sys sys 1203567409 232
+1203568203 5 c sys/src/cmd/usb/lib/usb.h - 664 sys sys 1203568227 7076
+1203568203 6 c sys/src/cmd/usb/lib/util.c - 664 sys sys 1203568227 533

+ 26 - 4
sys/man/3/ip

@@ -5,7 +5,7 @@ ip, esp, gre, icmp, icmpv6, ipmux, rudp, tcp, udp \- network protocols over IP
 .nf
 .2C
 .B bind -a #I\fIspec\fP /net
-
+.sp 0.3v
 .B /net/ipifc
 .B /net/ipifc/clone
 .B /net/ipifc/stats
@@ -13,14 +13,14 @@ ip, esp, gre, icmp, icmpv6, ipmux, rudp, tcp, udp \- network protocols over IP
 .BI /net/ipifc/ n /status
 .BI /net/ipifc/ n /ctl
 \&...
-
+.sp 0.3v
 .B /net/arp
 .B /net/bootp
 .B /net/iproute
 .B /net/ipselftab
 .B /net/log
 .B /net/ndb
-
+.sp 0.3v
 .B /net/esp
 .B /net/gre
 .B /net/icmp
@@ -29,7 +29,7 @@ ip, esp, gre, icmp, icmpv6, ipmux, rudp, tcp, udp \- network protocols over IP
 .B /net/rudp
 .B /net/tcp
 .B /net/udp
-
+.sp 0.3v
 .B /net/tcp/clone
 .B /net/tcp/stats
 .BI /net/tcp/ n
@@ -814,6 +814,28 @@ is treated like a reboot:
 all queued messages are dropped, an error is queued to the
 .B err
 file, and the conversation resumes.
+.PP
+RUDP
+.I ctl
+files accept the following messages:
+.TF "randdrop percent"
+.TP
+.B headers
+Corresponds to the
+.L headers
+format of UDP.
+.TP
+.BI "hangup " "IP port"
+Drop the connection to address
+.I IP
+and
+.IR port .
+.TP
+.BI "randdrop " "[ percent ]"
+Randomly drop
+.I percent
+of outgoing packets.
+Default is 10%.
 .
 .SS ICMP
 ICMP is a datagram protocol for IPv4 used to exchange control requests and

+ 4 - 4
sys/man/4/usb

@@ -3,7 +3,7 @@
 usbmouse,
 kb,
 usbaudio,
-usbprint
+print
 \- Universal Serial Bus user-level device drivers
 .SH SYNOPSIS
 .B usb/usbmouse
@@ -45,7 +45,7 @@ usbprint
 .I n
 ]
 .PP
-.B usb/usbprint
+.B usb/print
 .SH DESCRIPTION
 These programs implement support for specific USB device classes.
 They should be run after
@@ -115,7 +115,7 @@ Serve just the mouse (and not the keyboard).
 .B \-n
 Dry run. Do not send any events to the kernel for processing.
 .SS Printers
-.I Usbprint
+.I Print
 is a script that mounts a USB printer on
 .BR /dev/lp .
 .SS Audio devices
@@ -216,7 +216,7 @@ if (test -r '#U'/usb0) {
 	usb/usbd
 	usb/usbmouse -a 2
 	usb/usbaudio -v \fIx\fP
-	usb/usbprint
+	usb/print
 }
 .EE
 .PP

+ 3 - 2
sys/man/8/smtp

@@ -91,8 +91,9 @@ output rather than sending it.
 .B -g
 makes
 .I gateway
-the system to pass the message to if smtp can't
-find an address or MX entry for the destination system.
+the system to pass the message to if
+.I smtp
+can't find an address nor MX entry for the destination system.
 .TP
 .B -h
 use

+ 3 - 36
sys/src/9/ip/rudp.c

@@ -26,20 +26,17 @@
 
 enum
 {
-	UDP_HDRSIZE	= 20,	/* pseudo header + udp header */
 	UDP_PHDRSIZE	= 12,	/* pseudo header */
+//	UDP_HDRSIZE	= 20,	/* pseudo header + udp header */
 	UDP_RHDRSIZE	= 36,	/* pseudo header + udp header + rudp header */
 	UDP_IPHDR	= 8,	/* ip header */
 	IP_UDPPROTO	= 254,
-	UDP_USEAD7	= 52,
-	UDP_USEAD6	= 36,
-	UDP_USEAD4	= 12,
+	UDP_USEAD7	= 52,	/* size of new ipv6 headers struct */
 
 	Rudprxms	= 200,
 	Rudptickms	= 50,
 	Rudpmaxxmit	= 10,
 	Maxunacked	= 100,
-
 };
 
 #define Hangupgen	0xffffffff	/* used only in hangup messages */
@@ -376,27 +373,10 @@ rudpkick(void *x)
 		rport = nhgets(bp->rp);
 		bp->rp += 2+2;			/* Ignore local port */
 		break;
-	case 6:					/* OBS */
-		/* get user specified addresses */
-		bp = pullupblock(bp, UDP_USEAD6);
-		if(bp == nil)
-			return;
-		ipmove(raddr, bp->rp);
-		bp->rp += IPaddrlen;
-		ipmove(laddr, bp->rp);
-		bp->rp += IPaddrlen;
-		/* pick interface closest to dest */
-		if(ipforme(f, laddr) != Runi)
-			findlocalip(f, laddr, raddr);
-		rport = nhgets(bp->rp);
-
-		bp->rp += 4;			/* Igonore local port */
-		break;
 	default:
 		ipmove(raddr, c->raddr);
 		ipmove(laddr, c->laddr);
 		rport = c->rport;
-
 		break;
 	}
 
@@ -419,7 +399,6 @@ rudpkick(void *x)
 	uh->frag[1] = 0;
 	hnputs(uh->udpplen, ptcllen);
 	switch(ucb->headers){
-	case 6:					/* OBS */
 	case 7:
 		v6tov4(uh->udpdst, raddr);
 		hnputs(uh->udpdport, rport);
@@ -580,15 +559,6 @@ rudpiput(Proto *rudp, Ipifc *ifc, Block *bp)
 		hnputs(p, rport); p += 2;
 		hnputs(p, lport);
 		break;
-	case 6:					/* OBS */
-		/* pass the src address */
-		bp = padblock(bp, UDP_USEAD6);
-		p = bp->rp;
-		ipmove(p, raddr); p += IPaddrlen;
-		ipmove(p, ipforme(f, laddr)==Runi ? laddr : ifc->lifc->local); p += IPaddrlen;
-		hnputs(p, rport); p += 2;
-		hnputs(p, lport);
-		break;
 	default:
 		/* connection oriented rudp */
 		if(ipcmp(c->raddr, IPnoaddr) == 0){
@@ -631,12 +601,9 @@ rudpctl(Conv *c, char **f, int n)
 	if(n < 1)
 		return rudpunknown;
 
-	if(strcmp(f[0], "headers++4") == 0){
+	if(strcmp(f[0], "headers") == 0){
 		ucb->headers = 7;		/* new headers format */
 		return nil;
-	} else if(strcmp(f[0], "headers") == 0){	/* OBS */
-		ucb->headers = 6;
-		return nil;
 	} else if(strcmp(f[0], "hangup") == 0){
 		if(n < 3)
 			return "bad syntax";

+ 21 - 9
sys/src/9/ip/tcp.c

@@ -430,6 +430,11 @@ static char*
 tcpconnect(Conv *c, char **argv, int argc)
 {
 	char *e;
+	Tcpctl *tcb;
+
+	tcb = (Tcpctl*)(c->ptcl);
+	if(tcb->state != Closed)
+		return Econinuse;
 
 	e = Fsstdconnect(c, argv, argc);
 	if(e != nil)
@@ -470,6 +475,11 @@ static char*
 tcpannounce(Conv *c, char **argv, int argc)
 {
 	char *e;
+	Tcpctl *tcb;
+
+	tcb = (Tcpctl*)(c->ptcl);
+	if(tcb->state != Closed)
+		return Econinuse;
 
 	e = Fsstdannounce(c, argv, argc);
 	if(e != nil)
@@ -1231,7 +1241,7 @@ sndrst(Proto *tcp, uchar *source, uchar *dest, ushort length, Tcp *seg, uchar ve
 	Tcp4hdr ph4;
 	Tcp6hdr ph6;
 
-	netlog(tcp->f, Logtcp, "sndrst: %s", reason);
+	netlog(tcp->f, Logtcp, "sndrst: %s\n", reason);
 
 	tpriv = tcp->priv;
 
@@ -1597,7 +1607,7 @@ tcpincoming(Conv *s, Tcp *segp, uchar *src, uchar *dst, uchar version)
 	/* find a call in limbo */
 	h = hashipa(src, segp->source);
 	for(l = &tpriv->lht[h]; (lp = *l) != nil; l = &lp->next){
-		netlog(s->p->f, Logtcp, "tcpincoming s %I,%ux/%I,%ux d %I,%ux/%I,%ux v %d/%d",
+		netlog(s->p->f, Logtcp, "tcpincoming s %I,%ux/%I,%ux d %I,%ux/%I,%ux v %d/%d\n",
 			src, segp->source, lp->raddr, lp->rport,
 			dst, segp->dest, lp->laddr, lp->lport,
 			version, lp->version
@@ -1612,7 +1622,7 @@ tcpincoming(Conv *s, Tcp *segp, uchar *src, uchar *dst, uchar version)
 
 		/* we're assuming no data with the initial SYN */
 		if(segp->seq != lp->irs+1 || segp->ack != lp->iss+1){
-			netlog(s->p->f, Logtcp, "tcpincoming s %lux/%lux a %lux %lux",
+			netlog(s->p->f, Logtcp, "tcpincoming s %lux/%lux a %lux %lux\n",
 				segp->seq, lp->irs+1, segp->ack, lp->iss+1);
 			lp = nil;
 		} else {
@@ -1918,7 +1928,7 @@ tcpiput(Proto *tcp, Ipifc*, Block *bp)
 	Tcp6hdr *h6;
 	int hdrlen;
 	Tcpctl *tcb;
-	ushort length;
+	ushort length, csum;
 	uchar source[IPaddrlen], dest[IPaddrlen];
 	Conv *s;
 	Fs *f;
@@ -1981,10 +1991,12 @@ tcpiput(Proto *tcp, Ipifc*, Block *bp)
 		h6->ttl = proto;
 		hnputl(h6->vcf, length);
 		if((h6->tcpcksum[0] || h6->tcpcksum[1]) &&
-			ptclcsum(bp, TCP6_IPLEN, length+TCP6_PHDRSIZE)) {
+		    (csum = ptclcsum(bp, TCP6_IPLEN, length+TCP6_PHDRSIZE)) != 0) {
 			tpriv->stats[CsumErrs]++;
 			tpriv->stats[InErrs]++;
-			netlog(f, Logtcp, "bad tcp proto cksum\n");
+			netlog(f, Logtcp,
+			    "bad tcpv6 proto cksum: got %#ux, computed %#ux\n",
+				h6->tcpcksum[0]<<8 | h6->tcpcksum[1], csum);
 			freeblist(bp);
 			return;
 		}
@@ -1996,7 +2008,7 @@ tcpiput(Proto *tcp, Ipifc*, Block *bp)
 		if(hdrlen < 0){
 			tpriv->stats[HlenErrs]++;
 			tpriv->stats[InErrs]++;
-			netlog(f, Logtcp, "bad tcp hdr len\n");
+			netlog(f, Logtcp, "bad tcpv6 hdr len\n");
 			return;
 		}
 
@@ -2006,7 +2018,7 @@ tcpiput(Proto *tcp, Ipifc*, Block *bp)
 		if(bp == nil){
 			tpriv->stats[LenErrs]++;
 			tpriv->stats[InErrs]++;
-			netlog(f, Logtcp, "tcp len < 0 after trim\n");
+			netlog(f, Logtcp, "tcpv6 len < 0 after trim\n");
 			return;
 		}
 	}
@@ -2017,7 +2029,7 @@ tcpiput(Proto *tcp, Ipifc*, Block *bp)
 	/* Look for a matching conversation */
 	s = iphtlook(&tpriv->ht, source, seg.source, dest, seg.dest);
 	if(s == nil){
-		netlog(f, Logtcp, "iphtlook failed");
+		netlog(f, Logtcp, "iphtlook failed\n");
 reset:
 		qunlock(tcp);
 		sndrst(tcp, source, dest, length, &seg, version, "no conversation");

+ 1 - 1
sys/src/cmd/usb/lib/usb.h

@@ -10,7 +10,7 @@ enum {
 	Dbgcontrol =	0x08,
 };
 
-extern int debug, debugdebug, verbose;
+extern int debug, debugdebug, usbdebug, verbose;
 
 typedef uchar byte;
 

+ 1 - 1
sys/src/cmd/usb/lib/util.c

@@ -3,7 +3,7 @@
 #include <thread.h>
 #include "usb.h"
 
-int debug, debugdebug, verbose;
+int debug, debugdebug, usbdebug, verbose;
 
 char *
 namefor(Namelist *list, int item)

+ 4 - 4
sys/src/cmd/usb/misc/mkfile

@@ -13,8 +13,8 @@ UPDATE=\
 	$HFILES\
 	${OFILES:%.$O=%.c}\
 	mkfile\
-	usbprint\
-	usbprobe\
+	print\
+	probe\
 
 BIN=/$objtype/bin/usb
 </sys/src/cmd/mkmany
@@ -26,7 +26,7 @@ $LIB:
 	mk install
 	mk clean
 
-$BIN/usbprint: usbprint
+$BIN/print: print
 	cp -x $newprereq $target
-$BIN/usbprobe: usbprobe
+$BIN/probe: probe
 	cp -x $newprereq $target

+ 12 - 0
sys/src/cmd/usb/misc/print

@@ -0,0 +1,12 @@
+#!/bin/rc
+# usbprint - bind usb printer endpoint to /dev/lp
+rfork e
+for (id in /dev/usb[0-9]*/[0-9]*)
+	if (grep -s 'Enabled 0x020107' $id/status >[2]/dev/null){
+		echo -n 'ep 2 bulk w 64 32' >$id/ctl
+		aux/stub /dev/lp
+		bind $id/ep2data /dev/lp
+		exit ''
+	}
+echo $0: no usb printer found >[1=2]
+exit 'no printer'

+ 8 - 0
sys/src/cmd/usb/misc/probe

@@ -0,0 +1,8 @@
+#!/bin/rc
+# list all usb devices
+rfork e
+for (id in /dev/usb[0-9]*/[0-9]*/status)
+	if (test -e $id) {
+		echo $id | sed 's;/status$;:	;' | tr -d '\12'
+		grep '^[A-Z]' $id
+	}

+ 2 - 1
sys/src/cmd/usb/mkfile

@@ -2,10 +2,11 @@
 
 DIRS=\
 	lib\
-	usbd\
 	audio\
 	disk\
+	kb\
 	misc\
+	usbd\
 
 UPDATE=\
 	mkfile\