Home » Archimedes archive » Acorn User » AU 1997-Xmas B.adf » PD » NetPlex/!Netplex/SocketFS/!Readme
NetPlex/!Netplex/SocketFS/!Readme
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
| Tape/disk: | Home » Archimedes archive » Acorn User » AU 1997-Xmas B.adf » PD |
| Filename: | NetPlex/!Netplex/SocketFS/!Readme |
| Read OK: | ✔ |
| File size: | 1B35 bytes |
| Load address: | 0000 |
| Exec address: | 0000 |
File contents
SocketFS Readme
===============
This is the 'Readme' for the first ALPHA release of socketfs, a socket
filing system for RISC-OS.
As it is the first ALPHA release, socketFS undoubtely has many bugs,
please feel free to e-mail with details of any (or all) bugs you find,
although I would ask you to first check see if the Bugs is alreadly
known by checking the distrubutions BUGS and FAQ files.
I would also ask you to e-mail me any and let me know if you find it
useful.
What does it do then?
---------------------
Quite simply socketfs allows you to open a BSD socket as if it were a
file. SocketFS allows multiple type of addressing to be using and you
can easily add you own function to map filenames to sockets, although at
this stage new functions have to be assembled in, the underlying
mechanism is extensiable and if enough interest is shown, a
SWI SocketFS_RegisterAddressType or simliar could be implemented.
SocketFS uses the specialfield to decide which mapping to use, currently
the only mapping supported is 'IPv4'. This is probaly a bad name for it
as the mapping is really based on gethostbyname(). This is also the
default specialfield. Using any other special field will result in a
file not found or similiar.
Currently any socket which you can open with a Internet module (eg. Acorn
Internet or FreeNet) can be opened with socketfs.
How do I use it?
----------------
Like any other streaming filesystem. Open a file and write to it, the
only clever bit you need to know about is the filename.
Lets examine a possible filename field by field. The general format is
socketFS#map::proto.$.remote_host\rport.local_host\lport
map - Defaults to 'IPv4', and can be either 'IPv4' or 's2fd'.
T
proto - Generally this will be tcp, although you might be able to
get some use out of udp. There are others but these are
the only ones the Internet modules support (AFAIK anyway)
ergo the only ones I support. Be aware if you try udp or
other protocol sockets are created as SOCK_STREAM, which
might cause you problems.
The 's2fd' mapping currently ignores thsi field, although may
use it for flags in a later module version.
remote_host - This is the machine you want to connect to. Specify the
host name the same way as you would for any usual
internet program but replace the '.'s with '/' in the
reverse manner to risc-os usually does for UNIX
filenames. The means www.demon.co.uk becomes
www/demon/co/uk . Note that '/' aren't required if the
hostname has no dots so just 'localhost will work.
In 's2fd' this is a socket handle and a new filehandle
is then return bound to this socket.
rport - This is the port on the remote machine you want to
connect to. You can specify it by service name or
number. In the example above you would specify '80' or
'www'. (Assuming you where try to download web pages
anyway.)
local_host - This is the first optional part, and specifies which
interface on your local machine you wish to initiate the
connection from. It uses the same format to remote_host.
lport - The is another optional part, an specifies which port
the socket uses on your local machine. It uses the same
format as rport. This and the previous part are passed
to the internet module using bind.
This means if you want to save a web page off, something like this
could do the trick. (IN Basic!)
File%=OPENOUT("ADFS::4.$.webpage")
Web%=OPENUP("socketfs::tcp.$.www/demon/co/uk\www")
A$ = "GET /index.html"
BPUT#Web%,A$
BPUT#Web%,10 : REM Write end of line...
WHILE NOT EOF#Web%
BPUT#File%,BGET#Web%
ENDWHILE
CLOSE#Web% :REM Release this at end of tcp stream...
CLOSE#File%
OSCLI("settype adfs::4.$.webpage faf"):REM faf=html
Ok, So what use is it
---------------------
Well it makes internet sockets slightly easier to use, and allow you
to treat them like files. Specifically the UnixLib people might find it
useful to allow file operations on sockets as you can in Unix. Although
at the moment listen(), accept() are slightly difficult.
Is there anything it can't do that I should now about
-----------------------------------------------------
I haven't spend anytime working on the implentation of whole file
operations, so *save may or may not work. NO Guarantees.
Also socketfs: does not support renaming as IP essentialy doesn't
allow streams to move between sockets (or interfaces). I might use this
file system semantics for accept() later though.
Finally it has one other feature, the current version of the module uses
blocking sockets, although this means it will wait for data on a socket
withouy returning a error if there is none waiting. One of two things
will then happen, first it will hang the whole machine, or if you're running
freenet or Acorn Internet 5.00 or higher just that taskwindow.
Freenet still has the disadvantage that fileswitch/taskwindow seem to
block other FS calls to thesame handle while the first is waiting. This
is fine for simplex and half-duplex protocols but if you need full-duplex
across Taskwindows, your could recompile the module with -DFIOMODE=FIONBIO
which will force the module to use non-blocking sockets as default.
Final Comments
--------------
It would be nice to add ioctl, and socket_select fuctionality to the
filing system, but I haven't come up with a nice way of doing those
yet. While my own SWI interace would work - bear in mind that socketfs uses
fileswitch to do the SocketHandle<-->FileHandle mapping, so socketfs can't
do this itself as it knows nothing about fileswitch's handles.
I suppose it would be possible to attribute and filetype, assigning different
meanings to these than is usual, but it's not a nice solution.
I'll take a moment here to remind you that socketFS is
distrubuted under the conditions outlined in the accompanying file called
'COPYING', currently this is version 2 of the GPL, however I find GPLs virus
like ablities a little harsh for my tastes, so you'll find me relatively open
on allowing limited distributions under other licenses.
I would also ask you to let me know your experiences, with the software
by e-mail if possible.
I will also welcome bug reports and patches (context diffs please), and
feature requests. I can be reached at <rgammans@compsurg.demon.co.uk>,
and could I please ask if you do e-mail me, can you mention socketfs in
the subject line.
Roger Gammans
18 Aug 1997
00000000 53 6f 63 6b 65 74 46 53 20 52 65 61 64 6d 65 0d |SocketFS Readme.|
00000010 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d |.===============|
00000020 0d 0a 0d 0a 0d 0a 54 68 69 73 20 69 73 20 74 68 |......This is th|
00000030 65 20 27 52 65 61 64 6d 65 27 20 66 6f 72 20 74 |e 'Readme' for t|
00000040 68 65 20 66 69 72 73 74 20 41 4c 50 48 41 20 72 |he first ALPHA r|
00000050 65 6c 65 61 73 65 20 6f 66 20 73 6f 63 6b 65 74 |elease of socket|
00000060 66 73 2c 20 61 20 73 6f 63 6b 65 74 0d 0a 66 69 |fs, a socket..fi|
00000070 6c 69 6e 67 20 73 79 73 74 65 6d 20 66 6f 72 20 |ling system for |
00000080 52 49 53 43 2d 4f 53 2e 0d 0a 41 73 20 69 74 20 |RISC-OS...As it |
00000090 69 73 20 74 68 65 20 66 69 72 73 74 20 41 4c 50 |is the first ALP|
000000a0 48 41 20 72 65 6c 65 61 73 65 2c 20 73 6f 63 6b |HA release, sock|
000000b0 65 74 46 53 20 75 6e 64 6f 75 62 74 65 6c 79 20 |etFS undoubtely |
000000c0 68 61 73 20 6d 61 6e 79 20 62 75 67 73 2c 0d 0a |has many bugs,..|
000000d0 70 6c 65 61 73 65 20 66 65 65 6c 20 66 72 65 65 |please feel free|
000000e0 20 74 6f 20 65 2d 6d 61 69 6c 20 77 69 74 68 20 | to e-mail with |
000000f0 64 65 74 61 69 6c 73 20 6f 66 20 61 6e 79 20 28 |details of any (|
00000100 6f 72 20 61 6c 6c 29 20 62 75 67 73 20 79 6f 75 |or all) bugs you|
00000110 20 66 69 6e 64 2c 0d 0a 61 6c 74 68 6f 75 67 68 | find,..although|
00000120 20 49 20 77 6f 75 6c 64 20 61 73 6b 20 79 6f 75 | I would ask you|
00000130 20 74 6f 20 66 69 72 73 74 20 63 68 65 63 6b 20 | to first check |
00000140 73 65 65 20 69 66 20 74 68 65 20 42 75 67 73 20 |see if the Bugs |
00000150 69 73 20 61 6c 72 65 61 64 6c 79 0d 0a 6b 6e 6f |is alreadly..kno|
00000160 77 6e 20 62 79 20 63 68 65 63 6b 69 6e 67 20 74 |wn by checking t|
00000170 68 65 20 64 69 73 74 72 75 62 75 74 69 6f 6e 73 |he distrubutions|
00000180 20 42 55 47 53 20 61 6e 64 20 46 41 51 20 66 69 | BUGS and FAQ fi|
00000190 6c 65 73 2e 0d 0a 49 20 77 6f 75 6c 64 20 61 6c |les...I would al|
000001a0 73 6f 20 61 73 6b 20 79 6f 75 20 74 6f 20 65 2d |so ask you to e-|
000001b0 6d 61 69 6c 20 6d 65 20 61 6e 79 20 61 6e 64 20 |mail me any and |
000001c0 6c 65 74 20 6d 65 20 6b 6e 6f 77 20 69 66 20 79 |let me know if y|
000001d0 6f 75 20 66 69 6e 64 20 69 74 0d 0a 75 73 65 66 |ou find it..usef|
000001e0 75 6c 2e 0d 0a 0d 0a 57 68 61 74 20 64 6f 65 73 |ul.....What does|
000001f0 20 69 74 20 64 6f 20 74 68 65 6e 3f 0d 0a 2d 2d | it do then?..--|
00000200 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------|
00000210 2d 2d 2d 0d 0a 51 75 69 74 65 20 73 69 6d 70 6c |---..Quite simpl|
00000220 79 20 73 6f 63 6b 65 74 66 73 20 61 6c 6c 6f 77 |y socketfs allow|
00000230 73 20 79 6f 75 20 74 6f 20 6f 70 65 6e 20 61 20 |s you to open a |
00000240 42 53 44 20 73 6f 63 6b 65 74 20 61 73 20 69 66 |BSD socket as if|
00000250 20 69 74 20 77 65 72 65 20 61 0d 0a 66 69 6c 65 | it were a..file|
00000260 2e 20 53 6f 63 6b 65 74 46 53 20 61 6c 6c 6f 77 |. SocketFS allow|
00000270 73 20 6d 75 6c 74 69 70 6c 65 20 74 79 70 65 20 |s multiple type |
00000280 6f 66 20 61 64 64 72 65 73 73 69 6e 67 20 74 6f |of addressing to|
00000290 20 62 65 20 75 73 69 6e 67 20 61 6e 64 20 79 6f | be using and yo|
000002a0 75 0d 0a 63 61 6e 20 65 61 73 69 6c 79 20 61 64 |u..can easily ad|
000002b0 64 20 79 6f 75 20 6f 77 6e 20 66 75 6e 63 74 69 |d you own functi|
000002c0 6f 6e 20 74 6f 20 6d 61 70 20 66 69 6c 65 6e 61 |on to map filena|
000002d0 6d 65 73 20 74 6f 20 73 6f 63 6b 65 74 73 2c 20 |mes to sockets, |
000002e0 61 6c 74 68 6f 75 67 68 20 61 74 0d 0a 74 68 69 |although at..thi|
000002f0 73 20 73 74 61 67 65 20 6e 65 77 20 66 75 6e 63 |s stage new func|
00000300 74 69 6f 6e 73 20 68 61 76 65 20 74 6f 20 62 65 |tions have to be|
00000310 20 61 73 73 65 6d 62 6c 65 64 20 69 6e 2c 20 74 | assembled in, t|
00000320 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 0d 0a 6d |he underlying..m|
00000330 65 63 68 61 6e 69 73 6d 20 69 73 20 65 78 74 65 |echanism is exte|
00000340 6e 73 69 61 62 6c 65 20 61 6e 64 20 69 66 20 65 |nsiable and if e|
00000350 6e 6f 75 67 68 20 69 6e 74 65 72 65 73 74 20 69 |nough interest i|
00000360 73 20 73 68 6f 77 6e 2c 20 61 0d 0a 53 57 49 20 |s shown, a..SWI |
00000370 53 6f 63 6b 65 74 46 53 5f 52 65 67 69 73 74 65 |SocketFS_Registe|
00000380 72 41 64 64 72 65 73 73 54 79 70 65 20 6f 72 20 |rAddressType or |
00000390 73 69 6d 6c 69 61 72 20 63 6f 75 6c 64 20 62 65 |simliar could be|
000003a0 20 69 6d 70 6c 65 6d 65 6e 74 65 64 2e 0d 0a 53 | implemented...S|
000003b0 6f 63 6b 65 74 46 53 20 75 73 65 73 20 74 68 65 |ocketFS uses the|
000003c0 20 73 70 65 63 69 61 6c 66 69 65 6c 64 20 74 6f | specialfield to|
000003d0 20 64 65 63 69 64 65 20 77 68 69 63 68 20 6d 61 | decide which ma|
000003e0 70 70 69 6e 67 20 74 6f 20 75 73 65 2c 20 63 75 |pping to use, cu|
000003f0 72 72 65 6e 74 6c 79 0d 0a 74 68 65 20 6f 6e 6c |rrently..the onl|
00000400 79 20 6d 61 70 70 69 6e 67 20 73 75 70 70 6f 72 |y mapping suppor|
00000410 74 65 64 20 69 73 20 27 49 50 76 34 27 2e 20 54 |ted is 'IPv4'. T|
00000420 68 69 73 20 69 73 20 70 72 6f 62 61 6c 79 20 61 |his is probaly a|
00000430 20 62 61 64 20 6e 61 6d 65 20 66 6f 72 20 69 74 | bad name for it|
00000440 0d 0a 61 73 20 74 68 65 20 6d 61 70 70 69 6e 67 |..as the mapping|
00000450 20 69 73 20 72 65 61 6c 6c 79 20 62 61 73 65 64 | is really based|
00000460 20 6f 6e 20 67 65 74 68 6f 73 74 62 79 6e 61 6d | on gethostbynam|
00000470 65 28 29 2e 20 54 68 69 73 20 69 73 20 61 6c 73 |e(). This is als|
00000480 6f 20 74 68 65 0d 0a 64 65 66 61 75 6c 74 20 73 |o the..default s|
00000490 70 65 63 69 61 6c 66 69 65 6c 64 2e 20 55 73 69 |pecialfield. Usi|
000004a0 6e 67 20 61 6e 79 20 6f 74 68 65 72 20 73 70 65 |ng any other spe|
000004b0 63 69 61 6c 20 66 69 65 6c 64 20 77 69 6c 6c 20 |cial field will |
000004c0 72 65 73 75 6c 74 20 69 6e 20 61 0d 0a 66 69 6c |result in a..fil|
000004d0 65 20 6e 6f 74 20 66 6f 75 6e 64 20 6f 72 20 73 |e not found or s|
000004e0 69 6d 69 6c 69 61 72 2e 0d 0a 0d 0a 43 75 72 72 |imiliar.....Curr|
000004f0 65 6e 74 6c 79 20 61 6e 79 20 73 6f 63 6b 65 74 |ently any socket|
00000500 20 77 68 69 63 68 20 79 6f 75 20 63 61 6e 20 6f | which you can o|
00000510 70 65 6e 20 77 69 74 68 20 61 20 49 6e 74 65 72 |pen with a Inter|
00000520 6e 65 74 20 6d 6f 64 75 6c 65 20 28 65 67 2e 20 |net module (eg. |
00000530 41 63 6f 72 6e 0d 0a 49 6e 74 65 72 6e 65 74 20 |Acorn..Internet |
00000540 6f 72 20 46 72 65 65 4e 65 74 29 20 63 61 6e 20 |or FreeNet) can |
00000550 62 65 20 6f 70 65 6e 65 64 20 77 69 74 68 20 73 |be opened with s|
00000560 6f 63 6b 65 74 66 73 2e 0d 0a 0d 0a 48 6f 77 20 |ocketfs.....How |
00000570 64 6f 20 49 20 75 73 65 20 69 74 3f 0d 0a 2d 2d |do I use it?..--|
00000580 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a |--------------..|
00000590 4c 69 6b 65 20 61 6e 79 20 6f 74 68 65 72 20 73 |Like any other s|
000005a0 74 72 65 61 6d 69 6e 67 20 66 69 6c 65 73 79 73 |treaming filesys|
000005b0 74 65 6d 2e 20 4f 70 65 6e 20 61 20 66 69 6c 65 |tem. Open a file|
000005c0 20 61 6e 64 20 77 72 69 74 65 20 74 6f 20 69 74 | and write to it|
000005d0 2c 20 74 68 65 0d 0a 6f 6e 6c 79 20 63 6c 65 76 |, the..only clev|
000005e0 65 72 20 62 69 74 20 79 6f 75 20 6e 65 65 64 20 |er bit you need |
000005f0 74 6f 20 6b 6e 6f 77 20 61 62 6f 75 74 20 69 73 |to know about is|
00000600 20 74 68 65 20 66 69 6c 65 6e 61 6d 65 2e 0d 0a | the filename...|
00000610 4c 65 74 73 20 65 78 61 6d 69 6e 65 20 61 20 70 |Lets examine a p|
00000620 6f 73 73 69 62 6c 65 20 20 66 69 6c 65 6e 61 6d |ossible filenam|
00000630 65 20 66 69 65 6c 64 20 62 79 20 66 69 65 6c 64 |e field by field|
00000640 2e 20 54 68 65 20 67 65 6e 65 72 61 6c 20 66 6f |. The general fo|
00000650 72 6d 61 74 20 69 73 0d 0a 0d 0a 20 20 20 73 6f |rmat is.... so|
00000660 63 6b 65 74 46 53 23 6d 61 70 3a 3a 70 72 6f 74 |cketFS#map::prot|
00000670 6f 2e 24 2e 72 65 6d 6f 74 65 5f 68 6f 73 74 5c |o.$.remote_host\|
00000680 72 70 6f 72 74 2e 6c 6f 63 61 6c 5f 68 6f 73 74 |rport.local_host|
00000690 5c 6c 70 6f 72 74 0d 0a 0d 0a 20 20 6d 61 70 20 |\lport.... map |
000006a0 20 20 20 20 20 20 20 20 2d 20 44 65 66 61 75 6c | - Defaul|
000006b0 74 73 20 74 6f 20 27 49 50 76 34 27 2c 20 61 6e |ts to 'IPv4', an|
000006c0 64 20 63 61 6e 20 62 65 20 65 69 74 68 65 72 20 |d can be either |
000006d0 27 49 50 76 34 27 20 6f 72 20 27 73 32 66 64 27 |'IPv4' or 's2fd'|
000006e0 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 |... |
000006f0 20 20 20 54 0d 0a 0d 0a 20 20 70 72 6f 74 6f 20 | T.... proto |
00000700 20 20 20 20 20 20 2d 20 47 65 6e 65 72 61 6c 6c | - Generall|
00000710 79 20 74 68 69 73 20 77 69 6c 6c 20 62 65 20 74 |y this will be t|
00000720 63 70 2c 20 61 6c 74 68 6f 75 67 68 20 79 6f 75 |cp, although you|
00000730 20 6d 69 67 68 74 20 62 65 20 61 62 6c 65 20 74 | might be able t|
00000740 6f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 |o.. |
00000750 20 20 20 67 65 74 20 73 6f 6d 65 20 75 73 65 20 | get some use |
00000760 6f 75 74 20 6f 66 20 75 64 70 2e 20 54 68 65 72 |out of udp. Ther|
00000770 65 20 61 72 65 20 6f 74 68 65 72 73 20 62 75 74 |e are others but|
00000780 20 74 68 65 73 65 20 61 72 65 0d 0a 20 20 20 20 | these are.. |
00000790 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 | the |
000007a0 6f 6e 6c 79 20 6f 6e 65 73 20 74 68 65 20 49 6e |only ones the In|
000007b0 74 65 72 6e 65 74 20 6d 6f 64 75 6c 65 73 20 73 |ternet modules s|
000007c0 75 70 70 6f 72 74 20 28 41 46 41 49 4b 20 61 6e |upport (AFAIK an|
000007d0 79 77 61 79 29 0d 0a 20 20 20 20 20 20 20 20 20 |yway).. |
000007e0 20 20 20 20 20 20 20 65 72 67 6f 20 74 68 65 20 | ergo the |
000007f0 6f 6e 6c 79 20 6f 6e 65 73 20 49 20 73 75 70 70 |only ones I supp|
00000800 6f 72 74 2e 20 42 65 20 61 77 61 72 65 20 69 66 |ort. Be aware if|
00000810 20 79 6f 75 20 74 72 79 20 75 64 70 20 6f 72 0d | you try udp or.|
00000820 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. |
00000830 20 6f 74 68 65 72 20 70 72 6f 74 6f 63 6f 6c 20 | other protocol |
00000840 73 6f 63 6b 65 74 73 20 61 72 65 20 63 72 65 61 |sockets are crea|
00000850 74 65 64 20 61 73 20 53 4f 43 4b 5f 53 54 52 45 |ted as SOCK_STRE|
00000860 41 4d 2c 20 77 68 69 63 68 0d 0a 20 20 20 20 20 |AM, which.. |
00000870 20 20 20 20 20 20 20 20 20 20 20 6d 69 67 68 74 | might|
00000880 20 63 61 75 73 65 20 79 6f 75 20 70 72 6f 62 6c | cause you probl|
00000890 65 6d 73 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 |ems... |
000008a0 20 20 20 20 20 20 54 68 65 20 27 73 32 66 64 27 | The 's2fd'|
000008b0 20 6d 61 70 70 69 6e 67 20 63 75 72 72 65 6e 74 | mapping current|
000008c0 6c 79 20 69 67 6e 6f 72 65 73 20 74 68 73 69 20 |ly ignores thsi |
000008d0 66 69 65 6c 64 2c 20 61 6c 74 68 6f 75 67 68 20 |field, although |
000008e0 6d 61 79 0d 0a 20 20 20 20 20 20 20 20 20 20 20 |may.. |
000008f0 20 20 20 20 20 75 73 65 20 69 74 20 66 6f 72 20 | use it for |
00000900 66 6c 61 67 73 20 69 6e 20 61 20 6c 61 74 65 72 |flags in a later|
00000910 20 6d 6f 64 75 6c 65 20 76 65 72 73 69 6f 6e 2e | module version.|
00000920 0d 0a 0d 0a 20 20 72 65 6d 6f 74 65 5f 68 6f 73 |.... remote_hos|
00000930 74 20 2d 20 54 68 69 73 20 69 73 20 74 68 65 20 |t - This is the |
00000940 6d 61 63 68 69 6e 65 20 79 6f 75 20 77 61 6e 74 |machine you want|
00000950 20 74 6f 20 63 6f 6e 6e 65 63 74 20 74 6f 2e 20 | to connect to. |
00000960 53 70 65 63 69 66 79 20 74 68 65 0d 0a 20 20 20 |Specify the.. |
00000970 20 20 20 20 20 20 20 20 20 20 20 20 20 68 6f 73 | hos|
00000980 74 20 6e 61 6d 65 20 74 68 65 20 73 61 6d 65 20 |t name the same |
00000990 77 61 79 20 61 73 20 79 6f 75 20 77 6f 75 6c 64 |way as you would|
000009a0 20 66 6f 72 20 61 6e 79 20 75 73 75 61 6c 0d 0a | for any usual..|
000009b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |
000009c0 69 6e 74 65 72 6e 65 74 20 70 72 6f 67 72 61 6d |internet program|
000009d0 20 62 75 74 20 72 65 70 6c 61 63 65 20 74 68 65 | but replace the|
000009e0 20 27 2e 27 73 20 77 69 74 68 20 27 2f 27 20 69 | '.'s with '/' i|
000009f0 6e 20 74 68 65 0d 0a 20 20 20 20 20 20 20 20 20 |n the.. |
00000a00 20 20 20 20 20 20 20 72 65 76 65 72 73 65 20 6d | reverse m|
00000a10 61 6e 6e 65 72 20 74 6f 20 72 69 73 63 2d 6f 73 |anner to risc-os|
00000a20 20 75 73 75 61 6c 6c 79 20 64 6f 65 73 20 66 6f | usually does fo|
00000a30 72 20 55 4e 49 58 0d 0a 20 20 20 20 20 20 20 20 |r UNIX.. |
00000a40 20 20 20 20 20 20 20 20 66 69 6c 65 6e 61 6d 65 | filename|
00000a50 73 2e 20 54 68 65 20 6d 65 61 6e 73 20 77 77 77 |s. The means www|
00000a60 2e 64 65 6d 6f 6e 2e 63 6f 2e 75 6b 20 62 65 63 |.demon.co.uk bec|
00000a70 6f 6d 65 73 0d 0a 20 20 20 20 20 20 20 20 20 20 |omes.. |
00000a80 20 20 20 20 20 20 77 77 77 2f 64 65 6d 6f 6e 2f | www/demon/|
00000a90 63 6f 2f 75 6b 20 2e 20 4e 6f 74 65 20 74 68 61 |co/uk . Note tha|
00000aa0 74 20 27 2f 27 20 61 72 65 6e 27 74 20 72 65 71 |t '/' aren't req|
00000ab0 75 69 72 65 64 20 69 66 20 74 68 65 0d 0a 20 20 |uired if the.. |
00000ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 6f | ho|
00000ad0 73 74 6e 61 6d 65 20 68 61 73 20 6e 6f 20 64 6f |stname has no do|
00000ae0 74 73 20 73 6f 20 6a 75 73 74 20 27 6c 6f 63 61 |ts so just 'loca|
00000af0 6c 68 6f 73 74 20 77 69 6c 6c 20 77 6f 72 6b 2e |lhost will work.|
00000b00 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |.. |
00000b10 20 20 49 6e 20 27 73 32 66 64 27 20 74 68 69 73 | In 's2fd' this|
00000b20 20 69 73 20 61 20 73 6f 63 6b 65 74 20 68 61 6e | is a socket han|
00000b30 64 6c 65 20 61 6e 64 20 61 20 6e 65 77 20 66 69 |dle and a new fi|
00000b40 6c 65 68 61 6e 64 6c 65 0d 0a 20 20 20 20 20 20 |lehandle.. |
00000b50 20 20 20 20 20 20 20 20 20 20 69 73 20 74 68 65 | is the|
00000b60 6e 20 72 65 74 75 72 6e 20 62 6f 75 6e 64 20 74 |n return bound t|
00000b70 6f 20 74 68 69 73 20 73 6f 63 6b 65 74 2e 0d 0a |o this socket...|
00000b80 0d 0a 20 20 72 70 6f 72 74 20 20 20 20 20 20 20 |.. rport |
00000b90 2d 20 54 68 69 73 20 69 73 20 74 68 65 20 70 6f |- This is the po|
00000ba0 72 74 20 6f 6e 20 74 68 65 20 72 65 6d 6f 74 65 |rt on the remote|
00000bb0 20 6d 61 63 68 69 6e 65 20 79 6f 75 20 77 61 6e | machine you wan|
00000bc0 74 20 74 6f 0d 0a 20 20 20 20 20 20 20 20 20 20 |t to.. |
00000bd0 20 20 20 20 20 20 63 6f 6e 6e 65 63 74 20 74 6f | connect to|
00000be0 2e 20 59 6f 75 20 63 61 6e 20 73 70 65 63 69 66 |. You can specif|
00000bf0 79 20 69 74 20 62 79 20 73 65 72 76 69 63 65 20 |y it by service |
00000c00 6e 61 6d 65 20 6f 72 0d 0a 20 20 20 20 20 20 20 |name or.. |
00000c10 20 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 2e | number.|
00000c20 20 49 6e 20 74 68 65 20 65 78 61 6d 70 6c 65 20 | In the example |
00000c30 61 62 6f 76 65 20 79 6f 75 20 77 6f 75 6c 64 20 |above you would |
00000c40 73 70 65 63 69 66 79 20 27 38 30 27 20 6f 72 0d |specify '80' or.|
00000c50 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. |
00000c60 20 27 77 77 77 27 2e 20 28 41 73 73 75 6d 69 6e | 'www'. (Assumin|
00000c70 67 20 79 6f 75 20 77 68 65 72 65 20 74 72 79 20 |g you where try |
00000c80 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 77 65 62 20 |to download web |
00000c90 70 61 67 65 73 0d 0a 20 20 20 20 20 20 20 20 20 |pages.. |
00000ca0 20 20 20 20 20 20 20 61 6e 79 77 61 79 2e 29 0d | anyway.).|
00000cb0 0a 0d 0a 20 20 6c 6f 63 61 6c 5f 68 6f 73 74 20 |... local_host |
00000cc0 20 2d 20 54 68 69 73 20 69 73 20 74 68 65 20 66 | - This is the f|
00000cd0 69 72 73 74 20 6f 70 74 69 6f 6e 61 6c 20 70 61 |irst optional pa|
00000ce0 72 74 2c 20 61 6e 64 20 73 70 65 63 69 66 69 65 |rt, and specifie|
00000cf0 73 20 77 68 69 63 68 0d 0a 20 20 20 20 20 20 20 |s which.. |
00000d00 20 20 20 20 20 20 20 20 20 69 6e 74 65 72 66 61 | interfa|
00000d10 63 65 20 6f 6e 20 79 6f 75 72 20 6c 6f 63 61 6c |ce on your local|
00000d20 20 6d 61 63 68 69 6e 65 20 79 6f 75 20 77 69 73 | machine you wis|
00000d30 68 20 74 6f 20 69 6e 69 74 69 61 74 65 20 74 68 |h to initiate th|
00000d40 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 |e.. |
00000d50 20 20 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 66 72 | connection fr|
00000d60 6f 6d 2e 20 49 74 20 75 73 65 73 20 74 68 65 20 |om. It uses the |
00000d70 73 61 6d 65 20 66 6f 72 6d 61 74 20 74 6f 20 72 |same format to r|
00000d80 65 6d 6f 74 65 5f 68 6f 73 74 2e 0d 0a 0d 0a 20 |emote_host..... |
00000d90 20 6c 70 6f 72 74 20 20 20 20 20 20 20 2d 20 54 | lport - T|
00000da0 68 65 20 69 73 20 61 6e 6f 74 68 65 72 20 6f 70 |he is another op|
00000db0 74 69 6f 6e 61 6c 20 70 61 72 74 2c 20 61 6e 20 |tional part, an |
00000dc0 73 70 65 63 69 66 69 65 73 20 77 68 69 63 68 20 |specifies which |
00000dd0 70 6f 72 74 0d 0a 20 20 20 20 20 20 20 20 20 20 |port.. |
00000de0 20 20 20 20 20 20 74 68 65 20 73 6f 63 6b 65 74 | the socket|
00000df0 20 75 73 65 73 20 6f 6e 20 79 6f 75 72 20 6c 6f | uses on your lo|
00000e00 63 61 6c 20 6d 61 63 68 69 6e 65 2e 20 49 74 20 |cal machine. It |
00000e10 75 73 65 73 20 74 68 65 20 73 61 6d 65 0d 0a 20 |uses the same.. |
00000e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 | f|
00000e30 6f 72 6d 61 74 20 61 73 20 72 70 6f 72 74 2e 20 |ormat as rport. |
00000e40 54 68 69 73 20 61 6e 64 20 74 68 65 20 70 72 65 |This and the pre|
00000e50 76 69 6f 75 73 20 70 61 72 74 20 61 72 65 20 70 |vious part are p|
00000e60 61 73 73 65 64 0d 0a 20 20 20 20 20 20 20 20 20 |assed.. |
00000e70 20 20 20 20 20 20 20 74 6f 20 74 68 65 20 69 6e | to the in|
00000e80 74 65 72 6e 65 74 20 6d 6f 64 75 6c 65 20 75 73 |ternet module us|
00000e90 69 6e 67 20 62 69 6e 64 2e 0d 0a 0d 0a 0d 0a 20 |ing bind....... |
00000ea0 54 68 69 73 20 6d 65 61 6e 73 20 69 66 20 79 6f |This means if yo|
00000eb0 75 20 77 61 6e 74 20 74 6f 20 73 61 76 65 20 61 |u want to save a|
00000ec0 20 77 65 62 20 70 61 67 65 20 6f 66 66 2c 20 73 | web page off, s|
00000ed0 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20 74 68 |omething like th|
00000ee0 69 73 0d 0a 63 6f 75 6c 64 20 64 6f 20 74 68 65 |is..could do the|
00000ef0 20 74 72 69 63 6b 2e 20 28 49 4e 20 42 61 73 69 | trick. (IN Basi|
00000f00 63 21 29 0d 0a 0d 0a 20 20 20 20 46 69 6c 65 25 |c!).... File%|
00000f10 3d 4f 50 45 4e 4f 55 54 28 22 41 44 46 53 3a 3a |=OPENOUT("ADFS::|
00000f20 34 2e 24 2e 77 65 62 70 61 67 65 22 29 0d 0a 20 |4.$.webpage").. |
00000f30 20 20 20 57 65 62 25 3d 4f 50 45 4e 55 50 28 22 | Web%=OPENUP("|
00000f40 73 6f 63 6b 65 74 66 73 3a 3a 74 63 70 2e 24 2e |socketfs::tcp.$.|
00000f50 77 77 77 2f 64 65 6d 6f 6e 2f 63 6f 2f 75 6b 5c |www/demon/co/uk\|
00000f60 77 77 77 22 29 0d 0a 20 20 20 20 41 24 20 3d 20 |www").. A$ = |
00000f70 22 47 45 54 20 2f 69 6e 64 65 78 2e 68 74 6d 6c |"GET /index.html|
00000f80 22 0d 0a 20 20 20 20 42 50 55 54 23 57 65 62 25 |".. BPUT#Web%|
00000f90 2c 41 24 0d 0a 20 20 20 20 42 50 55 54 23 57 65 |,A$.. BPUT#We|
00000fa0 62 25 2c 31 30 20 3a 20 52 45 4d 20 57 72 69 74 |b%,10 : REM Writ|
00000fb0 65 20 65 6e 64 20 6f 66 20 6c 69 6e 65 2e 2e 2e |e end of line...|
00000fc0 0d 0a 20 20 20 20 57 48 49 4c 45 20 4e 4f 54 20 |.. WHILE NOT |
00000fd0 45 4f 46 23 57 65 62 25 0d 0a 20 20 20 20 20 20 |EOF#Web%.. |
00000fe0 42 50 55 54 23 46 69 6c 65 25 2c 42 47 45 54 23 |BPUT#File%,BGET#|
00000ff0 57 65 62 25 0d 0a 20 20 20 20 20 45 4e 44 57 48 |Web%.. ENDWH|
00001000 49 4c 45 0d 0a 20 20 20 20 43 4c 4f 53 45 23 57 |ILE.. CLOSE#W|
00001010 65 62 25 20 3a 52 45 4d 20 52 65 6c 65 61 73 65 |eb% :REM Release|
00001020 20 74 68 69 73 20 61 74 20 65 6e 64 20 6f 66 20 | this at end of |
00001030 74 63 70 20 73 74 72 65 61 6d 2e 2e 2e 0d 0a 20 |tcp stream..... |
00001040 20 20 20 43 4c 4f 53 45 23 46 69 6c 65 25 0d 0a | CLOSE#File%..|
00001050 20 20 20 20 4f 53 43 4c 49 28 22 73 65 74 74 79 | OSCLI("setty|
00001060 70 65 20 61 64 66 73 3a 3a 34 2e 24 2e 77 65 62 |pe adfs::4.$.web|
00001070 70 61 67 65 20 66 61 66 22 29 3a 52 45 4d 20 66 |page faf"):REM f|
00001080 61 66 3d 68 74 6d 6c 0d 0a 0d 0a 0d 0a 4f 6b 2c |af=html......Ok,|
00001090 20 53 6f 20 77 68 61 74 20 75 73 65 20 69 73 20 | So what use is |
000010a0 69 74 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |it..------------|
000010b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 57 65 6c 6c 20 |---------..Well |
000010c0 69 74 20 6d 61 6b 65 73 20 69 6e 74 65 72 6e 65 |it makes interne|
000010d0 74 20 73 6f 63 6b 65 74 73 20 73 6c 69 67 68 74 |t sockets slight|
000010e0 6c 79 20 65 61 73 69 65 72 20 74 6f 20 75 73 65 |ly easier to use|
000010f0 2c 20 61 6e 64 20 61 6c 6c 6f 77 20 79 6f 75 0d |, and allow you.|
00001100 0a 74 6f 20 74 72 65 61 74 20 74 68 65 6d 20 6c |.to treat them l|
00001110 69 6b 65 20 66 69 6c 65 73 2e 20 53 70 65 63 69 |ike files. Speci|
00001120 66 69 63 61 6c 6c 79 20 74 68 65 20 55 6e 69 78 |fically the Unix|
00001130 4c 69 62 20 70 65 6f 70 6c 65 20 6d 69 67 68 74 |Lib people might|
00001140 20 66 69 6e 64 20 69 74 0d 0a 75 73 65 66 75 6c | find it..useful|
00001150 20 74 6f 20 61 6c 6c 6f 77 20 66 69 6c 65 20 6f | to allow file o|
00001160 70 65 72 61 74 69 6f 6e 73 20 6f 6e 20 73 6f 63 |perations on soc|
00001170 6b 65 74 73 20 61 73 20 79 6f 75 20 63 61 6e 20 |kets as you can |
00001180 69 6e 20 55 6e 69 78 2e 20 41 6c 74 68 6f 75 67 |in Unix. Althoug|
00001190 68 0d 0a 61 74 20 74 68 65 20 6d 6f 6d 65 6e 74 |h..at the moment|
000011a0 20 6c 69 73 74 65 6e 28 29 2c 20 61 63 63 65 70 | listen(), accep|
000011b0 74 28 29 20 61 72 65 20 73 6c 69 67 68 74 6c 79 |t() are slightly|
000011c0 20 64 69 66 66 69 63 75 6c 74 2e 20 0d 0a 0d 0a | difficult. ....|
000011d0 0d 0a 49 73 20 74 68 65 72 65 20 61 6e 79 74 68 |..Is there anyth|
000011e0 69 6e 67 20 69 74 20 63 61 6e 27 74 20 64 6f 20 |ing it can't do |
000011f0 74 68 61 74 20 49 20 73 68 6f 75 6c 64 20 6e 6f |that I should no|
00001200 77 20 61 62 6f 75 74 0d 0a 2d 2d 2d 2d 2d 2d 2d |w about..-------|
00001210 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------|
*
00001230 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a |--------------..|
00001240 49 20 68 61 76 65 6e 27 74 20 73 70 65 6e 64 20 |I haven't spend |
00001250 61 6e 79 74 69 6d 65 20 77 6f 72 6b 69 6e 67 20 |anytime working |
00001260 6f 6e 20 74 68 65 20 69 6d 70 6c 65 6e 74 61 74 |on the implentat|
00001270 69 6f 6e 20 6f 66 20 77 68 6f 6c 65 20 66 69 6c |ion of whole fil|
00001280 65 0d 0a 6f 70 65 72 61 74 69 6f 6e 73 2c 20 73 |e..operations, s|
00001290 6f 20 2a 73 61 76 65 20 6d 61 79 20 6f 72 20 6d |o *save may or m|
000012a0 61 79 20 6e 6f 74 20 77 6f 72 6b 2e 20 4e 4f 20 |ay not work. NO |
000012b0 47 75 61 72 61 6e 74 65 65 73 2e 0d 0a 41 6c 73 |Guarantees...Als|
000012c0 6f 20 73 6f 63 6b 65 74 66 73 3a 20 64 6f 65 73 |o socketfs: does|
000012d0 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 72 65 6e | not support ren|
000012e0 61 6d 69 6e 67 20 61 73 20 49 50 20 65 73 73 65 |aming as IP esse|
000012f0 6e 74 69 61 6c 79 20 64 6f 65 73 6e 27 74 0d 0a |ntialy doesn't..|
00001300 61 6c 6c 6f 77 20 73 74 72 65 61 6d 73 20 74 6f |allow streams to|
00001310 20 6d 6f 76 65 20 62 65 74 77 65 65 6e 20 73 6f | move between so|
00001320 63 6b 65 74 73 20 28 6f 72 20 69 6e 74 65 72 66 |ckets (or interf|
00001330 61 63 65 73 29 2e 20 49 20 6d 69 67 68 74 20 75 |aces). I might u|
00001340 73 65 20 74 68 69 73 0d 0a 66 69 6c 65 20 73 79 |se this..file sy|
00001350 73 74 65 6d 20 73 65 6d 61 6e 74 69 63 73 20 66 |stem semantics f|
00001360 6f 72 20 61 63 63 65 70 74 28 29 20 6c 61 74 65 |or accept() late|
00001370 72 20 74 68 6f 75 67 68 2e 0d 0a 46 69 6e 61 6c |r though...Final|
00001380 6c 79 20 69 74 20 68 61 73 20 6f 6e 65 20 6f 74 |ly it has one ot|
00001390 68 65 72 20 66 65 61 74 75 72 65 2c 20 74 68 65 |her feature, the|
000013a0 20 63 75 72 72 65 6e 74 20 76 65 72 73 69 6f 6e | current version|
000013b0 20 6f 66 20 74 68 65 20 6d 6f 64 75 6c 65 20 75 | of the module u|
000013c0 73 65 73 0d 0a 62 6c 6f 63 6b 69 6e 67 20 73 6f |ses..blocking so|
000013d0 63 6b 65 74 73 2c 20 61 6c 74 68 6f 75 67 68 20 |ckets, although |
000013e0 74 68 69 73 20 6d 65 61 6e 73 20 69 74 20 77 69 |this means it wi|
000013f0 6c 6c 20 77 61 69 74 20 66 6f 72 20 64 61 74 61 |ll wait for data|
00001400 20 6f 6e 20 61 20 73 6f 63 6b 65 74 0d 0a 77 69 | on a socket..wi|
00001410 74 68 6f 75 79 20 72 65 74 75 72 6e 69 6e 67 20 |thouy returning |
00001420 61 20 65 72 72 6f 72 20 69 66 20 74 68 65 72 65 |a error if there|
00001430 20 69 73 20 6e 6f 6e 65 20 77 61 69 74 69 6e 67 | is none waiting|
00001440 2e 20 4f 6e 65 20 6f 66 20 74 77 6f 20 74 68 69 |. One of two thi|
00001450 6e 67 73 0d 0a 77 69 6c 6c 20 74 68 65 6e 20 68 |ngs..will then h|
00001460 61 70 70 65 6e 2c 20 66 69 72 73 74 20 69 74 20 |appen, first it |
00001470 77 69 6c 6c 20 68 61 6e 67 20 74 68 65 20 77 68 |will hang the wh|
00001480 6f 6c 65 20 6d 61 63 68 69 6e 65 2c 20 6f 72 20 |ole machine, or |
00001490 69 66 20 79 6f 75 27 72 65 20 72 75 6e 6e 69 6e |if you're runnin|
000014a0 67 0d 0a 66 72 65 65 6e 65 74 20 6f 72 20 41 63 |g..freenet or Ac|
000014b0 6f 72 6e 20 49 6e 74 65 72 6e 65 74 20 35 2e 30 |orn Internet 5.0|
000014c0 30 20 6f 72 20 68 69 67 68 65 72 20 6a 75 73 74 |0 or higher just|
000014d0 20 74 68 61 74 20 74 61 73 6b 77 69 6e 64 6f 77 | that taskwindow|
000014e0 2e 20 0d 0a 46 72 65 65 6e 65 74 20 73 74 69 6c |. ..Freenet stil|
000014f0 6c 20 68 61 73 20 74 68 65 20 64 69 73 61 64 76 |l has the disadv|
00001500 61 6e 74 61 67 65 20 74 68 61 74 20 66 69 6c 65 |antage that file|
00001510 73 77 69 74 63 68 2f 74 61 73 6b 77 69 6e 64 6f |switch/taskwindo|
00001520 77 20 73 65 65 6d 20 74 6f 20 0d 0a 62 6c 6f 63 |w seem to ..bloc|
00001530 6b 20 6f 74 68 65 72 20 46 53 20 63 61 6c 6c 73 |k other FS calls|
00001540 20 74 6f 20 74 68 65 73 61 6d 65 20 68 61 6e 64 | to thesame hand|
00001550 6c 65 20 77 68 69 6c 65 20 74 68 65 20 66 69 72 |le while the fir|
00001560 73 74 20 69 73 20 77 61 69 74 69 6e 67 2e 20 54 |st is waiting. T|
00001570 68 69 73 20 0d 0a 69 73 20 66 69 6e 65 20 66 6f |his ..is fine fo|
00001580 72 20 73 69 6d 70 6c 65 78 20 61 6e 64 20 20 68 |r simplex and h|
00001590 61 6c 66 2d 64 75 70 6c 65 78 20 70 72 6f 74 6f |alf-duplex proto|
000015a0 63 6f 6c 73 20 62 75 74 20 69 66 20 79 6f 75 20 |cols but if you |
000015b0 6e 65 65 64 20 66 75 6c 6c 2d 64 75 70 6c 65 78 |need full-duplex|
000015c0 0d 0a 61 63 72 6f 73 73 20 54 61 73 6b 77 69 6e |..across Taskwin|
000015d0 64 6f 77 73 2c 20 79 6f 75 72 20 63 6f 75 6c 64 |dows, your could|
000015e0 20 72 65 63 6f 6d 70 69 6c 65 20 74 68 65 20 6d | recompile the m|
000015f0 6f 64 75 6c 65 20 77 69 74 68 20 2d 44 46 49 4f |odule with -DFIO|
00001600 4d 4f 44 45 3d 46 49 4f 4e 42 49 4f 0d 0a 77 68 |MODE=FIONBIO..wh|
00001610 69 63 68 20 77 69 6c 6c 20 66 6f 72 63 65 20 74 |ich will force t|
00001620 68 65 20 6d 6f 64 75 6c 65 20 74 6f 20 75 73 65 |he module to use|
00001630 20 6e 6f 6e 2d 62 6c 6f 63 6b 69 6e 67 20 73 6f | non-blocking so|
00001640 63 6b 65 74 73 20 61 73 20 64 65 66 61 75 6c 74 |ckets as default|
00001650 2e 0d 0a 0d 0a 46 69 6e 61 6c 20 43 6f 6d 6d 65 |.....Final Comme|
00001660 6e 74 73 0d 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |nts..-----------|
00001670 2d 2d 2d 0d 0a 49 74 20 77 6f 75 6c 64 20 62 65 |---..It would be|
00001680 20 6e 69 63 65 20 74 6f 20 61 64 64 20 69 6f 63 | nice to add ioc|
00001690 74 6c 2c 20 61 6e 64 20 73 6f 63 6b 65 74 5f 73 |tl, and socket_s|
000016a0 65 6c 65 63 74 20 66 75 63 74 69 6f 6e 61 6c 69 |elect fuctionali|
000016b0 74 79 20 74 6f 20 74 68 65 0d 0a 66 69 6c 69 6e |ty to the..filin|
000016c0 67 20 73 79 73 74 65 6d 2c 20 62 75 74 20 49 20 |g system, but I |
000016d0 68 61 76 65 6e 27 74 20 63 6f 6d 65 20 75 70 20 |haven't come up |
000016e0 77 69 74 68 20 61 20 6e 69 63 65 20 77 61 79 20 |with a nice way |
000016f0 6f 66 20 64 6f 69 6e 67 20 74 68 6f 73 65 0d 0a |of doing those..|
00001700 79 65 74 2e 20 57 68 69 6c 65 20 6d 79 20 6f 77 |yet. While my ow|
00001710 6e 20 53 57 49 20 69 6e 74 65 72 61 63 65 20 77 |n SWI interace w|
00001720 6f 75 6c 64 20 77 6f 72 6b 20 2d 20 62 65 61 72 |ould work - bear|
00001730 20 69 6e 20 6d 69 6e 64 20 74 68 61 74 20 73 6f | in mind that so|
00001740 63 6b 65 74 66 73 20 75 73 65 73 0d 0a 66 69 6c |cketfs uses..fil|
00001750 65 73 77 69 74 63 68 20 74 6f 20 64 6f 20 74 68 |eswitch to do th|
00001760 65 20 53 6f 63 6b 65 74 48 61 6e 64 6c 65 3c 2d |e SocketHandle<-|
00001770 2d 3e 46 69 6c 65 48 61 6e 64 6c 65 20 6d 61 70 |->FileHandle map|
00001780 70 69 6e 67 2c 20 73 6f 20 73 6f 63 6b 65 74 66 |ping, so socketf|
00001790 73 20 63 61 6e 27 74 0d 0a 64 6f 20 74 68 69 73 |s can't..do this|
000017a0 20 69 74 73 65 6c 66 20 61 73 20 69 74 20 6b 6e | itself as it kn|
000017b0 6f 77 73 20 6e 6f 74 68 69 6e 67 20 61 62 6f 75 |ows nothing abou|
000017c0 74 20 66 69 6c 65 73 77 69 74 63 68 27 73 20 68 |t fileswitch's h|
000017d0 61 6e 64 6c 65 73 2e 20 0d 0a 49 20 73 75 70 70 |andles. ..I supp|
000017e0 6f 73 65 20 69 74 20 77 6f 75 6c 64 20 62 65 20 |ose it would be |
000017f0 70 6f 73 73 69 62 6c 65 20 74 6f 20 61 74 74 72 |possible to attr|
00001800 69 62 75 74 65 20 61 6e 64 20 66 69 6c 65 74 79 |ibute and filety|
00001810 70 65 2c 20 61 73 73 69 67 6e 69 6e 67 20 64 69 |pe, assigning di|
00001820 66 66 65 72 65 6e 74 0d 0a 6d 65 61 6e 69 6e 67 |fferent..meaning|
00001830 73 20 74 6f 20 74 68 65 73 65 20 74 68 61 6e 20 |s to these than |
00001840 69 73 20 75 73 75 61 6c 2c 20 62 75 74 20 69 74 |is usual, but it|
00001850 27 73 20 6e 6f 74 20 61 20 6e 69 63 65 20 73 6f |'s not a nice so|
00001860 6c 75 74 69 6f 6e 2e 0d 0a 0d 0a 49 27 6c 6c 20 |lution.....I'll |
00001870 74 61 6b 65 20 61 20 6d 6f 6d 65 6e 74 20 68 65 |take a moment he|
00001880 72 65 20 74 6f 20 72 65 6d 69 6e 64 20 79 6f 75 |re to remind you|
00001890 20 74 68 61 74 20 73 6f 63 6b 65 74 46 53 20 69 | that socketFS i|
000018a0 73 0d 0a 64 69 73 74 72 75 62 75 74 65 64 20 75 |s..distrubuted u|
000018b0 6e 64 65 72 20 74 68 65 20 63 6f 6e 64 69 74 69 |nder the conditi|
000018c0 6f 6e 73 20 6f 75 74 6c 69 6e 65 64 20 69 6e 20 |ons outlined in |
000018d0 74 68 65 20 61 63 63 6f 6d 70 61 6e 79 69 6e 67 |the accompanying|
000018e0 20 66 69 6c 65 20 63 61 6c 6c 65 64 0d 0a 27 43 | file called..'C|
000018f0 4f 50 59 49 4e 47 27 2c 20 63 75 72 72 65 6e 74 |OPYING', current|
00001900 6c 79 20 74 68 69 73 20 69 73 20 76 65 72 73 69 |ly this is versi|
00001910 6f 6e 20 32 20 6f 66 20 74 68 65 20 47 50 4c 2c |on 2 of the GPL,|
00001920 20 68 6f 77 65 76 65 72 20 49 20 66 69 6e 64 20 | however I find |
00001930 47 50 4c 73 20 76 69 72 75 73 0d 0a 6c 69 6b 65 |GPLs virus..like|
00001940 20 61 62 6c 69 74 69 65 73 20 61 20 6c 69 74 74 | ablities a litt|
00001950 6c 65 20 68 61 72 73 68 20 66 6f 72 20 6d 79 20 |le harsh for my |
00001960 74 61 73 74 65 73 2c 20 73 6f 20 79 6f 75 27 6c |tastes, so you'l|
00001970 6c 20 66 69 6e 64 20 6d 65 20 72 65 6c 61 74 69 |l find me relati|
00001980 76 65 6c 79 20 6f 70 65 6e 0d 0a 6f 6e 20 61 6c |vely open..on al|
00001990 6c 6f 77 69 6e 67 20 6c 69 6d 69 74 65 64 20 64 |lowing limited d|
000019a0 69 73 74 72 69 62 75 74 69 6f 6e 73 20 75 6e 64 |istributions und|
000019b0 65 72 20 6f 74 68 65 72 20 6c 69 63 65 6e 73 65 |er other license|
000019c0 73 2e 20 0d 0a 49 20 77 6f 75 6c 64 20 61 6c 73 |s. ..I would als|
000019d0 6f 20 61 73 6b 20 79 6f 75 20 74 6f 20 6c 65 74 |o ask you to let|
000019e0 20 6d 65 20 6b 6e 6f 77 20 79 6f 75 72 20 65 78 | me know your ex|
000019f0 70 65 72 69 65 6e 63 65 73 2c 20 77 69 74 68 20 |periences, with |
00001a00 74 68 65 20 73 6f 66 74 77 61 72 65 20 0d 0a 62 |the software ..b|
00001a10 79 20 65 2d 6d 61 69 6c 20 69 66 20 70 6f 73 73 |y e-mail if poss|
00001a20 69 62 6c 65 2e 0d 0a 49 20 77 69 6c 6c 20 61 6c |ible...I will al|
00001a30 73 6f 20 77 65 6c 63 6f 6d 65 20 62 75 67 20 72 |so welcome bug r|
00001a40 65 70 6f 72 74 73 20 61 6e 64 20 70 61 74 63 68 |eports and patch|
00001a50 65 73 20 28 63 6f 6e 74 65 78 74 20 64 69 66 66 |es (context diff|
00001a60 73 20 70 6c 65 61 73 65 29 2c 20 61 6e 64 20 0d |s please), and .|
00001a70 0a 66 65 61 74 75 72 65 20 72 65 71 75 65 73 74 |.feature request|
00001a80 73 2e 20 49 20 63 61 6e 20 62 65 20 72 65 61 63 |s. I can be reac|
00001a90 68 65 64 20 61 74 20 3c 72 67 61 6d 6d 61 6e 73 |hed at <rgammans|
00001aa0 40 63 6f 6d 70 73 75 72 67 2e 64 65 6d 6f 6e 2e |@compsurg.demon.|
00001ab0 63 6f 2e 75 6b 3e 2c 20 20 0d 0a 61 6e 64 20 63 |co.uk>, ..and c|
00001ac0 6f 75 6c 64 20 49 20 70 6c 65 61 73 65 20 61 73 |ould I please as|
00001ad0 6b 20 69 66 20 79 6f 75 20 64 6f 20 65 2d 6d 61 |k if you do e-ma|
00001ae0 69 6c 20 6d 65 2c 20 63 61 6e 20 79 6f 75 20 6d |il me, can you m|
00001af0 65 6e 74 69 6f 6e 20 73 6f 63 6b 65 74 66 73 20 |ention socketfs |
00001b00 69 6e 0d 0a 74 68 65 20 73 75 62 6a 65 63 74 20 |in..the subject |
00001b10 6c 69 6e 65 2e 0d 0a 0d 0a 52 6f 67 65 72 20 47 |line.....Roger G|
00001b20 61 6d 6d 61 6e 73 0d 0a 31 38 20 41 75 67 20 31 |ammans..18 Aug 1|
00001b30 39 39 37 0d 0a |997..|
00001b35
.