Добрый день, ALL.
Скажите есть ли какая нибудь возможность подключения новых виртуальных хостов к серверу без перезагрузки оного ?
Нашел в Contributions некий Additional commands for ejabberdctl
Там есть функция load config from file. Вопрос - это поможет мне решить проблему ? (Попробывал бы сам, но тестовой площадки нет, а играться с боевым сервером нет желания. И так без премии сижу 2й месяц :) )

Простой ответ: это не возможно
Простой ответ: это не возможно.
"Load config from file" не поможет при этой проблемы. Для каждого хоста надо сделать инициализацию, а "load config from file" это не делает.
Несколько месяцев назад я написал для того, а я его никогда не попробовал. Это был бы интересный эксперимент, а кажется, что вам эксперимента не хочется :)
legoscia,
legoscia, спасибо!
Готов таки пойти на эксперемент. Думаю рука не дрогнет оставить на Новый Год без премии :)
Отпиши пожалуйста поподробней как запустить твой скритп. Беглым взглядом выявил что это не bash скрипт :) А к сожалению мои познания в Erlang стремятся к нулю.
Если кому нибудь будет интересно:
Если кому нибудь интересно:
Благодаря legoscia и документации по ErLang я все таки нашел решение данной проблемы. Если кому-нибудь в дальнейшем надо будет решить такую же проблему - вот исходник модуля:
vhost.erl:
-module(vhost). -include("ejabberd.hrl"). -export([change_virtual_hosts/0]). change_virtual_hosts() -> OldHosts = ?MYHOSTS, ejabberd_config:start(), NewHosts = ?MYHOSTS, AddedHosts = NewHosts -- OldHosts, RemovedHosts = OldHosts -- NewHosts, %% I might have forgotten some... ejabberd_sm:start_link(), ejabberd_local:start_link(), ejabberd_auth:start(), lists:foreach( fun(Host) -> case ejabberd_config:get_local_option({modules, Host}) of undefined -> ok; Modules -> lists:foreach( fun({Module, _Args}) -> gen_mod:stop_module(Host, Module) end, Modules) end end, RemovedHosts), lists:foreach( fun(Host) -> case ejabberd_config:get_local_option({modules, Host}) of undefined -> ok; Modules -> lists:foreach( fun({Module, Args}) -> gen_mod:start_module(Host, Module, Args) end, Modules) end end, AddedHosts).Компиляем его в консоли Erlang
Полученный vhost.beam кидаем в директорию, где лежат все .beam файлы Ejabber'a
Вносим изменения в ejabberd.cfg и опять же в консоли erlang'a пишем:
Опробовано на версии ejabberd1.1.2