net/server.lua
author Kim Alvefur <zash@zash.se>
Thu, 28 Mar 2024 15:26:57 +0100
changeset 13472 98806cac64c3
parent 13457 0b48cf880e79
permissions -rw-r--r--
MUC: Switch to official XEP-0317 namespace for Hats (including compat) (thanks nicoco)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2925
692b3c6c5bd2 Merge 0.6->0.7
Matthew Wild <mwild1@gmail.com>
parents: 2645 2923
diff changeset
     1
-- Prosody IM
692b3c6c5bd2 Merge 0.6->0.7
Matthew Wild <mwild1@gmail.com>
parents: 2645 2923
diff changeset
     2
-- Copyright (C) 2008-2010 Matthew Wild
692b3c6c5bd2 Merge 0.6->0.7
Matthew Wild <mwild1@gmail.com>
parents: 2645 2923
diff changeset
     3
-- Copyright (C) 2008-2010 Waqas Hussain
5776
bd0ff8ae98a8 Remove all trailing whitespace
Florian Zeitz <florob@babelmonkeys.de>
parents: 5531
diff changeset
     4
--
2925
692b3c6c5bd2 Merge 0.6->0.7
Matthew Wild <mwild1@gmail.com>
parents: 2645 2923
diff changeset
     5
-- This project is MIT/X11 licensed. Please see the
692b3c6c5bd2 Merge 0.6->0.7
Matthew Wild <mwild1@gmail.com>
parents: 2645 2923
diff changeset
     6
-- COPYING file in the source package for more information.
692b3c6c5bd2 Merge 0.6->0.7
Matthew Wild <mwild1@gmail.com>
parents: 2645 2923
diff changeset
     7
--
2162
22b6b1899a55 net.server: Log an error when libevent is requested, but luaevent is unavailable, and don't load luaevent when not requested.
Waqas Hussain <waqas20@gmail.com>
parents: 2136
diff changeset
     8
13170
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
     9
local function log(level, format, ...)
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
    10
	print("net.server", level, format:format(...));
9218
b087b5047f86 net.server: Throw error when loading outside Prosody or Prosody config not loaded
Matthew Wild <mwild1@gmail.com>
parents: 8714
diff changeset
    11
end
b087b5047f86 net.server: Throw error when loading outside Prosody or Prosody config not loaded
Matthew Wild <mwild1@gmail.com>
parents: 8714
diff changeset
    12
13170
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
    13
local default_backend = "select";
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
    14
local server_type = default_backend;
10857
0107ed6744aa net.server: Switch to epoll backend by default
Matthew Wild <mwild1@gmail.com>
parents: 9218
diff changeset
    15
13170
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
    16
if (prosody and prosody.config_loaded) then
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
    17
	default_backend = "epoll";
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
    18
	log = require"prosody.util.logger".init("net.server");
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
    19
	server_type = require"prosody.core.configmanager".get("*", "network_backend") or default_backend;
9218
b087b5047f86 net.server: Throw error when loading outside Prosody or Prosody config not loaded
Matthew Wild <mwild1@gmail.com>
parents: 8714
diff changeset
    20
13170
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
    21
	if require"prosody.core.configmanager".get("*", "use_libevent") then
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
    22
		server_type = "event";
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
    23
	end
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
    24
elseif pcall(require, "prosody.util.poll") then
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
    25
	server_type = "epoll";
6483
37b12475f648 net/server: Split up different backends in a nicer way. Add global config option 'server'
daurnimator <quae@daurnimator.com>
parents: 5776
diff changeset
    26
end
2094
c69cb5c171e0 net.server: New net.server to choose the appropriate library from server_select/server_event based on the availability of luaevent and the use_libevent config option
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    27
6483
37b12475f648 net/server: Split up different backends in a nicer way. Add global config option 'server'
daurnimator <quae@daurnimator.com>
parents: 5776
diff changeset
    28
if server_type == "event" then
37b12475f648 net/server: Split up different backends in a nicer way. Add global config option 'server'
daurnimator <quae@daurnimator.com>
parents: 5776
diff changeset
    29
	if not pcall(require, "luaevent.core") then
11766
54530085dffe net.server: Fall back to default backend from libevent instead of always select
Kim Alvefur <zash@zash.se>
parents: 10857
diff changeset
    30
		log("error", "libevent not found, falling back to %s", default_backend);
54530085dffe net.server: Fall back to default backend from libevent instead of always select
Kim Alvefur <zash@zash.se>
parents: 10857
diff changeset
    31
		server_type = default_backend;
2162
22b6b1899a55 net.server: Log an error when libevent is requested, but luaevent is unavailable, and don't load luaevent when not requested.
Waqas Hussain <waqas20@gmail.com>
parents: 2136
diff changeset
    32
	end
22b6b1899a55 net.server: Log an error when libevent is requested, but luaevent is unavailable, and don't load luaevent when not requested.
Waqas Hussain <waqas20@gmail.com>
parents: 2136
diff changeset
    33
end
22b6b1899a55 net.server: Log an error when libevent is requested, but luaevent is unavailable, and don't load luaevent when not requested.
Waqas Hussain <waqas20@gmail.com>
parents: 2136
diff changeset
    34
2094
c69cb5c171e0 net.server: New net.server to choose the appropriate library from server_select/server_event based on the availability of luaevent and the use_libevent config option
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    35
local server;
6483
37b12475f648 net/server: Split up different backends in a nicer way. Add global config option 'server'
daurnimator <quae@daurnimator.com>
parents: 5776
diff changeset
    36
local set_config;
37b12475f648 net/server: Split up different backends in a nicer way. Add global config option 'server'
daurnimator <quae@daurnimator.com>
parents: 5776
diff changeset
    37
if server_type == "event" then
12978
ba409c67353b net: Prefix module imports with prosody namespace
Kim Alvefur <zash@zash.se>
parents: 12485
diff changeset
    38
	server = require "prosody.net.server_event";
4808
07d0a3a75c8a net.server, net.timer, net.server_select: Rearrange dependencies between these three modules. server.addtimer() is no longer a public function (renamed to _addtimer) and is not available at all from server_event (compat code removed to prevent traceback) (thanks Nulani)
Matthew Wild <mwild1@gmail.com>
parents: 3461
diff changeset
    39
5385
d663483036db net.server, _select: Reorganise configuration of server_select to be more like server_event
Kim Alvefur <zash@zash.se>
parents: 5383
diff changeset
    40
	local defaults = {};
6483
37b12475f648 net/server: Split up different backends in a nicer way. Add global config option 'server'
daurnimator <quae@daurnimator.com>
parents: 5776
diff changeset
    41
	for k,v in pairs(server.cfg) do
5385
d663483036db net.server, _select: Reorganise configuration of server_select to be more like server_event
Kim Alvefur <zash@zash.se>
parents: 5383
diff changeset
    42
		defaults[k] = v;
d663483036db net.server, _select: Reorganise configuration of server_select to be more like server_event
Kim Alvefur <zash@zash.se>
parents: 5383
diff changeset
    43
	end
6483
37b12475f648 net/server: Split up different backends in a nicer way. Add global config option 'server'
daurnimator <quae@daurnimator.com>
parents: 5776
diff changeset
    44
	function set_config(settings)
7546
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    45
		local event_settings = {
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    46
			ACCEPT_DELAY = settings.accept_retry_interval;
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    47
			ACCEPT_QUEUE = settings.tcp_backlog;
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    48
			CLEAR_DELAY = settings.event_clear_interval;
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    49
			CONNECT_TIMEOUT = settings.connect_timeout;
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    50
			DEBUG = settings.debug;
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    51
			HANDSHAKE_TIMEOUT = settings.ssl_handshake_timeout;
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    52
			MAX_CONNECTIONS = settings.max_connections;
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    53
			MAX_HANDSHAKE_ATTEMPTS = settings.max_ssl_handshake_roundtrips;
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    54
			MAX_READ_LENGTH = settings.max_receive_buffer_size;
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    55
			MAX_SEND_LENGTH = settings.max_send_buffer_size;
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    56
			READ_TIMEOUT = settings.read_timeout;
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    57
			WRITE_TIMEOUT = settings.send_timeout;
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    58
		};
5198
430797a8fc81 net.server: Make server_* configurable in the config file.
Kim Alvefur <zash@zash.se>
parents: 4811
diff changeset
    59
7546
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    60
		for k,default in pairs(defaults) do
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    61
			server.cfg[k] = event_settings[k] or default;
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    62
		end
6483
37b12475f648 net/server: Split up different backends in a nicer way. Add global config option 'server'
daurnimator <quae@daurnimator.com>
parents: 5776
diff changeset
    63
	end
37b12475f648 net/server: Split up different backends in a nicer way. Add global config option 'server'
daurnimator <quae@daurnimator.com>
parents: 5776
diff changeset
    64
elseif server_type == "select" then
11768
e2650d59db2d net.server_select: Deprecate and warn about it
Kim Alvefur <zash@zash.se>
parents: 11767
diff changeset
    65
	-- TODO Remove completely.
e2650d59db2d net.server_select: Deprecate and warn about it
Kim Alvefur <zash@zash.se>
parents: 11767
diff changeset
    66
	log("warn", "select is deprecated, the new default is epoll. For more info see https://prosody.im/doc/network_backend");
12978
ba409c67353b net: Prefix module imports with prosody namespace
Kim Alvefur <zash@zash.se>
parents: 12485
diff changeset
    67
	server = require "prosody.net.server_select";
6483
37b12475f648 net/server: Split up different backends in a nicer way. Add global config option 'server'
daurnimator <quae@daurnimator.com>
parents: 5776
diff changeset
    68
37b12475f648 net/server: Split up different backends in a nicer way. Add global config option 'server'
daurnimator <quae@daurnimator.com>
parents: 5776
diff changeset
    69
	local defaults = {};
37b12475f648 net/server: Split up different backends in a nicer way. Add global config option 'server'
daurnimator <quae@daurnimator.com>
parents: 5776
diff changeset
    70
	for k,v in pairs(server.getsettings()) do
37b12475f648 net/server: Split up different backends in a nicer way. Add global config option 'server'
daurnimator <quae@daurnimator.com>
parents: 5776
diff changeset
    71
		defaults[k] = v;
37b12475f648 net/server: Split up different backends in a nicer way. Add global config option 'server'
daurnimator <quae@daurnimator.com>
parents: 5776
diff changeset
    72
	end
37b12475f648 net/server: Split up different backends in a nicer way. Add global config option 'server'
daurnimator <quae@daurnimator.com>
parents: 5776
diff changeset
    73
	function set_config(settings)
7546
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    74
		local select_settings = {};
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    75
		for k,default in pairs(defaults) do
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    76
			select_settings[k] = settings[k] or default;
5198
430797a8fc81 net.server: Make server_* configurable in the config file.
Kim Alvefur <zash@zash.se>
parents: 4811
diff changeset
    77
		end
7546
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    78
		server.changesettings(select_settings);
23a8a26e8912 net.server: Fix whitespace
Kim Alvefur <zash@zash.se>
parents: 7102
diff changeset
    79
	end
2094
c69cb5c171e0 net.server: New net.server to choose the appropriate library from server_select/server_event based on the availability of luaevent and the use_libevent config option
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    80
else
12978
ba409c67353b net: Prefix module imports with prosody namespace
Kim Alvefur <zash@zash.se>
parents: 12485
diff changeset
    81
	server = require("prosody.net.server_"..server_type);
7548
0941b3ab77c0 net.server: Allow arbitrary network backends to be configured
Kim Alvefur <zash@zash.se>
parents: 7547
diff changeset
    82
	set_config = server.set_config;
7549
9606a99f8617 net.server: Monkey-patch in a fallback get_backend method if missing
Kim Alvefur <zash@zash.se>
parents: 7548
diff changeset
    83
	if not server.get_backend then
9606a99f8617 net.server: Monkey-patch in a fallback get_backend method if missing
Kim Alvefur <zash@zash.se>
parents: 7548
diff changeset
    84
		function server.get_backend()
9606a99f8617 net.server: Monkey-patch in a fallback get_backend method if missing
Kim Alvefur <zash@zash.se>
parents: 7548
diff changeset
    85
			return server_type;
9606a99f8617 net.server: Monkey-patch in a fallback get_backend method if missing
Kim Alvefur <zash@zash.se>
parents: 7548
diff changeset
    86
		end
9606a99f8617 net.server: Monkey-patch in a fallback get_backend method if missing
Kim Alvefur <zash@zash.se>
parents: 7548
diff changeset
    87
	end
2094
c69cb5c171e0 net.server: New net.server to choose the appropriate library from server_select/server_event based on the availability of luaevent and the use_libevent config option
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    88
end
c69cb5c171e0 net.server: New net.server to choose the appropriate library from server_select/server_event based on the availability of luaevent and the use_libevent config option
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    89
6485
410067cdeb2f net/server: If server.hook_signal exists, overwrite signal.signal; else make server.hook_signal == signal.signal
daurnimator <quae@daurnimator.com>
parents: 6483
diff changeset
    90
-- If server.hook_signal exists, replace signal.signal()
12978
ba409c67353b net: Prefix module imports with prosody namespace
Kim Alvefur <zash@zash.se>
parents: 12485
diff changeset
    91
local has_signal, signal = pcall(require, "prosody.util.signal");
6488
4224abbf0fdd net/server: Handle lack of util.signal correctly
daurnimator <quae@daurnimator.com>
parents: 6487
diff changeset
    92
if has_signal then
4224abbf0fdd net/server: Handle lack of util.signal correctly
daurnimator <quae@daurnimator.com>
parents: 6487
diff changeset
    93
	if server.hook_signal then
6485
410067cdeb2f net/server: If server.hook_signal exists, overwrite signal.signal; else make server.hook_signal == signal.signal
daurnimator <quae@daurnimator.com>
parents: 6483
diff changeset
    94
		function signal.signal(signal_id, handler)
410067cdeb2f net/server: If server.hook_signal exists, overwrite signal.signal; else make server.hook_signal == signal.signal
daurnimator <quae@daurnimator.com>
parents: 6483
diff changeset
    95
			if type(signal_id) == "string" then
410067cdeb2f net/server: If server.hook_signal exists, overwrite signal.signal; else make server.hook_signal == signal.signal
daurnimator <quae@daurnimator.com>
parents: 6483
diff changeset
    96
				signal_id = signal[signal_id:upper()];
410067cdeb2f net/server: If server.hook_signal exists, overwrite signal.signal; else make server.hook_signal == signal.signal
daurnimator <quae@daurnimator.com>
parents: 6483
diff changeset
    97
			end
410067cdeb2f net/server: If server.hook_signal exists, overwrite signal.signal; else make server.hook_signal == signal.signal
daurnimator <quae@daurnimator.com>
parents: 6483
diff changeset
    98
			if type(signal_id) ~= "number" then
410067cdeb2f net/server: If server.hook_signal exists, overwrite signal.signal; else make server.hook_signal == signal.signal
daurnimator <quae@daurnimator.com>
parents: 6483
diff changeset
    99
				return false, "invalid-signal";
410067cdeb2f net/server: If server.hook_signal exists, overwrite signal.signal; else make server.hook_signal == signal.signal
daurnimator <quae@daurnimator.com>
parents: 6483
diff changeset
   100
			end
410067cdeb2f net/server: If server.hook_signal exists, overwrite signal.signal; else make server.hook_signal == signal.signal
daurnimator <quae@daurnimator.com>
parents: 6483
diff changeset
   101
			return server.hook_signal(signal_id, handler);
410067cdeb2f net/server: If server.hook_signal exists, overwrite signal.signal; else make server.hook_signal == signal.signal
daurnimator <quae@daurnimator.com>
parents: 6483
diff changeset
   102
		end
6488
4224abbf0fdd net/server: Handle lack of util.signal correctly
daurnimator <quae@daurnimator.com>
parents: 6487
diff changeset
   103
	else
4224abbf0fdd net/server: Handle lack of util.signal correctly
daurnimator <quae@daurnimator.com>
parents: 6487
diff changeset
   104
		server.hook_signal = signal.signal;
6485
410067cdeb2f net/server: If server.hook_signal exists, overwrite signal.signal; else make server.hook_signal == signal.signal
daurnimator <quae@daurnimator.com>
parents: 6483
diff changeset
   105
	end
410067cdeb2f net/server: If server.hook_signal exists, overwrite signal.signal; else make server.hook_signal == signal.signal
daurnimator <quae@daurnimator.com>
parents: 6483
diff changeset
   106
else
6488
4224abbf0fdd net/server: Handle lack of util.signal correctly
daurnimator <quae@daurnimator.com>
parents: 6487
diff changeset
   107
	if not server.hook_signal then
4224abbf0fdd net/server: Handle lack of util.signal correctly
daurnimator <quae@daurnimator.com>
parents: 6487
diff changeset
   108
		server.hook_signal = function()
4224abbf0fdd net/server: Handle lack of util.signal correctly
daurnimator <quae@daurnimator.com>
parents: 6487
diff changeset
   109
			return false, "signal hooking not supported"
4224abbf0fdd net/server: Handle lack of util.signal correctly
daurnimator <quae@daurnimator.com>
parents: 6487
diff changeset
   110
		end
4224abbf0fdd net/server: Handle lack of util.signal correctly
daurnimator <quae@daurnimator.com>
parents: 6487
diff changeset
   111
	end
6485
410067cdeb2f net/server: If server.hook_signal exists, overwrite signal.signal; else make server.hook_signal == signal.signal
daurnimator <quae@daurnimator.com>
parents: 6483
diff changeset
   112
end
410067cdeb2f net/server: If server.hook_signal exists, overwrite signal.signal; else make server.hook_signal == signal.signal
daurnimator <quae@daurnimator.com>
parents: 6483
diff changeset
   113
7547
fb68aad9dc4d net.server: Only update configuration if server backend supports changing settings
Kim Alvefur <zash@zash.se>
parents: 7546
diff changeset
   114
if prosody and set_config then
12978
ba409c67353b net: Prefix module imports with prosody namespace
Kim Alvefur <zash@zash.se>
parents: 12485
diff changeset
   115
	local config_get = require "prosody.core.configmanager".get;
5198
430797a8fc81 net.server: Make server_* configurable in the config file.
Kim Alvefur <zash@zash.se>
parents: 4811
diff changeset
   116
	local function load_config()
5383
143670deee3e net.server: No sections in config anymore
Kim Alvefur <zash@zash.se>
parents: 5284
diff changeset
   117
		local settings = config_get("*", "network_settings") or {};
6483
37b12475f648 net/server: Split up different backends in a nicer way. Add global config option 'server'
daurnimator <quae@daurnimator.com>
parents: 5776
diff changeset
   118
		return set_config(settings);
5198
430797a8fc81 net.server: Make server_* configurable in the config file.
Kim Alvefur <zash@zash.se>
parents: 4811
diff changeset
   119
	end
430797a8fc81 net.server: Make server_* configurable in the config file.
Kim Alvefur <zash@zash.se>
parents: 4811
diff changeset
   120
	load_config();
430797a8fc81 net.server: Make server_* configurable in the config file.
Kim Alvefur <zash@zash.se>
parents: 4811
diff changeset
   121
	prosody.events.add_handler("config-reloaded", load_config);
430797a8fc81 net.server: Make server_* configurable in the config file.
Kim Alvefur <zash@zash.se>
parents: 4811
diff changeset
   122
end
430797a8fc81 net.server: Make server_* configurable in the config file.
Kim Alvefur <zash@zash.se>
parents: 4811
diff changeset
   123
13170
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
   124
if prosody and server.tls_builder then
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
   125
	local tls_builder = server.tls_builder;
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
   126
	-- resolving the basedir here avoids util.sslconfig depending on
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
   127
	-- prosody.paths.config
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
   128
	function server.tls_builder()
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
   129
		return tls_builder(prosody.paths.config or "")
e6e76f64ebb6 net.server: Handle loading from outside Prosody (e.g. Verse)
Kim Alvefur <zash@zash.se>
parents: 12978
diff changeset
   130
	end
12485
2ee27587fec7 net: refactor sslconfig to not depend on LuaSec
Jonas Schäfer <jonas@wielicki.name>
parents: 11768
diff changeset
   131
end
2ee27587fec7 net: refactor sslconfig to not depend on LuaSec
Jonas Schäfer <jonas@wielicki.name>
parents: 11768
diff changeset
   132
12978
ba409c67353b net: Prefix module imports with prosody namespace
Kim Alvefur <zash@zash.se>
parents: 12485
diff changeset
   133
-- require "prosody.net.server" shall now forever return this,
2136
23c687039652 net.server: Add some comments to explain to waqas how it all works :)
Matthew Wild <mwild1@gmail.com>
parents: 2105
diff changeset
   134
-- ie. server_select or server_event as chosen above.
2645
625d02b2a1a0 net.server: Remove redundant commented code and some trailing whitespace
Matthew Wild <mwild1@gmail.com>
parents: 2435
diff changeset
   135
return server;