.. | ||
etc/rc.d | ||
usr | ||
README.md |
Minitel for OpenOS
This package includes the Minitel daemon, in etc/rc.d/minitel.lua, and the minitel library for using minitel, in usr/lib/minitel.lua.
Minitel daemon
Installation
With OPPM
- Run
oppm install minitel-util
- this will install both the Minitel utilities and pull in the Minitel daemon as a dependency. - Run
mtcfg
This will walk you through setting up Minitel.
Manual
- Place minitel.lua into /etc/rc.d
- Place your hostname into /etc/hostname
- Run rc minitel enable; rc minitel start
Configuration
The minitel daemon keeps a settings file in /etc/minitel.cfg, which is loaded on start. This can be edited directly and the daemon restarted, or settings can be changed from the command line.
To change a setting, one invokes:
rc minitel set <option> <value>
Available settings
- port: the physical port the protocol runs over
- pctime: the amount of time packets are kept in the packet cache
- retry: how many seconds between resend attempts of reliable packets
- rctime: How long items are kept in the routing cache
- retrycount: how many attempts to resend should be made
- route: whether to forward packets
- debug: whether to output debugging info to the display
In addition, one can invoke to get large amounts of debug output, rc minitel set_route <local_modem> <remote_modem> to add a static route, and rc minitel del_route to delete a static route.
Minitel library
The minitel library provides an easy way of interacting with the minitel daemon, and implements higher-level features of the stack.
API
Layer 3
minitel.genPacketID() - returns a string of random data
minitel.usend(host, port, data, pid) - Sends an unreliable packet to host on port containing data, optionally with the packet ID pid.
minitel.rsend(host, port, data, block) - Sends a reliable packet to host on port containing data. If block is true, don't wait for a reply.
Layer 4
minitel.send(host, port, data) - Sends data reliably and in order to host on port.
Layer 5
minitel.open(to,port) - Establishes a stream to host on port and returns a stream object
minitel.listen(port) - Waits for another node to establish a stream, and returns the stream object.
Stream objects
stream:write(data) - Sends data to the node at the other end of the stream
stream:read(length) - Reads data from the stream, up to length bytes.
stream:close() - Ends the stream and prevents further writing.
Variables
minitel.mtu = 4096 - The maximum length of the data portion of a packet for minitel.send
minitel.streamdelay = 60 - The time, in seconds, minitel.open will wait for a response while trying to establish a connection.
minitel.minport = 32768 - The lowest port minitel.listen will allocate to a new connection.
minitel.maxport = 65535 - The highest port minitel.listen will allocate to a new connection.