teal-src/net/server.d.tl
author Matthew Wild <mwild1@gmail.com>
Tue, 11 Oct 2022 11:34:47 +0100
changeset 12766 79b89f382290
parent 12614 e2fdcd386ebb
permissions -rw-r--r--
util.dbuffer: Remove redundant code (read_chunk() cannot fail at this point)

local record server
	record LuaSocketTCP
	end
	record LuaSecCTX
	end

	record extra_settings
	end

	record interface
	end
	enum socket_type
		"tcp"
		"tcp6"
		"tcp4"
	end

	record listeners
		onconnect : function (interface)
		ondetach : function (interface)
		onattach : function (interface, string)
		onincoming : function (interface, string, string)
		ondrain : function (interface)
		onreadtimeout : function (interface)
		onstarttls : function (interface)
		onstatus : function (interface, string)
		ondisconnect : function (interface, string)
	end

	get_backend : function () : string

	type port = string | integer
	enum read_mode
		"*a"
		"*l"
	end
	type read_size = read_mode | integer
	addserver : function (string, port, listeners, read_size, LuaSecCTX) : interface
	addclient : function (string, port, listeners, read_size, LuaSecCTX, socket_type, extra_settings) : interface
	record listen_config
		read_size : read_size
		tls_ctx : LuaSecCTX
		tls_direct : boolean
		sni_hosts : { string : LuaSecCTX }
	end
	listen : function (string, port, listeners, listen_config) : interface
	enum quitting
		"quitting"
	end
	loop : function () : quitting
	closeall : function ()
	setquitting : function (boolean | quitting)

	wrapclient : function (LuaSocketTCP, string, port, listeners, read_size, LuaSecCTX, extra_settings) : interface
	wrapserver : function (LuaSocketTCP, string, port, listeners, listen_config) : interface
	watchfd : function (integer | LuaSocketTCP, function (interface), function (interface)) : interface
	link : function ()

	record config
	end
	set_config : function (config)

end

return server