marignotti/README.text

100 lines
2.9 KiB
Plaintext
Raw Normal View History

2012-05-13 00:29:32 +00:00
MariGNOtti
2013-08-09 00:33:56 +00:00
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.
2012-05-13 00:29:32 +00:00
Installation:
-------------
2013-08-09 00:33:56 +00:00
1. copy the marignotti, ftp, sic, and whois executables to your /usr/local/bin
directory.
2012-05-13 00:29:32 +00:00
ftp is an update of the gno 2.0.6 ftp (it adds passive ftp support).
2013-08-09 00:33:56 +00:00
whois is an updated version (from FreeBSD 9.0). The gno 2.0.6 version is
from FreeBSD 2.1.
2012-05-13 00:29:32 +00:00
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
2013-08-09 00:33:56 +00:00
2. copy the etc/services file to /etc/services (if it does not exist).
2015-12-31 14:39:37 +00:00
3. edit and copy the etc/resolv.conf file to /etc/resolv.conf (if it does
not exist). This file points to your DNS server; update it as needed.
2012-05-13 00:29:32 +00:00
2015-12-31 14:39:37 +00:00
4. If you do not have a DNS server, edit /etc/hosts to include your favorite
2013-08-09 00:33:56 +00:00
sites.
2012-05-13 00:29:32 +00:00
Usage:
------
2013-08-09 00:33:56 +00:00
Run marignotti in the background (marignotti &). To quit, bring it to the
foreground (fg) and hit control-C.
2012-05-13 00:29:32 +00:00
2013-08-09 00:33:56 +00:00
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).
2012-05-13 00:29:32 +00:00
What it does:
-------------
2013-08-09 00:33:56 +00:00
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.
2012-05-13 00:29:32 +00:00
Architecture:
-------------
2013-08-09 00:33:56 +00:00
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.
2012-05-13 00:29:32 +00:00
Supported:
----------
socket -- only support for PF_UNIX, SOCK_STREAM, and SOCK_DGRAM.
connect -- but non-blocking connects are not yet supported.
2013-08-09 00:33:56 +00:00
bind -- currently a no-op since the old whois used it.
2012-05-13 00:29:32 +00:00
2013-08-09 00:33:56 +00:00
read/recv/recvfrom -- supports blocking, non-blocking, timeouts, and RCVLOWAT.
The address parameter of recvfrom is not supported. OOB is not supported.
2012-05-13 00:29:32 +00:00
2013-08-09 00:33:56 +00:00
write/send/sendto -- does not support SNDLOWAT, OOB, or the address parameter
of sendto.
2012-05-13 00:29:32 +00:00
close -- does not support SOLINGER type functionality.
shutdown -- sets flags but the flags are not completely implemented.
2013-08-09 00:33:56 +00:00
ioctl -- support for FIONREAD (bytes available to read) and FIONBIO
(set/clear non-blocking).
2012-05-13 00:29:32 +00:00
2013-08-09 00:33:56 +00:00
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.
2012-05-13 00:29:32 +00:00
2013-08-09 00:33:56 +00:00
getsockopt -- support for SO_TYPE, SO_OOBINLINE, SO_SNDLOWAT, SO_RCVLOWAT,
SO_SNDTIMEO
2012-05-13 00:29:32 +00:00
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