From ce0c39be0b40c38e8f7927d0fb0cfabac378ea93 Mon Sep 17 00:00:00 2001 From: Martin Milata Date: Mon, 4 May 2020 00:10:33 +0200 Subject: nixos/prosody: add MUC extraConfig, fix extraConfig order Add extraConfig option for the muc submodule. Also move the global extraConfig before all components and virtualhosts, because the manual states: The configuration is divided into two parts. The first part is known as the "global" section. All settings here apply to the whole server, and are the default for all virtual hosts. The second half of the file is a series of VirtualHost and Component definitions. Settings under each VirtualHost or Component line apply only to that host. Before, if at least one muc was defined, or uploadHttp enabled, the global extraConfig would end up after "muc" or "http_upload" component making it apply to that component only and not globally. --- nixos/modules/services/networking/prosody.nix | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'nixos') diff --git a/nixos/modules/services/networking/prosody.nix b/nixos/modules/services/networking/prosody.nix index 9825613d809f..cdd341c9fb62 100644 --- a/nixos/modules/services/networking/prosody.nix +++ b/nixos/modules/services/networking/prosody.nix @@ -382,6 +382,11 @@ let default = "en"; description = "Default room language."; }; + extraConfig = mkOption { + type = types.lines; + default = ""; + description = "Additional MUC specific configuration"; + }; }; }; @@ -792,6 +797,8 @@ in https_ports = ${toLua cfg.httpsPorts} + ${ cfg.extraConfig } + ${lib.concatMapStrings (muc: '' Component ${toLua muc.domain} "muc" modules_enabled = { "muc_mam"; ${optionalString muc.vcard_muc ''"vcard_muc";'' } } @@ -809,8 +816,8 @@ in muc_room_default_change_subject = ${toLua muc.roomDefaultChangeSubject} muc_room_default_history_length = ${toLua muc.roomDefaultHistoryLength} muc_room_default_language = ${toLua muc.roomDefaultLanguage} - - '') cfg.muc} + ${ muc.extraConfig } + '') cfg.muc} ${ lib.optionalString (cfg.uploadHttp != null) '' Component ${toLua cfg.uploadHttp.domain} "http_upload" @@ -820,8 +827,6 @@ in http_upload_path = ${toLua cfg.uploadHttp.httpUploadPath} ''} - ${ cfg.extraConfig } - ${ lib.concatStringsSep "\n" (lib.mapAttrsToList (n: v: '' VirtualHost "${v.domain}" enabled = ${boolToString v.enabled}; -- cgit 1.4.1 From 96146a947678aaef6ba1ec5b8887cc79a70603ca Mon Sep 17 00:00:00 2001 From: Martin Milata Date: Mon, 4 May 2020 00:14:42 +0200 Subject: nixosTests.prosodyMysql: fix Since 8aea5288 xmpp-sendmessage.nix tests MUC and HTTP upload, change the test to reflect this. --- nixos/tests/xmpp/prosody-mysql.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'nixos') diff --git a/nixos/tests/xmpp/prosody-mysql.nix b/nixos/tests/xmpp/prosody-mysql.nix index 0507227021b2..9a00bcabf389 100644 --- a/nixos/tests/xmpp/prosody-mysql.nix +++ b/nixos/tests/xmpp/prosody-mysql.nix @@ -6,6 +6,11 @@ import ../make-test-python.nix { environment.systemPackages = [ (pkgs.callPackage ./xmpp-sendmessage.nix { connectTo = nodes.server.config.networking.primaryIPAddress; }) ]; + networking.extraHosts = '' + ${nodes.server.config.networking.primaryIPAddress} example.com + ${nodes.server.config.networking.primaryIPAddress} conference.example.com + ${nodes.server.config.networking.primaryIPAddress} uploads.example.com + ''; }; server = { config, pkgs, ... }: { nixpkgs.overlays = [ @@ -18,6 +23,8 @@ import ../make-test-python.nix { ]; networking.extraHosts = '' ${config.networking.primaryIPAddress} example.com + ${config.networking.primaryIPAddress} conference.example.com + ${config.networking.primaryIPAddress} uploads.example.com ''; networking.firewall.enable = false; services.prosody = { @@ -39,6 +46,14 @@ import ../make-test-python.nix { domain = "example.com"; enabled = true; }; + muc = [ + { + domain = "conference.example.com"; + } + ]; + uploadHttp = { + domain = "uploads.example.com"; + }; }; }; mysql = { config, pkgs, ... }: { -- cgit 1.4.1