Browse Source

Plan 9 from Bell Labs 2005-04-04

David du Colombier 19 years ago
parent
commit
c7cdea99d1

+ 15 - 21
dist/replica/_plan9.db

@@ -1,15 +1,15 @@
 386 - 20000000775 sys sys 1010957353 0
 386/9load - 775 sys sys 1100269948 208708
-386/9loaddebug - 775 sys sys 1109477747 309905
+386/9loaddebug - 775 sys sys 1112501902 310058
 386/9loadlite - 775 sys sys 1100269949 132260
-386/9loadlitedebug - 775 sys sys 1109477747 198992
-386/9pc - 775 sys sys 1111119465 1833271
+386/9loadlitedebug - 775 sys sys 1112501902 199029
+386/9pc - 775 sys sys 1112501906 1833326
 386/9pc.gz - 664 sys sys 1077049336 635727
-386/9pccpu - 775 sys sys 1109132020 1487821
+386/9pccpu - 775 sys sys 1112501910 1487876
 386/9pccpu.gz - 664 sys sys 1077049387 519909
-386/9pcdisk - 775 sys sys 1111119470 2038973
+386/9pcdisk - 775 sys sys 1112501914 2039028
 386/9pcdisk.gz - 664 sys sys 1040006345 703136
-386/9pcf - 775 sys sys 1111119476 2381805
+386/9pcf - 775 sys sys 1112501918 2381860
 386/9pcf.gz - 664 sys sys 1077049490 872650
 386/9pxeload - 775 sys sys 1109598590 215716
 386/_9pcdisk.gz - 664 sys sys 1039764191 695837
@@ -3623,17 +3623,15 @@ sys/lib/dist/pc/inst/is9660 - 775 sys sys 1018469719 307
 sys/lib/dist/pc/inst/isext2 - 775 sys sys 1018469719 204
 sys/lib/dist/pc/inst/isfat - 775 sys sys 1018469719 457
 sys/lib/dist/pc/inst/isfossil - 775 sys sys 1063856189 385
-sys/lib/dist/pc/inst/iskfs - 775 sys sys 1018469719 183
 sys/lib/dist/pc/inst/isventi - 775 sys sys 1112361038 227
 sys/lib/dist/pc/inst/isventiarenas - 775 sys sys 1112361038 258
 sys/lib/dist/pc/inst/isventiisect - 775 sys sys 1112361038 256
 sys/lib/dist/pc/inst/main - 775 sys sys 1112361039 1952
 sys/lib/dist/pc/inst/mainloop - 775 sys sys 1019058715 532
 sys/lib/dist/pc/inst/mkini.awk - 664 sys sys 1019917495 1163
-sys/lib/dist/pc/inst/mountdist - 775 sys sys 1112360993 5129
+sys/lib/dist/pc/inst/mountdist - 775 sys sys 1112535194 4884
 sys/lib/dist/pc/inst/mountfossil - 775 sys sys 1112361039 2511
 sys/lib/dist/pc/inst/mountfs - 775 sys sys 1112361039 190
-sys/lib/dist/pc/inst/mountkfs - 775 sys sys 1063856188 2481
 sys/lib/dist/pc/inst/moveoldfs - 775 sys sys 1089300756 1347
 sys/lib/dist/pc/inst/partdisk - 775 sys sys 1112361039 1828
 sys/lib/dist/pc/inst/prepdisk - 775 sys sys 1111771992 1462
@@ -3652,7 +3650,7 @@ sys/lib/dist/pc/plan9.ini - 664 sys sys 1020361168 512
 sys/lib/dist/pc/plan9.ini.blank - 664 sys sys 1018469720 512
 sys/lib/dist/pc/plan9.ini.cd - 664 sys sys 1092148201 357
 sys/lib/dist/pc/plan9.ini.vmware - 664 sys sys 1045500078 168
-sys/lib/dist/pc/proto - 664 sys sys 1112361036 4249
+sys/lib/dist/pc/proto - 664 sys sys 1112535197 4250
 sys/lib/dist/pc/sub - 20000000775 sys sys 1018640631 0
 sys/lib/dist/pc/sub/a: - 775 sys sys 1018469726 481
 sys/lib/dist/pc/sub/bind - 775 sys sys 1018469726 207
@@ -5026,7 +5024,7 @@ sys/man/4/ext2srv - 664 sys sys 1055692986 2409
 sys/man/4/factotum - 664 sys sys 1107836362 14708
 sys/man/4/fossil - 664 sys sys 1112368411 9546
 sys/man/4/fs - 664 sys sys 1019058716 3387
-sys/man/4/ftpfs - 664 sys sys 1048285446 4327
+sys/man/4/ftpfs - 664 sys sys 1112563349 4410
 sys/man/4/import - 664 sys sys 1034195346 2204
 sys/man/4/iostats - 664 sys sys 1105574383 1621
 sys/man/4/keyfs - 664 sys sys 1017251244 5003
@@ -9456,10 +9454,10 @@ sys/src/cmd/ip/dhcpd/testping.c - 664 sys sys 950389141 352
 sys/src/cmd/ip/ftpd.c - 664 sys sys 1101155057 33054
 sys/src/cmd/ip/ftpfs - 20000000775 sys sys 1014925642 0
 sys/src/cmd/ip/ftpfs/file.c - 664 sys sys 1014925642 4208
-sys/src/cmd/ip/ftpfs/ftpfs.c - 664 sys sys 1109607513 13700
+sys/src/cmd/ip/ftpfs/ftpfs.c - 664 sys sys 1112563388 13760
 sys/src/cmd/ip/ftpfs/ftpfs.h - 664 sys sys 1091904423 2353
 sys/src/cmd/ip/ftpfs/mkfile - 664 sys sys 1048312050 173
-sys/src/cmd/ip/ftpfs/proto.c - 664 sys sys 1103565527 29470
+sys/src/cmd/ip/ftpfs/proto.c - 664 sys sys 1112563713 30346
 sys/src/cmd/ip/glob.c - 664 sys sys 1101155057 3290
 sys/src/cmd/ip/glob.h - 664 sys sys 1101155058 308
 sys/src/cmd/ip/gping.c - 664 sys sys 1015013112 20476
@@ -10291,11 +10289,11 @@ sys/src/cmd/sam/mkfile - 664 sys sys 1111181613 429
 sys/src/cmd/sam/moveto.c - 664 sys sys 944961628 2698
 sys/src/cmd/sam/multi.c - 664 sys sys 944961628 1846
 sys/src/cmd/sam/parse.h - 664 sys sys 944961629 1910
-sys/src/cmd/sam/plan9.c - 664 sys sys 1108939612 2860
+sys/src/cmd/sam/plan9.c - 664 sys sys 1112535044 2303
 sys/src/cmd/sam/rasp.c - 664 sys sys 950104640 5618
 sys/src/cmd/sam/regexp.c - 664 sys sys 944961629 15390
 sys/src/cmd/sam/sam.c - 664 sys sys 1111181614 12063
-sys/src/cmd/sam/sam.h - 664 sys sys 1108939611 9584
+sys/src/cmd/sam/sam.h - 664 sys sys 1112535045 9567
 sys/src/cmd/sam/shell.c - 664 sys sys 1108939613 3149
 sys/src/cmd/sam/string.c - 664 sys sys 944961629 2766
 sys/src/cmd/sam/sys.c - 664 sys sys 1014926939 745
@@ -12484,9 +12482,5 @@ 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/9loaddebug - 775 sys sys 1112501902 310058
-386/9loadlitedebug - 775 sys sys 1112501902 199029
-386/9pc - 775 sys sys 1112501906 1833326
-386/9pccpu - 775 sys sys 1112501910 1487876
-386/9pcdisk - 775 sys sys 1112501914 2039028
-386/9pcf - 775 sys sys 1112501918 2381860
+386/bin/ftpfs - 775 sys sys 1112583961 270843
+386/bin/sam - 775 sys sys 1112583961 158368

+ 9 - 11
dist/replica/plan9.db

@@ -243,7 +243,7 @@
 386/bin/fs/v10fs - 775 sys sys 1109650120 94571
 386/bin/fs/v6fs - 775 sys sys 1109650121 94489
 386/bin/fs/zipfs - 775 sys sys 1109650121 109088
-386/bin/ftpfs - 775 sys sys 1109650121 154523
+386/bin/ftpfs - 775 sys sys 1112583961 270843
 386/bin/games - 20000000775 sys sys 1096298711 0
 386/bin/games/catclock - 775 sys sys 1110513961 140798
 386/bin/games/juggle - 775 sys sys 1110513961 125201
@@ -382,7 +382,7 @@
 386/bin/rio - 775 sys sys 1111205298 309212
 386/bin/rm - 775 sys sys 1104122051 61333
 386/bin/rx - 775 sys sys 1104122051 82055
-386/bin/sam - 775 sys sys 1111205299 158534
+386/bin/sam - 775 sys sys 1112583961 158368
 386/bin/scat - 775 sys sys 1106799180 283256
 386/bin/scp - 775 sys sys 1104122053 151911
 386/bin/scuzz - 775 sys sys 1104122053 111613
@@ -3623,17 +3623,15 @@ sys/lib/dist/pc/inst/is9660 - 775 sys sys 1018469719 307
 sys/lib/dist/pc/inst/isext2 - 775 sys sys 1018469719 204
 sys/lib/dist/pc/inst/isfat - 775 sys sys 1018469719 457
 sys/lib/dist/pc/inst/isfossil - 775 sys sys 1063856189 385
-sys/lib/dist/pc/inst/iskfs - 775 sys sys 1018469719 183
 sys/lib/dist/pc/inst/isventi - 775 sys sys 1112361038 227
 sys/lib/dist/pc/inst/isventiarenas - 775 sys sys 1112361038 258
 sys/lib/dist/pc/inst/isventiisect - 775 sys sys 1112361038 256
 sys/lib/dist/pc/inst/main - 775 sys sys 1112361039 1952
 sys/lib/dist/pc/inst/mainloop - 775 sys sys 1019058715 532
 sys/lib/dist/pc/inst/mkini.awk - 664 sys sys 1019917495 1163
-sys/lib/dist/pc/inst/mountdist - 775 sys sys 1112360993 5129
+sys/lib/dist/pc/inst/mountdist - 775 sys sys 1112535194 4884
 sys/lib/dist/pc/inst/mountfossil - 775 sys sys 1112361039 2511
 sys/lib/dist/pc/inst/mountfs - 775 sys sys 1112361039 190
-sys/lib/dist/pc/inst/mountkfs - 775 sys sys 1063856188 2481
 sys/lib/dist/pc/inst/moveoldfs - 775 sys sys 1089300756 1347
 sys/lib/dist/pc/inst/partdisk - 775 sys sys 1112361039 1828
 sys/lib/dist/pc/inst/prepdisk - 775 sys sys 1111771992 1462
@@ -3652,7 +3650,7 @@ sys/lib/dist/pc/plan9.ini - 664 sys sys 1020361168 512
 sys/lib/dist/pc/plan9.ini.blank - 664 sys sys 1018469720 512
 sys/lib/dist/pc/plan9.ini.cd - 664 sys sys 1092148201 357
 sys/lib/dist/pc/plan9.ini.vmware - 664 sys sys 1045500078 168
-sys/lib/dist/pc/proto - 664 sys sys 1112361036 4249
+sys/lib/dist/pc/proto - 664 sys sys 1112535197 4250
 sys/lib/dist/pc/sub - 20000000775 sys sys 1018640631 0
 sys/lib/dist/pc/sub/a: - 775 sys sys 1018469726 481
 sys/lib/dist/pc/sub/bind - 775 sys sys 1018469726 207
@@ -5026,7 +5024,7 @@ sys/man/4/ext2srv - 664 sys sys 1055692986 2409
 sys/man/4/factotum - 664 sys sys 1107836362 14708
 sys/man/4/fossil - 664 sys sys 1112368411 9546
 sys/man/4/fs - 664 sys sys 1019058716 3387
-sys/man/4/ftpfs - 664 sys sys 1048285446 4327
+sys/man/4/ftpfs - 664 sys sys 1112563349 4410
 sys/man/4/import - 664 sys sys 1034195346 2204
 sys/man/4/iostats - 664 sys sys 1105574383 1621
 sys/man/4/keyfs - 664 sys sys 1017251244 5003
@@ -9456,10 +9454,10 @@ sys/src/cmd/ip/dhcpd/testping.c - 664 sys sys 950389141 352
 sys/src/cmd/ip/ftpd.c - 664 sys sys 1101155057 33054
 sys/src/cmd/ip/ftpfs - 20000000775 sys sys 1014925642 0
 sys/src/cmd/ip/ftpfs/file.c - 664 sys sys 1014925642 4208
-sys/src/cmd/ip/ftpfs/ftpfs.c - 664 sys sys 1109607513 13700
+sys/src/cmd/ip/ftpfs/ftpfs.c - 664 sys sys 1112563388 13760
 sys/src/cmd/ip/ftpfs/ftpfs.h - 664 sys sys 1091904423 2353
 sys/src/cmd/ip/ftpfs/mkfile - 664 sys sys 1048312050 173
-sys/src/cmd/ip/ftpfs/proto.c - 664 sys sys 1103565527 29470
+sys/src/cmd/ip/ftpfs/proto.c - 664 sys sys 1112563713 30346
 sys/src/cmd/ip/glob.c - 664 sys sys 1101155057 3290
 sys/src/cmd/ip/glob.h - 664 sys sys 1101155058 308
 sys/src/cmd/ip/gping.c - 664 sys sys 1015013112 20476
@@ -10291,11 +10289,11 @@ sys/src/cmd/sam/mkfile - 664 sys sys 1111181613 429
 sys/src/cmd/sam/moveto.c - 664 sys sys 944961628 2698
 sys/src/cmd/sam/multi.c - 664 sys sys 944961628 1846
 sys/src/cmd/sam/parse.h - 664 sys sys 944961629 1910
-sys/src/cmd/sam/plan9.c - 664 sys sys 1108939612 2860
+sys/src/cmd/sam/plan9.c - 664 sys sys 1112535044 2303
 sys/src/cmd/sam/rasp.c - 664 sys sys 950104640 5618
 sys/src/cmd/sam/regexp.c - 664 sys sys 944961629 15390
 sys/src/cmd/sam/sam.c - 664 sys sys 1111181614 12063
-sys/src/cmd/sam/sam.h - 664 sys sys 1108939611 9584
+sys/src/cmd/sam/sam.h - 664 sys sys 1112535045 9567
 sys/src/cmd/sam/shell.c - 664 sys sys 1108939613 3149
 sys/src/cmd/sam/string.c - 664 sys sys 944961629 2766
 sys/src/cmd/sam/sys.c - 664 sys sys 1014926939 745

+ 11 - 0
dist/replica/plan9.log

@@ -14072,3 +14072,14 @@
 1112502665 3 c 386/9pccpu - 775 sys sys 1112501910 1487876
 1112502665 4 c 386/9pcdisk - 775 sys sys 1112501914 2039028
 1112502665 5 c 386/9pcf - 775 sys sys 1112501918 2381860
+1112535072 0 c sys/src/cmd/sam/plan9.c - 664 sys sys 1112535044 2303
+1112535072 1 c sys/src/cmd/sam/sam.h - 664 sys sys 1112535045 9567
+1112536872 0 c sys/lib/dist/pc/inst/mountdist - 775 sys sys 1112535194 4884
+1112536872 1 c sys/lib/dist/pc/proto - 664 sys sys 1112535197 4250
+1112536872 2 d sys/lib/dist/pc/inst/mountkfs - 775 sys sys 1063856188 0
+1112536872 3 d sys/lib/dist/pc/inst/iskfs - 775 sys sys 1018469719 0
+1112563877 0 c sys/man/4/ftpfs - 664 sys sys 1112563349 4410
+1112563877 1 c sys/src/cmd/ip/ftpfs/ftpfs.c - 664 sys sys 1112563388 13760
+1112563877 2 c sys/src/cmd/ip/ftpfs/proto.c - 664 sys sys 1112563713 30346
+1112585482 0 c 386/bin/ftpfs - 775 sys sys 1112583961 270843
+1112585482 1 c 386/bin/sam - 775 sys sys 1112583961 158368

+ 0 - 9
sys/lib/dist/pc/inst/iskfs

@@ -1,9 +0,0 @@
-#!/bin/rc
-
-if(! ~ $#* 1) {
-	echo 'usage: iskfs /dev/sdC0/part' >[1=2]
-	exit usage
-}
-
-cmp -s <{dd -if $1 -bs 16 -count 1 -skip 16 >[2]/dev/null} <{echo 'kfs wren device'}
-exit $status

+ 3 - 12
sys/lib/dist/pc/inst/mountdist

@@ -67,7 +67,6 @@ case checkready
 	}
 		
 case go
-	kfs=()
 	fat=()
 	ext2=()
 	x9660=()
@@ -81,15 +80,13 @@ case go
 		n=`{echo $i | sed 's;/;_;g'}
 		if(! test -f /tmp/localpart.$n)
 			dd -if $i -bs 2048 -count 32 -of /tmp/localpart.$n >[2]/dev/null
-		if(iskfs /tmp/localpart.$n)
-			kfs=($kfs $i)
 		if(isfat /tmp/localpart.$n)
 			fat=($fat $i)
-	#	if(isext2 /tmp/localpart.$n)
-	#		ext2=($ext2 $i)
+		if(isext2 /tmp/localpart.$n)
+			ext2=($ext2 $i)
 		if(is9660 /tmp/localpart.$n)
 			x9660=($x9660 $i)
-		if(isfossil /tmp/localpart.$n)
+		if(isfossil $i)
 			fossil=($fossil $i)
 		echo
 	}
@@ -99,8 +96,6 @@ case go
 	echo
 	for(i in $parts){
 		switch($i){
-		case $kfs
-			echo	'	'^$i^' (plan9 kfs)'
 		case $fat
 			echo 	'	'^$i^' (microsoft fat)'
 		case $ext2
@@ -123,10 +118,6 @@ case go
 		switch($disk){
 		case $fs
 			mountmedia=(bind /n/newfs /n/distmedia)
-		case $kfs
-			kname=`{kfsname $disk}
-			srvmedia=(disk/kfs -f $disk -n $kname)
-			mountmedia=(mount /srv/kfs.$kname /n/distmedia)
 		case $fat
 			srvmedia=(dossrv)
 			mountmedia=(mount /srv/dos /n/distmedia $disk)

+ 0 - 96
sys/lib/dist/pc/inst/mountkfs

@@ -1,96 +0,0 @@
-#!/bin/rc
-
-# desc: choose and mount file system partition
-
-switch($1){
-case go
-	echo 'The following partitions named fs* were found.'
-	echo
-	echo 'Please choose one to use as the installation file system'
-	echo 'for your Plan 9 installation.'
-	echo
-	files=(`{ls /dev/sd*/fs* /dev/fs/fs* >[2]/dev/null})
-	ls -l $files
-	echo
-	if(~ $#files 1)
-		default=(-d $files)
-	if not
-		default=()
-	prompt $default 'Kfs partition to use for Plan 9 installation' $files
-	fs=$rd
-	export fs
-
-	kname=`{kfsname $fs}
-	doinit=(-rb8192)
-	if(iskfs $fs){
-		echo 'A Plan 9 kfs file system already exists on '^$fs^'.'
-		echo 'Do you want to wipe it clean?'
-		echo
-		prompt -d keep 'Wipe the Plan 9 file system clean' keep wipe
-		switch($rd){
-		case keep
-			doinit=()
-		}
-	}
-
-	log Starting kfs file server for $fs
-	unmount /n/kfs >[2]/dev/null
-	disk/kfscmd -n $kname halt >[2]/dev/null
-	rm -f /srv/kfs.$kname /srv/kfs.$kname.cmd
-	logprog disk/kfs -n $kname $doinit -f $fs
-	disk/kfscmd -n $kname allow >>[2]/srv/log
-	
-	log Mounting kfs file server for $fs
-	if(! logprog mount -c /srv/kfs.$kname /n/kfs){
-		echo 'mounting kfs: '^$status
-		exit oops
-	}
-
-	if(test -d /n/kfs/wrap){
-		moveoldfs go
-		if(test -d /n/kfs/wrap)
-			exit cannotsmashold
-	}
-	if(! test -f /n/kfs/dist/replica/client/plan9.log){
-		disk/kfscmd -n $kname 'create /dist sys sys 775 d'
-		disk/kfscmd -n $kname 'create /dist/replica sys sys 775 d'
-		disk/kfscmd -n $kname 'create /dist/replica/ndist sys sys 775'
-		disk/kfscmd -n $kname 'create /dist/replica/client sys sys 775 d'
-		disk/kfscmd -n $kname 'create /dist/replica/client/plan9.db sys sys 664'
-		disk/kfscmd -n $kname 'create /dist/replica/client/plan9.log sys sys 664 a'
-	}
-
-case checkready checkdone
-	if(! test -f /dev/sd*/fs*){
-		mountfs=notdone
-		export mountfs
-		exit
-	}
-	if(! ~ $#fs 1 || ! test -f $fs){
-		mountfs=ready
-		export mountfs
-		exit
-	}
-	kname=`{kfsname $fs}
-	if(! test -f /srv/kfs.$kname){
-		disk/kfscmd -n $kname halt >[2]/dev/null
-		rm -f /srv/kfs.$kname /srv/kfs.$kname.cmd
-		logprog disk/kfs -n $kname -f $fs
-		disk/kfscmd -n $kname allow >>[2]/srv/log
-	}
-	if(test -f /srv/kfs.$kname && ! test -f /n/kfs/dist/replica/client/plan9.log){
-		log Mounting kfs file server for $fs
-		if(! logprog mount -c /srv/kfs.$kname /n/kfs)
-			echo 'mounting kfs: '^$status
-		disk/kfscmd -n $kname allow >>[2]/srv/log
-	}
-	if(test -f /srv/kfs.$kname && test -f /n/kfs/dist/replica/client/plan9.log){
-		mountfs=done
-		export mountfs
-		exit
-	}
-	mountfs=ready
-	export mountfs
-	exit
-}
-

+ 3 - 3
sys/lib/dist/pc/proto

@@ -23,8 +23,8 @@
 		disk	d555 sys sys
 			fdisk	555 sys sys
 			format	555 sys sys
-			kfs	555 sys sys
-			kfscmd	555 sys sys
+#			kfs	555 sys sys
+#			kfscmd	555 sys sys
 			mbr	555 sys sys
 			prep	555 sys sys
 		fossil	d555 sys sys
@@ -73,7 +73,7 @@
 		ed	555 sys sys
 # if cpu goes, exportfs could go
 #		exportfs	555 sys sys
-#		ext2srv	555 sys sys
+		ext2srv	555 sys sys
 		fcp		555	sys	sys
 		grep	555 sys sys
 		hget	555 sys sys

+ 7 - 1
sys/man/4/ftpfs

@@ -4,7 +4,7 @@ ftpfs  \- file transfer protocol (FTP) file system
 .SH SYNOPSIS
 .B ftpfs
 [
-.B -/dqn
+.B -/dqnt
 ]
 [
 .B -m
@@ -94,6 +94,12 @@ option causes ftp to send a NOP command every 15 seconds to attempt
 to keep the connection open.  This command can cause some servers to
 hangup, so you'll have to feel your way.
 .PP
+The
+.B -t
+option causes
+.I ftpfs
+to negotiate TLS encryption with the server.
+.PP
 To terminate the connection,
 .B unmount
 (see

+ 6 - 1
sys/src/cmd/ip/ftpfs/ftpfs.c

@@ -26,6 +26,7 @@ Fcall	rhdr;
 Fcall	thdr;
 int	debug;
 int	usenlst;
+int	usetls;
 char	*ext;
 int	quiet;
 int	kapid = -1;
@@ -87,7 +88,7 @@ char *keyspec = "";
 void
 usage(void)
 {
-	fprint(2, "ftpfs [-/dqn] [-a passwd] [-m mountpoint] [-e ext] [-o os] [-r root] [net!]address\n");
+	fprint(2, "ftpfs [-/dqnt] [-a passwd] [-m mountpoint] [-e ext] [-o os] [-r root] [net!]address\n");
 	exits("usage");
 }
 
@@ -103,6 +104,7 @@ main(int argc, char *argv[])
 
 	defos = Unix;
 	user = strdup(getuser());
+	usetls = 0;
 
 	ARGBEGIN {
 	case '/':
@@ -129,6 +131,9 @@ main(int argc, char *argv[])
 	case 'e':
 		ext = ARGF();
 		break;
+	case 't':
+		usetls = 1;
+		break;
 	case 'o':
 		cp = ARGF();
 		for(o = oslist; o->os != Unknown; o++)

+ 45 - 0
sys/src/cmd/ip/ftpfs/proto.c

@@ -2,6 +2,8 @@
 #include <libc.h>
 #include <bio.h>
 #include <ip.h>
+#include <mp.h>
+#include <libsec.h>
 #include <auth.h>
 #include <fcall.h>
 #include <ctype.h>
@@ -36,6 +38,7 @@ String	*remrootpath;	/* path on remote side to remote root */
 char	*user;
 int	nopassive;
 long	lastsend;
+extern int usetls;
 
 static void	sendrequest(char*, char*);
 static int	getreply(Biobuf*, char*, int, int);
@@ -60,6 +63,8 @@ hello(char *dest)
 {
 	char *p;
 	char dir[Maxpath];
+	int ts;
+	TLSconn conn;
 
 	Binit(&stdin, 0, OREAD);	/* init for later use */
 
@@ -68,6 +73,7 @@ hello(char *dest)
 		fprint(2, "can't dial %s: %r\n", dest);
 		exits("dialing");
 	}
+		
 	Binit(&ctlin, ctlfd, OREAD);
 
 	/* remember network for the data connections */
@@ -82,6 +88,26 @@ hello(char *dest)
 		fatal("bad hello");
 	if(strstr(msg, "Plan 9"))
 		os = Plan9;
+
+	if(usetls){
+		sendrequest("AUTH", "TLS");
+		if(getreply(&ctlin, msg, sizeof(msg), 1) != Success)
+			fatal("bad auth tls");
+
+		ctlfd = tlsClient(ctlfd, &conn);
+		if(ctlfd < 0)
+			fatal("starting tls: %r");
+		free(conn.cert);
+
+		Binit(&ctlin, ctlfd, OREAD);
+
+		sendrequest("PBSZ", "0");
+		if(getreply(&ctlin, msg, sizeof(msg), 1) != Success)
+			fatal("bad pbsz 0");
+		sendrequest("PROT", "P");
+		if(getreply(&ctlin, msg, sizeof(msg), 1) != Success)
+			fatal("bad prot p");
+	}
 }
 
 /*
@@ -1196,6 +1222,7 @@ active(int mode, Biobuf **bpp, char *cmda, char *cmdb)
 	int cfd, dfd, rv;
 	char newdir[Maxpath];
 	char datafile[Maxpath + 6];
+	TLSconn conn;
 
 	if(port() < 0)
 		return TempFail;
@@ -1220,6 +1247,15 @@ active(int mode, Biobuf **bpp, char *cmda, char *cmdb)
 	close(cfd);
 	if(dfd < 0)
 		fatal("opening data connection");
+
+	if(usetls){
+		memset(&conn, 0, sizeof(conn));
+		dfd = tlsClient(dfd, &conn);
+		if(dfd < 0)
+			fatal("starting tls: %r");
+		free(conn.cert);
+	}
+
 	Binit(&dbuf, dfd, mode);
 	*bpp = &dbuf;
 	return Extra;
@@ -1236,6 +1272,7 @@ passive(int mode, Biobuf **bpp, char *cmda, char *cmdb)
 	char *f[6];
 	char *p;
 	int x, fd;
+	TLSconn conn;
 
 	if(nopassive)
 		return Impossible;
@@ -1285,7 +1322,15 @@ passive(int mode, Biobuf **bpp, char *cmda, char *cmdb)
 		return x;
 	}
 
+	if(usetls){
+		memset(&conn, 0, sizeof(conn));
+		fd = tlsClient(fd, &conn);
+		if(fd < 0)
+			fatal("starting tls: %r");
+		free(conn.cert);
+	}
 	Binit(&dbuf, fd, mode);
+
 	*bpp = &dbuf;
 	return Extra;
 }

+ 0 - 33
sys/src/cmd/sam/plan9.c

@@ -49,21 +49,6 @@ print_s(char *s, String *a)
 	dprint("?warning: %s `%.*S'\n", s, a->n, a->s);
 }
 
-char*
-getuser(void)
-{
-	static char user[64];
-	int fd;
-
-	if(user[0] == 0){
-		fd = open("/dev/user", 0);
-		if(fd<0 || read(fd, user, sizeof user-1)<=0)
-			strcpy(user, "none");
-		close(fd);
-	}
-	return user;
-}
-
 int
 statfile(char *name, ulong *dev, uvlong *id, long *time, long *length, long *appendonly)
 {
@@ -121,24 +106,6 @@ notifyf(void *a, char *s)
 	noted(NDFLT);
 }
 
-int
-newtmp(int num)
-{
-	int i, fd;
-	static char	tempnam[30];
-
-	i = getpid();
-	do
-		snprint(tempnam, sizeof tempnam, "%s/%d%.4s%dsam", TMPDIR, num, getuser(), i++);
-	while(access(tempnam, 0) == 0);
-	fd = create(tempnam, ORDWR|OCEXEC|ORCLOSE, 0000);
-	if(fd < 0){
-		remove(tempnam);
-		fd = create(tempnam, ORDWR|OCEXEC|ORCLOSE, 0000);
-	}
-	return fd;
-}
-
 char*
 waitfor(int pid)
 {

+ 0 - 1
sys/src/cmd/sam/sam.h

@@ -273,7 +273,6 @@ void	move(File*, Address);
 void	moveto(File*, Range);
 File	*newfile(void);
 void	nextmatch(File*, String*, Posn, int);
-int	newtmp(int);
 void	notifyf(void*, char*);
 void	panic(char*);
 void	printposn(File*, int);