1
0
mirror of https://github.com/ShadowKatStudios/OC-Minitel.git synced 2024-11-09 20:08:06 +11:00
OC-Minitel/OpenOS
2018-02-18 12:39:25 +11:00
..
etc/rc.d should actually do routing now 2018-02-18 12:39:25 +11:00
usr/lib made listen and flisten care what is sent to them 2018-02-17 18:31:50 +11:00
README.md added documentation for the OpenOS implementation 2018-02-17 16:15:11 +11:00

Minitel for OpenOS

This package includes the Minitel daemon, in etc/rc.d/minitel.lua, and the net library for using minitel, in usr/lib/net.lua.

Minitel daemon

Installation

  1. Place minitel.lua into /etc/rc.d
  2. Place your hostname into /etc/hostname
  3. Run rc minitel enable; rc minitel start

Configuration

The minitel daemon does not keep a configuration file, so settings have to be set every boot.

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

In addition, one can invoke rc minitel debug 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.

Net library

The net library provides an easy way of interacting with the minitel daemon, and implements higher-level features of the stack.

API

Layer 3

net.genPacketID() - returns a string of random data

net.usend(host, port, data, pid) - Sends an unreliable packet to host on port containing data, optionally with the packet ID pid.

net.rsend(host, port, data) - Sends a reliable packet to host on port containing data.

Layer 4

net.send(host, port, data) - Sends data reliably and in order to host on port.

Layer 5

net.open(to,port) - Establishes a stream to host on port and returns a stream object

net.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

net.mtu = 4096 - The maximum length of the data portion of a packet for net.send

net.streamdelay = 60 - The time, in seconds, net.open will wait for a response while trying to establish a connection.

net.minport = 32768 - The lowest port net.listen will allocate to a new connection.

net.maxport = 65535 - The highest port net.listen will allocate to a new connection.