mirror of
https://github.com/ksherlock/marignotti.git
synced 2024-12-13 01:30:43 +00:00
update README
This commit is contained in:
parent
8855f7fb7d
commit
c9be4bb807
101
README.md
Normal file
101
README.md
Normal file
@ -0,0 +1,101 @@
|
||||
MariGNOtti
|
||||
==========
|
||||
|
||||
MariGNOtti is a network driver for GNO/ME 2.0.6. It provides a translation
|
||||
layer between BSD sockets and Marinetti. Think of it as a replacement for
|
||||
GSTCP.
|
||||
|
||||
Installation:
|
||||
-------------
|
||||
|
||||
1. copy the `marignotti`, `ftp`, `sic`, and `whois` executables to your `/usr/local/bin`
|
||||
directory.
|
||||
|
||||
* `ftp` is an update of the gno 2.0.6 ftp (it adds passive ftp support).
|
||||
|
||||
* `whois` is an updated version (from FreeBSD 9.0). The gno 2.0.6 version is from FreeBSD 2.1.
|
||||
|
||||
* `sic` is a very simple irc client.
|
||||
|
||||
example:
|
||||
sic -h irc.a2central.com -p 6667 -n myname
|
||||
(a bunch of messages)
|
||||
:j #a2c.chat << join a room
|
||||
|
||||
|
||||
2. copy the `etc/services` file to `/etc/services` (if it does not exist).
|
||||
|
||||
3. edit and copy the `etc/resolve.conf` file to `/etc/resolve.conf` (if it does
|
||||
not exist). This file is your DNS server
|
||||
|
||||
4. If you don't have a DNS server, edit `/etc/hosts` to include your favorite
|
||||
sites.
|
||||
|
||||
|
||||
|
||||
Usage:
|
||||
------
|
||||
|
||||
Run marignotti in the background (`marignotti &`). To quit, bring it to the
|
||||
foreground (`fg`) and hit `control-C`.
|
||||
|
||||
If you're using the Sweet-16 emulator version 3.0, `marignotti -d` will print
|
||||
some debugging information to the debugger console. `marignotti -dd` will
|
||||
enable extra debugging information (including the contents of reads and
|
||||
writes).
|
||||
|
||||
|
||||
What it does:
|
||||
-------------
|
||||
|
||||
While marignotti is running in the background, it translates BSD socket calls
|
||||
into Marinetti tool calls. It also handles blocking IO, socket options,
|
||||
select, etc.
|
||||
|
||||
|
||||
Architecture:
|
||||
-------------
|
||||
|
||||
BSD sockets are, by default, blocking whereas everything Marinetti does
|
||||
(other than the inital network connection) is non-blocking. To handle
|
||||
blocking behavior, each socket has a semaphore. The main thread performs
|
||||
all the polling and uses the semaphore to signal the other threads when they
|
||||
can proceed.
|
||||
|
||||
|
||||
Supported:
|
||||
----------
|
||||
|
||||
`socket` -- only support for `PF_UNIX`, `SOCK_STREAM`, and `SOCK_DGRAM`.
|
||||
|
||||
`connect` -- but non-blocking connects are not yet supported.
|
||||
|
||||
`bind` -- currently a no-op since the old `whois` used it.
|
||||
|
||||
`read`/`recv`/`recvfrom` -- supports blocking, non-blocking, timeouts, and `RCVLOWAT`.
|
||||
The address parameter of `recvfrom` is not supported. OOB is not supported.
|
||||
|
||||
`write`/`send`/`sendto` -- does not support `SNDLOWAT`, OOB, or the address parameter
|
||||
of `sendto`.
|
||||
|
||||
`close` -- does not support `SOLINGER` type functionality.
|
||||
|
||||
`shutdown` -- sets flags but the flags are not completely implemented.
|
||||
|
||||
`ioctl` -- support for `FIONREAD` (bytes available to read) and `FIONBIO`
|
||||
(set/clear non-blocking).
|
||||
|
||||
`getsockopt` -- support for `SO_OOBINLINE`, `SO_SNDLOWAT`, `SO_RCVLOWAT`,
|
||||
`SO_SNDTIMEO`, `SO_RCVTIMEO`, `SNDLOWAT` and `SNDTIMEO` set flags but don't have any
|
||||
other effect. `OOBINLINE` is only be supported when true.
|
||||
|
||||
`getsockopt` -- support for `SO_TYPE`, `SO_OOBINLINE`, `SO_SNDLOWAT`, `SO_RCVLOWAT`,
|
||||
`SO_SNDTIMEO`
|
||||
|
||||
Not (yet) supported:
|
||||
--------------------
|
||||
|
||||
- OOB (out of band) data (and will never be supported).
|
||||
- raw sockets (`SOCK_RAW`)
|
||||
- TCP servers (`listen`/`accept`). Should be simple, though.
|
||||
- UDP servers
|
54
README.text
54
README.text
@ -1,15 +1,19 @@
|
||||
MariGNOtti
|
||||
|
||||
MariGNOtti is a network driver for GNO/ME 2.0.6. It provides a translation layer between BSD sockets and Marinetti. Think of it as a replacement for GSTCP.
|
||||
MariGNOtti is a network driver for GNO/ME 2.0.6. It provides a translation
|
||||
layer between BSD sockets and Marinetti. Think of it as a replacement for
|
||||
GSTCP.
|
||||
|
||||
Installation:
|
||||
-------------
|
||||
|
||||
1. copy the marignotti, ftp, sic, and whois executables to your /usr/local/bin directory.
|
||||
1. copy the marignotti, ftp, sic, and whois executables to your /usr/local/bin
|
||||
directory.
|
||||
|
||||
ftp is an update of the gno 2.0.6 ftp (it adds passive ftp support).
|
||||
|
||||
whois is an updated version (from FreeBSD 9.0). The gno 2.0.6 version is from FreeBSD 2.1.
|
||||
whois is an updated version (from FreeBSD 9.0). The gno 2.0.6 version is
|
||||
from FreeBSD 2.1.
|
||||
|
||||
sic is a very simple irc client.
|
||||
example:
|
||||
@ -18,31 +22,43 @@ sic -h irc.a2central.com -p 6667 -n myname
|
||||
:j #a2c.chat << join a room
|
||||
|
||||
|
||||
2. copy the services file to /etc/services (if it does not exist).
|
||||
3. edit and copy the resolve.conf file to /etc/resolve.conf (if it does not exist). This file is your DNS server
|
||||
2. copy the etc/services file to /etc/services (if it does not exist).
|
||||
3. edit and copy the etc/resolve.conf file to /etc/resolve.conf (if it does
|
||||
not exist). This file is your DNS server
|
||||
|
||||
4. If you don't have a DNS server, edit /etc/hosts to include your favorite sites.
|
||||
4. If you don't have a DNS server, edit /etc/hosts to include your favorite
|
||||
sites.
|
||||
|
||||
|
||||
|
||||
Usage:
|
||||
------
|
||||
|
||||
Run marignotti in the background (marignotti &). To quit, bring it to the foreground (fg) and hit control-C.
|
||||
Run marignotti in the background (marignotti &). To quit, bring it to the
|
||||
foreground (fg) and hit control-C.
|
||||
|
||||
If you're using the Sweet-16 emulator and started Sweet 16 from the terminal (/Applications/Sweet16.app/Contents/MacOS/Sweet16), marignotti -d will print some debugging information to the console. marignotti -dd will enable extra debugging information (including the contents of reads and writes).
|
||||
If you're using the Sweet-16 emulator version 3.0, marignotti -d will print
|
||||
some debugging information to the debugger console. marignotti -dd will
|
||||
enable extra debugging information (including the contents of reads and
|
||||
writes).
|
||||
|
||||
|
||||
What it does:
|
||||
-------------
|
||||
|
||||
While marignotti is running in the background, it translates BSD socket calls into Marinetti tool calls. It also handles blocking IO, socket options, select, etc.
|
||||
While marignotti is running in the background, it translates BSD socket calls
|
||||
into Marinetti tool calls. It also handles blocking IO, socket options,
|
||||
select, etc.
|
||||
|
||||
|
||||
Architecture:
|
||||
-------------
|
||||
|
||||
BSD sockets are, by default, blocking whereas everything Marinetti does (other than the inital network connection) is non-blocking. To handle blocking behavior, each socket has a semaphore. The main thread performs all the polling and uses the semaphore to signal the other threads when they can proceed.
|
||||
BSD sockets are, by default, blocking whereas everything Marinetti does
|
||||
(other than the inital network connection) is non-blocking. To handle
|
||||
blocking behavior, each socket has a semaphore. The main thread performs
|
||||
all the polling and uses the semaphore to signal the other threads when they
|
||||
can proceed.
|
||||
|
||||
|
||||
Supported:
|
||||
@ -52,21 +68,27 @@ socket -- only support for PF_UNIX, SOCK_STREAM, and SOCK_DGRAM.
|
||||
|
||||
connect -- but non-blocking connects are not yet supported.
|
||||
|
||||
bind -- currently a no-op since the old whois(1) used it.
|
||||
bind -- currently a no-op since the old whois used it.
|
||||
|
||||
read/recv/recvfrom -- supports blocking, non-blocking, timeouts, and RCVLOWAT. The address parameter of recvfrom is not supported. OOB is not supported.
|
||||
read/recv/recvfrom -- supports blocking, non-blocking, timeouts, and RCVLOWAT.
|
||||
The address parameter of recvfrom is not supported. OOB is not supported.
|
||||
|
||||
write/send/sendto -- does not support SNDLOWAT, OOB, or the address parameter of sendto.
|
||||
write/send/sendto -- does not support SNDLOWAT, OOB, or the address parameter
|
||||
of sendto.
|
||||
|
||||
close -- does not support SOLINGER type functionality.
|
||||
|
||||
shutdown -- sets flags but the flags are not completely implemented.
|
||||
|
||||
ioctl(2) -- support for FIONREAD (bytes available to read) and FIONBIO (set/clear non-blocking).
|
||||
ioctl -- support for FIONREAD (bytes available to read) and FIONBIO
|
||||
(set/clear non-blocking).
|
||||
|
||||
getsockopt(2) -- support for SO_OOBINLINE, SO_SNDLOWAT, SO_RCVLOWAT, SO_SNDTIMEO, SO_RCVTIMEO. SNDLOWAT and SNDTIMEO set flags but don't have any other effect. OOBINLINE will only be supported when true.
|
||||
getsockopt -- support for SO_OOBINLINE, SO_SNDLOWAT, SO_RCVLOWAT,
|
||||
SO_SNDTIMEO, SO_RCVTIMEO, SNDLOWAT and SNDTIMEO set flags but don't have any
|
||||
other effect. OOBINLINE will only be supported when true.
|
||||
|
||||
getsockopt(2) -- support for SO_TYPE, SO_OOBINLINE, SO_SNDLOWAT, SO_RCVLOWAT, SO_SNDTIMEO
|
||||
getsockopt -- support for SO_TYPE, SO_OOBINLINE, SO_SNDLOWAT, SO_RCVLOWAT,
|
||||
SO_SNDTIMEO
|
||||
|
||||
Not (yet) supported:
|
||||
--------------------
|
||||
|
Loading…
Reference in New Issue
Block a user