mirror of
https://github.com/ShadowKatStudios/OC-Minitel.git
synced 2024-11-23 02:28:05 +11:00
bridge improvements, mostly configuration
This commit is contained in:
parent
57345b6598
commit
f254ededac
@ -21,13 +21,15 @@ The protocol is documented [here](vtunnel-protocol.md)
|
|||||||
At present, all you need to do is run bridge.lua, for example:
|
At present, all you need to do is run bridge.lua, for example:
|
||||||
|
|
||||||
```
|
```
|
||||||
lua53 bridge.lua
|
lua53 bridge.lua [port] [timeout]
|
||||||
```
|
```
|
||||||
|
|
||||||
### Client
|
### Client
|
||||||
|
|
||||||
#### OPPM
|
#### OPPM
|
||||||
|
|
||||||
|
Not yet functional, but when it is:
|
||||||
|
|
||||||
```
|
```
|
||||||
oppm install vtunnel
|
oppm install vtunnel
|
||||||
```
|
```
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
local socket = require "socket"
|
local socket = require "socket"
|
||||||
local imt = require "interminitel"
|
local imt = require "interminitel"
|
||||||
|
|
||||||
|
local tArgs = {...}
|
||||||
|
|
||||||
|
local port, timeout = tonumber(tArgs[1]) or 4096, tonumber(tArgs[2]) or 60
|
||||||
|
|
||||||
local clients, coroutines, messages = {}, {}, {}
|
local clients, coroutines, messages = {}, {}, {}
|
||||||
|
|
||||||
local function spawn(f)
|
local function spawn(f)
|
||||||
@ -28,8 +32,6 @@ function reprint(...)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
reprint(imt.encodePacket("Hello, world!",123))
|
|
||||||
|
|
||||||
local function hasValidPacket(s)
|
local function hasValidPacket(s)
|
||||||
local w, res = pcall(imt.decodePacket,s)
|
local w, res = pcall(imt.decodePacket,s)
|
||||||
if res then return true end
|
if res then return true end
|
||||||
@ -37,8 +39,9 @@ end
|
|||||||
hasValidPacket("")
|
hasValidPacket("")
|
||||||
|
|
||||||
function socketLoop()
|
function socketLoop()
|
||||||
local server = socket.bind("*", 4096)
|
local server = socket.bind("*", port)
|
||||||
server:settimeout(0)
|
server:settimeout(0)
|
||||||
|
print("vTunnel bridge server listening on port "..tostring(port))
|
||||||
while true do
|
while true do
|
||||||
local client,err = server:accept()
|
local client,err = server:accept()
|
||||||
if client then
|
if client then
|
||||||
@ -66,7 +69,7 @@ function clientLoop()
|
|||||||
client.conn:close()
|
client.conn:close()
|
||||||
clients[id] = nil
|
clients[id] = nil
|
||||||
end
|
end
|
||||||
if client.last+3000 < os.time() then
|
if client.last+timeout < os.time() then
|
||||||
print("Dropping client "..tostring(id).." for inactivity")
|
print("Dropping client "..tostring(id).." for inactivity")
|
||||||
client.conn:close()
|
client.conn:close()
|
||||||
clients[id] = nil
|
clients[id] = nil
|
||||||
|
@ -54,4 +54,4 @@ By default, the bridge server:
|
|||||||
- uses port 4096, as Minitel does on OpenComputers networks
|
- uses port 4096, as Minitel does on OpenComputers networks
|
||||||
- drops clients after 60 seconds of inactivity
|
- drops clients after 60 seconds of inactivity
|
||||||
|
|
||||||
This can be configured by **FIXME.**
|
This can be configured by appending a port number and timeout (in seconds) to the command you use to launch the bridge.
|
||||||
|
Loading…
Reference in New Issue
Block a user