![]() mod_privilege current drops any non-privileged IQ received from a component with an error about it not being properly wrapped. While this might represent a mistake on the part of the component, it means that well- behaved components can no longer send non-privileged IQs (something they normally can do if mod_privilege isn't enabled). Since mod_privilege is intended to grant additional permissions, and not remove existing ones, route non-privileged IQs received from the component normally. This also removes the special-case for roster-query IQ stanzas, since those are also non-privileged and will be routed along with any other non-privileged IQ packet. This mirrors the privileged-IQ/everything-else structure of the XEP, which defined the handling of privileged IQ stanzas and leaves all other IQ stanzas as defined in their own specs. To make this clearer, the predicate function now returns distinct results indicating privileged IQs, non-privileged IQs, and error conditions, rather than treating non-privilege IQs as an error that gets handled by routing the packet normally. |
||
---|---|---|
.devcontainer | ||
.github | ||
.vscode | ||
_checkouts/configure_deps | ||
config | ||
include | ||
lib | ||
m4 | ||
man | ||
plugins | ||
priv | ||
rel | ||
sql | ||
src | ||
test | ||
tools | ||
.dockerignore | ||
.gitignore | ||
.shellcheckrc | ||
autogen.sh | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
COMPILE.md | ||
configure.ac | ||
configure.bat | ||
CONTAINER.md | ||
CONTRIBUTING.md | ||
CONTRIBUTORS.md | ||
COPYING | ||
cover.spec | ||
ejabberd.doap | ||
ejabberd.init.template | ||
ejabberd.service.template | ||
ejabberd.yml.example | ||
ejabberdctl.cfg.example | ||
ejabberdctl.template | ||
elvis.config | ||
erlang_ls.config | ||
inetrc | ||
install-sh | ||
Makefile.in | ||
mix.exs | ||
mix.lock | ||
README.md | ||
rebar | ||
rebar.config | ||
rebar.config.script | ||
rebar.lock | ||
rebar3 | ||
SECURITY.md | ||
vars.config.in |
ejabberd is an open-source, robust, scalable and extensible realtime platform built using Erlang/OTP, that includes XMPP Server, MQTT Broker and SIP Service.
Check the features in ejabberd.im, ejabberd Docs, ejabberd at ProcessOne, and the list of supported protocols in ProcessOne and XMPP.org.
Installation
There are several ways to install ejabberd:
- Source code: compile yourself, see COMPILE
- Installers:
- ProcessOne Download Page or GitHub Releases for releases.
- GitHub Actions for master branch (
run
/deb
/rpm
forx64
andarm64
)
- Docker Containers:
ecs
container image: Docker Hub and Github Packages, see ecs README (forx64
)ejabberd
container image: Github Packages for releases and master branch, see CONTAINER (forx64
andarm64
)
- Using your Operating System package
- Using the Homebrew package manager
More info can be found in the Installation
part of ejabberd Docs.
Documentation
Please check the ejabberd Docs website.
When compiling from source code, you can get some help with:
./configure --help
make help
Once ejabberd is installed, try:
ejabberdctl help
man ejabberd.yml
Development
Bug reports and features are tracked using GitHub Issues, please check CONTRIBUTING for details.
Translations can be improved online using Weblate or in your local machine as explained in Localization.
Documentation for developers is available in ejabberd docs: Developers.
There are nightly builds of ejabberd, both for master
branch and for Pull Requests:
- Installers: go to GitHub Actions: Installers, open the most recent commit, on the bottom of that commit page, download the
ejabberd-packages.zip
artifact. ejabberd
container image: go to ejabberd Github Packages
Security reports or concerns should preferably be reported privately, please send an email to the address: contact at process-one dot net or some other method from ProcessOne Contact.
For commercial offering and support, including ejabberd Business Edition and Fluux (ejabberd in the Cloud), please check ProcessOne ejabberd page.
Security
For information on how to report security vulnerabilities, please refer to the SECURITY.md file. It contains guidelines on how to report vulnerabilities privately and securely, ensuring that any issues are addressed in a timely and confidential manner.
Community
There are several places to get in touch with other ejabberd developers and administrators:
- ejabberd XMPP chatroom: ejabberd@conference.process-one.net
- GitHub Discussions
- Stack Overflow
License
- ejabberd is released under the GNU General Public License v2 (see COPYING)
- ejabberd translations under MIT License.