Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: ejabberd 17.x
    • Component/s: Config
    • Labels:
      None

      Description

      Most parameters of ejabberd can be reconfigured in real time, either using the web interface, ejabberdctl or ad-hoc commands. However, there are other parameters that can't be modified by any means.

      The list of virtual hosts is read from ejabberd.cfg at startup, and there is not way to later add more vhosts, or disable existing ones without restarting ejabberd. This feature may seem easy to implement at first, but in reality requires several small changes in a lot of ejabberd core files. This also means that the debugging phase is a lot harder.

      I guess the people more interested in such a feature is probably server hosters.

        Issue Links

          Activity

          Hide
          benlangfeld Ben Langfeld added a comment -

          Is it possible for this to be back-ported to 2.1.x stable? We would be able to fund this if it can be done swiftly.

          Show
          benlangfeld Ben Langfeld added a comment - Is it possible for this to be back-ported to 2.1.x stable? We would be able to fund this if it can be done swiftly.
          Hide
          mansab.uppal Mansab Uppal added a comment - - edited

          So far, I have configured it properly (3.0.0-alpha-3) and also the virtual hosts are being added without any problems (from CLI and web interface both).

          However, while connecting a user to a virtual host, I am getting this error:

          =ERROR REPORT==== 2013-10-17 11:37:24 ===
          Generic server <0.3028.0> terminating
          Last message in was

          {become_controller,<0.3029.0>}

          When Server state ==

          {state,#Port<0.26326>,gen_tcp,none,undefined,65536, undefined,undefined,infinity}

          Reason for termination ==
          {bad_return_value,
          Unknown macro:

          {xml_parser,options,no_engine_registered,undefined}

          }

          I have read somewhere, that in this case expat-devel is required to installed before compiling exmpp (https://www.process-one.net/en/forum/viewthread/295/), I did that but no change.

          I know Alpha release is for test purposes (i.e why I use 2.1.12 for production). But, I would very much appreciate if you could help me out resolve this issue.

          By the way, is dynamic host creation supported in 13.10 ?

          Show
          mansab.uppal Mansab Uppal added a comment - - edited So far, I have configured it properly (3.0.0-alpha-3) and also the virtual hosts are being added without any problems (from CLI and web interface both). However, while connecting a user to a virtual host, I am getting this error: =ERROR REPORT==== 2013-10-17 11:37:24 === Generic server <0.3028.0> terminating Last message in was {become_controller,<0.3029.0>} When Server state == {state,#Port<0.26326>,gen_tcp,none,undefined,65536, undefined,undefined,infinity} Reason for termination == {bad_return_value, Unknown macro: {xml_parser,options,no_engine_registered,undefined} } I have read somewhere, that in this case expat-devel is required to installed before compiling exmpp ( https://www.process-one.net/en/forum/viewthread/295/ ), I did that but no change. I know Alpha release is for test purposes (i.e why I use 2.1.12 for production). But, I would very much appreciate if you could help me out resolve this issue. By the way, is dynamic host creation supported in 13.10 ?
          Hide
          neustradamus Neustradamus added a comment -

          It works for 2.1.13 and 13.xx?

          Show
          neustradamus Neustradamus added a comment - It works for 2.1.13 and 13.xx?
          Hide
          nathanb Nathan Bruning added a comment -

          We have a basic implementation of this for Ejabberd 14.12.

          Features:

          • Modules can send {add_vhost, Hostname}

            and

            {remove_vhost, Hostname}

            to ejabberd_local which will dynamically add/remove the vhost

          • Modules can send {add_host, Hostname}

            and

            {remove_host, Hostname}

            to a component (service) to dynamically add/remove the host to the service

          • Modules can use the add_vhost and remove_vhost hooks to be notified of vhost changes
          • On removal of a vhost, all shared rosters for that vhost are cleared

          This won't work as-is for clustered setups.

          To use this, you'll need an interface to actually add/remove the vhosts, perhaps via ejabberdctl.

          Source: https://github.com/Iperity/ejabberd/commit/6ba3f3ea6c9e4bc47e7475a7145ddf0ffbbddf7e

          Show
          nathanb Nathan Bruning added a comment - We have a basic implementation of this for Ejabberd 14.12. Features: Modules can send {add_vhost, Hostname} and {remove_vhost, Hostname} to ejabberd_local which will dynamically add/remove the vhost Modules can send {add_host, Hostname} and {remove_host, Hostname} to a component (service) to dynamically add/remove the host to the service Modules can use the add_vhost and remove_vhost hooks to be notified of vhost changes On removal of a vhost, all shared rosters for that vhost are cleared This won't work as-is for clustered setups. To use this, you'll need an interface to actually add/remove the vhosts, perhaps via ejabberdctl. Source: https://github.com/Iperity/ejabberd/commit/6ba3f3ea6c9e4bc47e7475a7145ddf0ffbbddf7e
          Hide
          cromain@process-one.net Christophe Romain added a comment -

          Feature added in 17.03

          Show
          cromain@process-one.net Christophe Romain added a comment - Feature added in 17.03

            People

            • Votes:
              7 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development