From 4c68f4421bc329b494d39323bc517d00aed3d29b Mon Sep 17 00:00:00 2001 From: Christophe Romain Date: Wed, 11 Mar 2015 14:19:35 +0100 Subject: [PATCH] Cleanup for module packaging support in ejabberd --- README-broken.md | 7 +- README.md | 54 +- atom_pubsub/COPYING | 342 +++++++++ atom_pubsub/Emakefile | 4 - atom_pubsub/{README => README.txt} | 22 - atom_pubsub/atom_pubsub.spec | 5 + atom_pubsub/build.bat | 1 - atom_pubsub/build.sh | 2 - atom_pubsub/conf/atom_pubsub.yml | 7 + ejabberd-dev/README.txt | 5 - ejabberd-dev/ebin/.keepme | 0 ejabberd-dev/include/adhoc.hrl | 44 -- ejabberd-dev/include/ejabberd.hrl | 51 -- ejabberd-dev/include/ejabberd_commands.hrl | 74 -- ejabberd-dev/include/ejabberd_config.hrl | 30 - ejabberd-dev/include/ejabberd_ctl.hrl | 27 - ejabberd-dev/include/ejabberd_http.hrl | 36 - ejabberd-dev/include/ejabberd_web_admin.hrl | 104 --- ejabberd-dev/include/jlib.hrl | 501 ------------ ejabberd-dev/include/lager.hrl | 102 --- ejabberd-dev/include/logger.hrl | 56 -- ejabberd-dev/include/mod_muc_room.hrl | 116 --- ejabberd-dev/include/mod_roster.hrl | 41 - ejabberd-dev/include/ns.hrl | 152 ---- ejabberd-dev/include/pubsub.hrl | 257 ------- ejabberd-dev/include/xml.hrl | 38 - ejabberd-dev/src/gen_mod.erl | 278 ------- ejabberd-dev/src/lager_transform.erl | 279 ------- ejabberd-dev/src/lager_util.erl | 710 ------------------ ejabberd_auth_http/Emakefile | 2 - ejabberd_auth_http/{README.md => README.txt} | 0 ejabberd_auth_http/build.bat | 1 - ejabberd_auth_http/build.sh | 2 - ejabberd_auth_http/ebin/.keepme | 0 ejabberd_auth_http/ejabberd_auth_http.spec | 5 + {atom_pubsub/ebin => extra}/.keepme | 0 extract-mod-translations.sh | 27 - ircd/Emakefile | 1 - ircd/build.bat | 1 - ircd/build.sh | 2 - ircd/ebin/.keepme | 0 ircd/ircd.spec | 5 + mod_admin_extra/Emakefile | 2 - mod_admin_extra/build.bat | 1 - mod_admin_extra/build.sh | 2 - mod_admin_extra/conf/mod_admin_extra.yml | 23 + mod_admin_extra/ebin/.keepme | 0 mod_admin_extra/mod_admin_extra.spec | 5 + mod_archive/{LICENSE.txt => COPYING} | 0 mod_archive/Emakefile | 5 - mod_archive/build.bat | 1 - mod_archive/build.sh | 2 - mod_archive/ebin/.keepme | 0 mod_archive/mod_archive.spec | 5 + .../msgs/mod_archive_webview.pot | 0 .../msgs/pl.mod_archive_webview.po | 0 mod_cron/Emakefile | 2 - mod_cron/build.bat | 1 - mod_cron/build.sh | 2 - mod_cron/conf/mod_cron.yml | 2 + mod_cron/ebin/.keepme | 0 mod_cron/mod_cron.spec | 5 + mod_log_chat/{LICENSE.txt => COPYING} | 0 mod_log_chat/Emakefile | 4 - mod_log_chat/Makefile | 14 - mod_log_chat/build.bat | 1 - mod_log_chat/build.sh | 2 - mod_log_chat/conf/ejabberd.conf.sample | 28 - mod_log_chat/conf/mod_log_chat.yml | 20 + mod_log_chat/ebin/.keepme | 0 mod_log_chat/mod_log_chat.spec | 5 + mod_logsession/Emakefile | 2 - mod_logsession/build.bat | 1 - mod_logsession/build.sh | 2 - mod_logsession/conf/mod_logsession.yml | 3 + mod_logsession/ebin/.keepme | 0 mod_logsession/mod_logsession.spec | 5 + mod_logxml/Emakefile | 2 - mod_logxml/build.bat | 1 - mod_logxml/build.sh | 2 - mod_logxml/conf/mod_logxml.yml | 17 + mod_logxml/ebin/.keepme | 0 mod_logxml/mod_logxml.spec | 5 + mod_mam/Emakefile | 4 - mod_mam/build.bat | 1 - mod_mam/build.sh | 2 - mod_mam/conf/mod_mam.yml | 4 + mod_mam/ebin/.keepme | 0 mod_mam/mod_mam.spec | 5 + mod_message_log/Emakefile | 2 - mod_message_log/build.bat | 1 - mod_message_log/build.sh | 2 - mod_message_log/conf/mod_message_log.yml | 3 + mod_message_log/ebin/.keepme | 0 mod_message_log/mod_message_log.spec | 5 + mod_muc_admin/Emakefile | 2 - mod_muc_admin/README.txt | 11 - mod_muc_admin/build.bat | 1 - mod_muc_admin/build.sh | 2 - mod_muc_admin/conf/mod_muc_admin.yml | 2 + mod_muc_admin/ebin/.keepme | 0 mod_muc_admin/mod_muc_admin.spec | 5 + mod_muc_log_http/Emakefile | 2 - mod_muc_log_http/build.bat | 1 - mod_muc_log_http/build.sh | 2 - mod_muc_log_http/conf/mod_muc_log_http.yml | 11 + mod_muc_log_http/ebin/.keepme | 0 mod_muc_log_http/mod_muc_log_http.spec | 5 + mod_multicast/Emakefile | 6 - mod_multicast/build.bat | 1 - mod_multicast/build.sh | 2 - mod_multicast/conf/mod_multicast.yml | 2 + mod_multicast/ebin/.keepme | 0 mod_multicast/mod_multicast.spec | 5 + mod_openid/Emakefile | 1 - mod_openid/{README => README.txt} | 0 mod_openid/build.bat | 1 - mod_openid/build.sh | 2 - mod_openid/ebin/.keepme | 0 mod_openid/mod_openid.spec | 5 + mod_post_log/Emakefile | 2 - mod_post_log/{README.md => README.txt} | 0 mod_post_log/build.sh | 2 - mod_post_log/conf/mod_post_log.yml | 3 + mod_post_log/mod_post_log.spec | 5 + mod_profile/Emakefile | 2 - mod_profile/build.bat | 1 - mod_profile/build.sh | 2 - mod_profile/conf/mod_profile.yml | 2 + mod_profile/ebin/.keepme | 0 mod_profile/mod_profile.spec | 5 + mod_rest/Emakefile | 4 - mod_rest/build.bat | 1 - mod_rest/build.sh | 2 - mod_rest/ebin/.keepme | 0 mod_rest/mod_rest.spec | 5 + mod_s2s_log/COPYING | 343 +++++++++ mod_s2s_log/Emakefile | 2 - mod_s2s_log/build.bat | 1 - mod_s2s_log/build.sh | 2 - mod_s2s_log/conf/mod_s2s_log.yml | 3 + mod_s2s_log/ebin/.keepme | 0 mod_s2s_log/mod_s2s_log.spec | 5 + mod_shcommands/Emakefile | 2 - mod_shcommands/build.bat | 1 - mod_shcommands/build.sh | 2 - mod_shcommands/ebin/.keepme | 0 mod_shcommands/mod_shcommands.spec | 5 + mod_statsdx/Emakefile | 3 - mod_statsdx/build.bat | 1 - mod_statsdx/build.sh | 2 - mod_statsdx/conf/mod_statsdx.yml | 10 + mod_statsdx/ebin/.keepme | 0 mod_statsdx/mod_statsdx.spec | 5 + mod_webpresence/Emakefile | 2 - mod_webpresence/build.bat | 1 - mod_webpresence/build.sh | 2 - mod_webpresence/conf/ejabberd.cfg.example | 4 - mod_webpresence/conf/mod_webpresence.yml | 11 + mod_webpresence/ebin/.keepme | 0 mod_webpresence/mod_webpresence.spec | 5 + .../{src => priv}/msgs/es.mod_webpresence.msg | 0 .../{src => priv}/msgs/es.mod_webpresence.po | 0 .../{src => priv}/msgs/mod_webpresence.pot | 0 .../{src => priv}/msgs/wa.mod_webpresence.msg | 0 .../{src => priv}/msgs/wa.mod_webpresence.po | 0 .../pixmaps/3d-dot1/available.gif | Bin .../{data => priv}/pixmaps/3d-dot1/away.gif | Bin .../{data => priv}/pixmaps/3d-dot1/chat.gif | Bin .../{data => priv}/pixmaps/3d-dot1/dnd.gif | Bin .../pixmaps/3d-dot1/unavailable.gif | Bin .../{data => priv}/pixmaps/3d-dot1/xa.gif | Bin .../pixmaps/3d-dot2/available.gif | Bin .../{data => priv}/pixmaps/3d-dot2/away.gif | Bin .../{data => priv}/pixmaps/3d-dot2/chat.gif | Bin .../{data => priv}/pixmaps/3d-dot2/dnd.gif | Bin .../pixmaps/3d-dot2/unavailable.gif | Bin .../{data => priv}/pixmaps/3d-dot2/xa.gif | Bin .../pixmaps/alphamod/available.png | Bin .../{data => priv}/pixmaps/alphamod/away.png | Bin .../{data => priv}/pixmaps/alphamod/chat.png | Bin .../{data => priv}/pixmaps/alphamod/dnd.png | Bin .../pixmaps/alphamod/unavailable.png | Bin .../{data => priv}/pixmaps/alphamod/xa.png | Bin .../pixmaps/amibulb/available.png | Bin .../{data => priv}/pixmaps/amibulb/away.png | Bin .../{data => priv}/pixmaps/amibulb/chat.png | Bin .../{data => priv}/pixmaps/amibulb/dnd.png | Bin .../pixmaps/amibulb/unavailable.png | Bin .../{data => priv}/pixmaps/amibulb/xa.png | Bin .../pixmaps/amigadu/available.gif | Bin .../{data => priv}/pixmaps/amigadu/away.gif | Bin .../{data => priv}/pixmaps/amigadu/chat.gif | Bin .../{data => priv}/pixmaps/amigadu/dnd.gif | Bin .../pixmaps/amigadu/unavailable.gif | Bin .../{data => priv}/pixmaps/amigadu/xa.gif | Bin .../pixmaps/amiglobe/available.png | Bin .../{data => priv}/pixmaps/amiglobe/away.png | Bin .../{data => priv}/pixmaps/amiglobe/chat.png | Bin .../{data => priv}/pixmaps/amiglobe/dnd.png | Bin .../pixmaps/amiglobe/unavailable.png | Bin .../{data => priv}/pixmaps/amiglobe/xa.png | Bin .../pixmaps/amiicq/available.gif | Bin .../{data => priv}/pixmaps/amiicq/away.gif | Bin .../{data => priv}/pixmaps/amiicq/chat.gif | Bin .../{data => priv}/pixmaps/amiicq/dnd.gif | Bin .../pixmaps/amiicq/unavailable.gif | Bin .../{data => priv}/pixmaps/amiicq/xa.gif | Bin .../pixmaps/amimsn/available.png | Bin .../{data => priv}/pixmaps/amimsn/away.png | Bin .../{data => priv}/pixmaps/amimsn/chat.png | Bin .../{data => priv}/pixmaps/amimsn/dnd.png | Bin .../pixmaps/amimsn/unavailable.png | Bin .../{data => priv}/pixmaps/amimsn/xa.png | Bin .../pixmaps/amistellar/available.gif | Bin .../pixmaps/amistellar/away.gif | Bin .../pixmaps/amistellar/chat.gif | Bin .../{data => priv}/pixmaps/amistellar/dnd.gif | Bin .../pixmaps/amistellar/unavailable.gif | Bin .../{data => priv}/pixmaps/amistellar/xa.gif | Bin .../pixmaps/amitlen/available.gif | Bin .../{data => priv}/pixmaps/amitlen/away.gif | Bin .../{data => priv}/pixmaps/amitlen/chat.gif | Bin .../{data => priv}/pixmaps/amitlen/dnd.gif | Bin .../pixmaps/amitlen/unavailable.gif | Bin .../{data => priv}/pixmaps/amitlen/xa.gif | Bin .../{data => priv}/pixmaps/bulb/available.gif | Bin .../{data => priv}/pixmaps/bulb/away.gif | Bin .../{data => priv}/pixmaps/bulb/chat.gif | Bin .../{data => priv}/pixmaps/bulb/dnd.gif | Bin .../pixmaps/bulb/unavailable.gif | Bin .../{data => priv}/pixmaps/bulb/xa.gif | Bin .../pixmaps/chrome-pl/available.gif | Bin .../{data => priv}/pixmaps/chrome-pl/away.gif | Bin .../{data => priv}/pixmaps/chrome-pl/chat.gif | Bin .../{data => priv}/pixmaps/chrome-pl/dnd.gif | Bin .../pixmaps/chrome-pl/unavailable.gif | Bin .../{data => priv}/pixmaps/chrome-pl/xa.gif | Bin .../pixmaps/crystal/available.png | Bin .../{data => priv}/pixmaps/crystal/away.png | Bin .../{data => priv}/pixmaps/crystal/chat.png | Bin .../{data => priv}/pixmaps/crystal/dnd.png | Bin .../pixmaps/crystal/unavailable.png | Bin .../{data => priv}/pixmaps/crystal/xa.png | Bin .../pixmaps/crystal2/available.gif | Bin .../{data => priv}/pixmaps/crystal2/away.gif | Bin .../{data => priv}/pixmaps/crystal2/chat.gif | Bin .../{data => priv}/pixmaps/crystal2/dnd.gif | Bin .../pixmaps/crystal2/unavailable.gif | Bin .../{data => priv}/pixmaps/crystal2/xa.gif | Bin .../pixmaps/crystal3/available.gif | Bin .../{data => priv}/pixmaps/crystal3/away.gif | Bin .../{data => priv}/pixmaps/crystal3/chat.gif | Bin .../{data => priv}/pixmaps/crystal3/dnd.gif | Bin .../pixmaps/crystal3/unavailable.gif | Bin .../{data => priv}/pixmaps/crystal3/xa.gif | Bin .../pixmaps/dcraven/available.png | Bin .../{data => priv}/pixmaps/dcraven/away.png | Bin .../{data => priv}/pixmaps/dcraven/chat.png | Bin .../{data => priv}/pixmaps/dcraven/dnd.png | Bin .../pixmaps/dcraven/unavailable.png | Bin .../{data => priv}/pixmaps/dcraven/xa.png | Bin .../pixmaps/dudes/available.gif | Bin .../{data => priv}/pixmaps/dudes/away.gif | Bin .../{data => priv}/pixmaps/dudes/chat.gif | Bin .../{data => priv}/pixmaps/dudes/dnd.gif | Bin .../pixmaps/dudes/unavailable.gif | Bin .../{data => priv}/pixmaps/dudes/xa.gif | Bin .../pixmaps/frickenhuge/available.gif | Bin .../pixmaps/frickenhuge/away.gif | Bin .../pixmaps/frickenhuge/chat.gif | Bin .../pixmaps/frickenhuge/dnd.gif | Bin .../pixmaps/frickenhuge/unavailable.gif | Bin .../{data => priv}/pixmaps/frickenhuge/xa.gif | Bin .../pixmaps/gabber/available.gif | Bin .../{data => priv}/pixmaps/gabber/away.gif | Bin .../{data => priv}/pixmaps/gabber/chat.gif | Bin .../{data => priv}/pixmaps/gabber/dnd.gif | Bin .../pixmaps/gabber/unavailable.gif | Bin .../{data => priv}/pixmaps/gabber/xa.gif | Bin .../{data => priv}/pixmaps/gg/available.gif | Bin .../{data => priv}/pixmaps/gg/away.gif | Bin .../{data => priv}/pixmaps/gg/chat.gif | Bin .../{data => priv}/pixmaps/gg/dnd.gif | Bin .../{data => priv}/pixmaps/gg/unavailable.gif | Bin .../{data => priv}/pixmaps/gg/xa.gif | Bin .../pixmaps/gnome/available.png | Bin .../{data => priv}/pixmaps/gnome/away.png | Bin .../{data => priv}/pixmaps/gnome/chat.png | Bin .../{data => priv}/pixmaps/gnome/dnd.png | Bin .../pixmaps/gnome/unavailable.png | Bin .../{data => priv}/pixmaps/gnome/xa.png | Bin .../pixmaps/gossip/available.png | Bin .../{data => priv}/pixmaps/gossip/away.png | Bin .../{data => priv}/pixmaps/gossip/chat.png | Bin .../{data => priv}/pixmaps/gossip/dnd.png | Bin .../pixmaps/gossip/unavailable.png | Bin .../{data => priv}/pixmaps/gossip/xa.png | Bin .../{data => priv}/pixmaps/gota/available.png | Bin .../{data => priv}/pixmaps/gota/away.png | Bin .../{data => priv}/pixmaps/gota/chat.png | Bin .../{data => priv}/pixmaps/gota/dnd.png | Bin .../pixmaps/gota/unavailable.png | Bin .../{data => priv}/pixmaps/gota/xa.png | Bin .../pixmaps/gtalk/available.png | Bin .../{data => priv}/pixmaps/gtalk/away.png | Bin .../{data => priv}/pixmaps/gtalk/chat.png | Bin .../{data => priv}/pixmaps/gtalk/dnd.png | Bin .../pixmaps/gtalk/unavailable.png | Bin .../{data => priv}/pixmaps/gtalk/xa.png | Bin .../{data => priv}/pixmaps/icq/available.gif | Bin .../{data => priv}/pixmaps/icq/away.gif | Bin .../{data => priv}/pixmaps/icq/chat.gif | Bin .../{data => priv}/pixmaps/icq/dnd.gif | Bin .../pixmaps/icq/unavailable.gif | Bin .../{data => priv}/pixmaps/icq/xa.gif | Bin .../pixmaps/invision/available.gif | Bin .../{data => priv}/pixmaps/invision/away.gif | Bin .../{data => priv}/pixmaps/invision/chat.gif | Bin .../{data => priv}/pixmaps/invision/dnd.gif | Bin .../pixmaps/invision/unavailable.gif | Bin .../{data => priv}/pixmaps/invision/xa.gif | Bin .../pixmaps/jabberbulb/available.png | Bin .../pixmaps/jabberbulb/away.png | Bin .../pixmaps/jabberbulb/chat.png | Bin .../{data => priv}/pixmaps/jabberbulb/dnd.png | Bin .../pixmaps/jabberbulb/unavailable.png | Bin .../{data => priv}/pixmaps/jabberbulb/xa.png | Bin .../pixmaps/jsf-jabber-text/available.png | Bin .../pixmaps/jsf-jabber-text/away.png | Bin .../pixmaps/jsf-jabber-text/chat.png | Bin .../pixmaps/jsf-jabber-text/dnd.png | Bin .../pixmaps/jsf-jabber-text/unavailable.png | Bin .../pixmaps/jsf-jabber-text/xa.png | Bin .../pixmaps/jsf-text/available.png | Bin .../{data => priv}/pixmaps/jsf-text/away.png | Bin .../{data => priv}/pixmaps/jsf-text/chat.png | Bin .../{data => priv}/pixmaps/jsf-text/dnd.png | Bin .../pixmaps/jsf-text/unavailable.png | Bin .../{data => priv}/pixmaps/jsf-text/xa.png | Bin .../pixmaps/jsf-text2/available.png | Bin .../{data => priv}/pixmaps/jsf-text2/away.png | Bin .../{data => priv}/pixmaps/jsf-text2/chat.png | Bin .../{data => priv}/pixmaps/jsf-text2/dnd.png | Bin .../pixmaps/jsf-text2/unavailable.png | Bin .../{data => priv}/pixmaps/jsf-text2/xa.png | Bin .../pixmaps/koniczynek/available.gif | Bin .../pixmaps/koniczynek/away.gif | Bin .../pixmaps/koniczynek/chat.gif | Bin .../{data => priv}/pixmaps/koniczynek/dnd.gif | Bin .../pixmaps/koniczynek/unavailable.gif | Bin .../{data => priv}/pixmaps/koniczynek/xa.gif | Bin .../{data => priv}/pixmaps/licq/available.gif | Bin .../{data => priv}/pixmaps/licq/away.gif | Bin .../{data => priv}/pixmaps/licq/chat.gif | Bin .../{data => priv}/pixmaps/licq/dnd.gif | Bin .../pixmaps/licq/unavailable.gif | Bin .../{data => priv}/pixmaps/licq/xa.gif | Bin .../pixmaps/nahuatl/available.gif | Bin .../{data => priv}/pixmaps/nahuatl/away.gif | Bin .../{data => priv}/pixmaps/nahuatl/chat.gif | Bin .../{data => priv}/pixmaps/nahuatl/dnd.gif | Bin .../pixmaps/nahuatl/unavailable.gif | Bin .../{data => priv}/pixmaps/nahuatl/xa.gif | Bin .../pixmaps/nuvola/available.png | Bin .../{data => priv}/pixmaps/nuvola/away.png | Bin .../{data => priv}/pixmaps/nuvola/chat.png | Bin .../{data => priv}/pixmaps/nuvola/dnd.png | Bin .../pixmaps/nuvola/unavailable.png | Bin .../{data => priv}/pixmaps/nuvola/xa.png | Bin .../pixmaps/phpbb/available.gif | Bin .../{data => priv}/pixmaps/phpbb/away.gif | Bin .../{data => priv}/pixmaps/phpbb/chat.gif | Bin .../{data => priv}/pixmaps/phpbb/dnd.gif | Bin .../pixmaps/phpbb/unavailable.gif | Bin .../{data => priv}/pixmaps/phpbb/xa.gif | Bin .../pixmaps/pogoda/available.gif | Bin .../{data => priv}/pixmaps/pogoda/away.gif | Bin .../{data => priv}/pixmaps/pogoda/chat.gif | Bin .../{data => priv}/pixmaps/pogoda/dnd.gif | Bin .../pixmaps/pogoda/unavailable.gif | Bin .../{data => priv}/pixmaps/pogoda/xa.gif | Bin .../{data => priv}/pixmaps/psi/available.gif | Bin .../{data => priv}/pixmaps/psi/away.gif | Bin .../{data => priv}/pixmaps/psi/chat.gif | Bin .../{data => priv}/pixmaps/psi/dnd.gif | Bin .../pixmaps/psi/unavailable.gif | Bin .../{data => priv}/pixmaps/psi/xa.gif | Bin .../pixmaps/simple/available.png | Bin .../{data => priv}/pixmaps/simple/away.png | Bin .../{data => priv}/pixmaps/simple/chat.png | Bin .../{data => priv}/pixmaps/simple/dnd.png | Bin .../pixmaps/simple/unavailable.png | Bin .../{data => priv}/pixmaps/simple/xa.png | Bin .../pixmaps/simplebulb/available.png | Bin .../pixmaps/simplebulb/away.png | Bin .../pixmaps/simplebulb/chat.png | Bin .../{data => priv}/pixmaps/simplebulb/dnd.png | Bin .../pixmaps/simplebulb/unavailable.png | Bin .../{data => priv}/pixmaps/simplebulb/xa.png | Bin .../pixmaps/stellar/available.png | Bin .../{data => priv}/pixmaps/stellar/away.png | Bin .../{data => priv}/pixmaps/stellar/chat.png | Bin .../{data => priv}/pixmaps/stellar/dnd.png | Bin .../pixmaps/stellar/unavailable.png | Bin .../{data => priv}/pixmaps/stellar/xa.png | Bin .../pixmaps/stellar2/available.gif | Bin .../{data => priv}/pixmaps/stellar2/away.gif | Bin .../{data => priv}/pixmaps/stellar2/chat.gif | Bin .../{data => priv}/pixmaps/stellar2/dnd.gif | Bin .../pixmaps/stellar2/unavailable.gif | Bin .../{data => priv}/pixmaps/stellar2/xa.gif | Bin .../{data => priv}/pixmaps/sun/available.png | Bin .../{data => priv}/pixmaps/sun/away.png | Bin .../{data => priv}/pixmaps/sun/chat.png | Bin .../{data => priv}/pixmaps/sun/dnd.png | Bin .../pixmaps/sun/unavailable.png | Bin .../{data => priv}/pixmaps/sun/xa.png | Bin .../{data => priv}/pixmaps/tux/available.gif | Bin .../{data => priv}/pixmaps/tux/away.gif | Bin .../{data => priv}/pixmaps/tux/chat.gif | Bin .../{data => priv}/pixmaps/tux/dnd.gif | Bin .../pixmaps/tux/unavailable.gif | Bin .../{data => priv}/pixmaps/tux/xa.gif | Bin .../pixmaps/wpkontakt/available.gif | Bin .../{data => priv}/pixmaps/wpkontakt/away.gif | Bin .../{data => priv}/pixmaps/wpkontakt/chat.gif | Bin .../{data => priv}/pixmaps/wpkontakt/dnd.gif | Bin .../pixmaps/wpkontakt/unavailable.gif | Bin .../{data => priv}/pixmaps/wpkontakt/xa.gif | Bin .../pixmaps/yipee/available.gif | Bin .../{data => priv}/pixmaps/yipee/away.gif | Bin .../{data => priv}/pixmaps/yipee/chat.gif | Bin .../{data => priv}/pixmaps/yipee/dnd.gif | Bin .../pixmaps/yipee/unavailable.gif | Bin .../{data => priv}/pixmaps/yipee/xa.gif | Bin .../{data => priv}/pixmaps/zyx/available.png | Bin .../{data => priv}/pixmaps/zyx/away.png | Bin .../{data => priv}/pixmaps/zyx/chat.png | Bin .../{data => priv}/pixmaps/zyx/dnd.png | Bin .../pixmaps/zyx/unavailable.png | Bin .../{data => priv}/pixmaps/zyx/xa.png | Bin 442 files changed, 941 insertions(+), 3168 deletions(-) create mode 100644 atom_pubsub/COPYING delete mode 100644 atom_pubsub/Emakefile rename atom_pubsub/{README => README.txt} (84%) create mode 100644 atom_pubsub/atom_pubsub.spec delete mode 100644 atom_pubsub/build.bat delete mode 100755 atom_pubsub/build.sh create mode 100644 atom_pubsub/conf/atom_pubsub.yml delete mode 100644 ejabberd-dev/README.txt delete mode 100644 ejabberd-dev/ebin/.keepme delete mode 100644 ejabberd-dev/include/adhoc.hrl delete mode 100644 ejabberd-dev/include/ejabberd.hrl delete mode 100644 ejabberd-dev/include/ejabberd_commands.hrl delete mode 100644 ejabberd-dev/include/ejabberd_config.hrl delete mode 100644 ejabberd-dev/include/ejabberd_ctl.hrl delete mode 100644 ejabberd-dev/include/ejabberd_http.hrl delete mode 100644 ejabberd-dev/include/ejabberd_web_admin.hrl delete mode 100644 ejabberd-dev/include/jlib.hrl delete mode 100644 ejabberd-dev/include/lager.hrl delete mode 100644 ejabberd-dev/include/logger.hrl delete mode 100644 ejabberd-dev/include/mod_muc_room.hrl delete mode 100644 ejabberd-dev/include/mod_roster.hrl delete mode 100644 ejabberd-dev/include/ns.hrl delete mode 100644 ejabberd-dev/include/pubsub.hrl delete mode 100644 ejabberd-dev/include/xml.hrl delete mode 100644 ejabberd-dev/src/gen_mod.erl delete mode 100644 ejabberd-dev/src/lager_transform.erl delete mode 100644 ejabberd-dev/src/lager_util.erl delete mode 100644 ejabberd_auth_http/Emakefile rename ejabberd_auth_http/{README.md => README.txt} (100%) delete mode 100644 ejabberd_auth_http/build.bat delete mode 100755 ejabberd_auth_http/build.sh delete mode 100644 ejabberd_auth_http/ebin/.keepme create mode 100644 ejabberd_auth_http/ejabberd_auth_http.spec rename {atom_pubsub/ebin => extra}/.keepme (100%) delete mode 100755 extract-mod-translations.sh delete mode 100644 ircd/Emakefile delete mode 100644 ircd/build.bat delete mode 100755 ircd/build.sh delete mode 100644 ircd/ebin/.keepme create mode 100644 ircd/ircd.spec delete mode 100644 mod_admin_extra/Emakefile delete mode 100644 mod_admin_extra/build.bat delete mode 100755 mod_admin_extra/build.sh create mode 100644 mod_admin_extra/conf/mod_admin_extra.yml delete mode 100644 mod_admin_extra/ebin/.keepme create mode 100644 mod_admin_extra/mod_admin_extra.spec rename mod_archive/{LICENSE.txt => COPYING} (100%) delete mode 100644 mod_archive/Emakefile delete mode 100644 mod_archive/build.bat delete mode 100755 mod_archive/build.sh delete mode 100644 mod_archive/ebin/.keepme create mode 100644 mod_archive/mod_archive.spec rename mod_archive/{src => priv}/msgs/mod_archive_webview.pot (100%) rename mod_archive/{src => priv}/msgs/pl.mod_archive_webview.po (100%) delete mode 100644 mod_cron/Emakefile delete mode 100644 mod_cron/build.bat delete mode 100755 mod_cron/build.sh create mode 100644 mod_cron/conf/mod_cron.yml delete mode 100644 mod_cron/ebin/.keepme create mode 100644 mod_cron/mod_cron.spec rename mod_log_chat/{LICENSE.txt => COPYING} (100%) delete mode 100644 mod_log_chat/Emakefile delete mode 100644 mod_log_chat/Makefile delete mode 100644 mod_log_chat/build.bat delete mode 100755 mod_log_chat/build.sh delete mode 100644 mod_log_chat/conf/ejabberd.conf.sample create mode 100644 mod_log_chat/conf/mod_log_chat.yml delete mode 100644 mod_log_chat/ebin/.keepme create mode 100644 mod_log_chat/mod_log_chat.spec delete mode 100644 mod_logsession/Emakefile delete mode 100644 mod_logsession/build.bat delete mode 100755 mod_logsession/build.sh create mode 100644 mod_logsession/conf/mod_logsession.yml delete mode 100644 mod_logsession/ebin/.keepme create mode 100644 mod_logsession/mod_logsession.spec delete mode 100644 mod_logxml/Emakefile delete mode 100644 mod_logxml/build.bat delete mode 100755 mod_logxml/build.sh create mode 100644 mod_logxml/conf/mod_logxml.yml delete mode 100644 mod_logxml/ebin/.keepme create mode 100644 mod_logxml/mod_logxml.spec delete mode 100644 mod_mam/Emakefile delete mode 100644 mod_mam/build.bat delete mode 100755 mod_mam/build.sh create mode 100644 mod_mam/conf/mod_mam.yml delete mode 100644 mod_mam/ebin/.keepme create mode 100644 mod_mam/mod_mam.spec delete mode 100644 mod_message_log/Emakefile delete mode 100644 mod_message_log/build.bat delete mode 100755 mod_message_log/build.sh create mode 100644 mod_message_log/conf/mod_message_log.yml delete mode 100644 mod_message_log/ebin/.keepme create mode 100644 mod_message_log/mod_message_log.spec delete mode 100644 mod_muc_admin/Emakefile delete mode 100644 mod_muc_admin/build.bat delete mode 100755 mod_muc_admin/build.sh create mode 100644 mod_muc_admin/conf/mod_muc_admin.yml delete mode 100644 mod_muc_admin/ebin/.keepme create mode 100644 mod_muc_admin/mod_muc_admin.spec delete mode 100644 mod_muc_log_http/Emakefile delete mode 100644 mod_muc_log_http/build.bat delete mode 100755 mod_muc_log_http/build.sh create mode 100644 mod_muc_log_http/conf/mod_muc_log_http.yml delete mode 100644 mod_muc_log_http/ebin/.keepme create mode 100644 mod_muc_log_http/mod_muc_log_http.spec delete mode 100644 mod_multicast/Emakefile delete mode 100644 mod_multicast/build.bat delete mode 100755 mod_multicast/build.sh create mode 100644 mod_multicast/conf/mod_multicast.yml delete mode 100644 mod_multicast/ebin/.keepme create mode 100644 mod_multicast/mod_multicast.spec delete mode 100644 mod_openid/Emakefile rename mod_openid/{README => README.txt} (100%) delete mode 100644 mod_openid/build.bat delete mode 100755 mod_openid/build.sh delete mode 100644 mod_openid/ebin/.keepme create mode 100644 mod_openid/mod_openid.spec delete mode 100644 mod_post_log/Emakefile rename mod_post_log/{README.md => README.txt} (100%) delete mode 100644 mod_post_log/build.sh create mode 100644 mod_post_log/conf/mod_post_log.yml create mode 100644 mod_post_log/mod_post_log.spec delete mode 100644 mod_profile/Emakefile delete mode 100644 mod_profile/build.bat delete mode 100755 mod_profile/build.sh create mode 100644 mod_profile/conf/mod_profile.yml delete mode 100644 mod_profile/ebin/.keepme create mode 100644 mod_profile/mod_profile.spec delete mode 100644 mod_rest/Emakefile delete mode 100644 mod_rest/build.bat delete mode 100755 mod_rest/build.sh delete mode 100644 mod_rest/ebin/.keepme create mode 100644 mod_rest/mod_rest.spec create mode 100644 mod_s2s_log/COPYING delete mode 100644 mod_s2s_log/Emakefile delete mode 100644 mod_s2s_log/build.bat delete mode 100755 mod_s2s_log/build.sh create mode 100644 mod_s2s_log/conf/mod_s2s_log.yml delete mode 100644 mod_s2s_log/ebin/.keepme create mode 100644 mod_s2s_log/mod_s2s_log.spec delete mode 100644 mod_shcommands/Emakefile delete mode 100644 mod_shcommands/build.bat delete mode 100755 mod_shcommands/build.sh delete mode 100644 mod_shcommands/ebin/.keepme create mode 100644 mod_shcommands/mod_shcommands.spec delete mode 100644 mod_statsdx/Emakefile delete mode 100644 mod_statsdx/build.bat delete mode 100755 mod_statsdx/build.sh create mode 100644 mod_statsdx/conf/mod_statsdx.yml delete mode 100644 mod_statsdx/ebin/.keepme create mode 100644 mod_statsdx/mod_statsdx.spec delete mode 100644 mod_webpresence/Emakefile delete mode 100644 mod_webpresence/build.bat delete mode 100755 mod_webpresence/build.sh delete mode 100644 mod_webpresence/conf/ejabberd.cfg.example create mode 100644 mod_webpresence/conf/mod_webpresence.yml delete mode 100644 mod_webpresence/ebin/.keepme create mode 100644 mod_webpresence/mod_webpresence.spec rename mod_webpresence/{src => priv}/msgs/es.mod_webpresence.msg (100%) rename mod_webpresence/{src => priv}/msgs/es.mod_webpresence.po (100%) rename mod_webpresence/{src => priv}/msgs/mod_webpresence.pot (100%) rename mod_webpresence/{src => priv}/msgs/wa.mod_webpresence.msg (100%) rename mod_webpresence/{src => priv}/msgs/wa.mod_webpresence.po (100%) rename mod_webpresence/{data => priv}/pixmaps/3d-dot1/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/3d-dot1/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/3d-dot1/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/3d-dot1/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/3d-dot1/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/3d-dot1/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/3d-dot2/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/3d-dot2/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/3d-dot2/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/3d-dot2/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/3d-dot2/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/3d-dot2/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/alphamod/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/alphamod/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/alphamod/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/alphamod/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/alphamod/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/alphamod/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amibulb/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amibulb/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amibulb/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amibulb/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amibulb/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amibulb/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amigadu/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amigadu/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amigadu/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amigadu/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amigadu/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amigadu/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amiglobe/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amiglobe/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amiglobe/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amiglobe/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amiglobe/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amiglobe/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amiicq/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amiicq/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amiicq/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amiicq/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amiicq/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amiicq/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amimsn/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amimsn/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amimsn/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amimsn/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amimsn/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amimsn/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/amistellar/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amistellar/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amistellar/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amistellar/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amistellar/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amistellar/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amitlen/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amitlen/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amitlen/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amitlen/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amitlen/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/amitlen/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/bulb/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/bulb/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/bulb/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/bulb/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/bulb/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/bulb/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/chrome-pl/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/chrome-pl/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/chrome-pl/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/chrome-pl/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/chrome-pl/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/chrome-pl/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal2/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal2/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal2/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal2/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal2/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal2/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal3/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal3/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal3/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal3/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal3/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/crystal3/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/dcraven/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/dcraven/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/dcraven/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/dcraven/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/dcraven/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/dcraven/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/dudes/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/dudes/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/dudes/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/dudes/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/dudes/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/dudes/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/frickenhuge/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/frickenhuge/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/frickenhuge/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/frickenhuge/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/frickenhuge/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/frickenhuge/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/gabber/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/gabber/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/gabber/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/gabber/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/gabber/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/gabber/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/gg/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/gg/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/gg/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/gg/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/gg/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/gg/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/gnome/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gnome/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gnome/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gnome/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gnome/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gnome/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gossip/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gossip/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gossip/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gossip/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gossip/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gossip/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gota/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gota/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gota/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gota/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gota/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gota/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gtalk/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gtalk/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gtalk/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gtalk/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gtalk/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/gtalk/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/icq/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/icq/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/icq/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/icq/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/icq/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/icq/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/invision/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/invision/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/invision/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/invision/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/invision/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/invision/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/jabberbulb/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jabberbulb/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jabberbulb/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jabberbulb/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jabberbulb/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jabberbulb/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-jabber-text/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-jabber-text/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-jabber-text/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-jabber-text/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-jabber-text/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-jabber-text/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-text/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-text/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-text/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-text/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-text/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-text/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-text2/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-text2/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-text2/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-text2/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-text2/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/jsf-text2/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/koniczynek/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/koniczynek/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/koniczynek/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/koniczynek/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/koniczynek/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/koniczynek/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/licq/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/licq/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/licq/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/licq/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/licq/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/licq/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/nahuatl/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/nahuatl/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/nahuatl/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/nahuatl/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/nahuatl/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/nahuatl/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/nuvola/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/nuvola/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/nuvola/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/nuvola/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/nuvola/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/nuvola/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/phpbb/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/phpbb/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/phpbb/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/phpbb/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/phpbb/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/phpbb/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/pogoda/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/pogoda/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/pogoda/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/pogoda/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/pogoda/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/pogoda/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/psi/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/psi/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/psi/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/psi/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/psi/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/psi/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/simple/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/simple/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/simple/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/simple/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/simple/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/simple/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/simplebulb/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/simplebulb/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/simplebulb/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/simplebulb/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/simplebulb/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/simplebulb/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/stellar/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/stellar/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/stellar/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/stellar/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/stellar/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/stellar/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/stellar2/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/stellar2/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/stellar2/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/stellar2/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/stellar2/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/stellar2/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/sun/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/sun/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/sun/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/sun/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/sun/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/sun/xa.png (100%) rename mod_webpresence/{data => priv}/pixmaps/tux/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/tux/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/tux/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/tux/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/tux/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/tux/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/wpkontakt/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/wpkontakt/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/wpkontakt/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/wpkontakt/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/wpkontakt/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/wpkontakt/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/yipee/available.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/yipee/away.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/yipee/chat.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/yipee/dnd.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/yipee/unavailable.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/yipee/xa.gif (100%) rename mod_webpresence/{data => priv}/pixmaps/zyx/available.png (100%) rename mod_webpresence/{data => priv}/pixmaps/zyx/away.png (100%) rename mod_webpresence/{data => priv}/pixmaps/zyx/chat.png (100%) rename mod_webpresence/{data => priv}/pixmaps/zyx/dnd.png (100%) rename mod_webpresence/{data => priv}/pixmaps/zyx/unavailable.png (100%) rename mod_webpresence/{data => priv}/pixmaps/zyx/xa.png (100%) diff --git a/README-broken.md b/README-broken.md index 9fc2ca1..71ef294 100644 --- a/README-broken.md +++ b/README-broken.md @@ -2,9 +2,8 @@ This is the list of modules that are known to be broken with latest ejabberd mas If you feel they are worth it, your help to fix them is welcome: - - atom_pubsub: "The atom_pubsub module provides access to all PEP nodes via an - AtomPub interface." + - atom_pubsub: "Provides access to all PEP nodes via an AtomPub interface." - ircd: "This is an IRC server frontend to ejabberd." - - mod_archive: "Message Archiving (XEP-0136)" + - mod_archive: "Message Archiving (XEP-0136)." - mod_openid: "Transform the Jabber Server in an openid provider." - - mod_profile: "User Profile (XEP-0154) in Mnesia table" + - mod_profile: "User Profile (XEP-0154) in Mnesia table." diff --git a/README.md b/README.md index 5964cac..2ca18b1 100644 --- a/README.md +++ b/README.md @@ -10,52 +10,38 @@ For users To use an ejabberd module coming from this repository: -- You need to have Erlang installed. +- You need to have Ejabberd installed. -- Read the module-specific `README.txt` file to see if special steps are - required to deploy it. +- Run `ejabberdctl install ` to get the sources, compile and install + the beams file in ejabberd path. This path is either ~/.ejabberd-modules or + defined by CONTRIB\_MODULES\_PATH in ejabberdctl.cfg. -- Run `./build.sh` or `build.bat` in the root directory of the desired - module. - -- Copy generated `.beam` files from the `ebin` directory to the directory - where your ejabberd `.beam` files are. - -- Use the configuration file examples provided in the `conf` dir to update - your `ejabberd.cfg` or `ejabberd.yml` configuration file. - -If during compilation of a module you get an error like: - - {"init terminating in do_boot",{undef,[{make,all,[]},... - -it means Erlang couldn't find its `make.beam` file. In Debian and other -distributions you can try to install packages like: - - erlang-dev erlang-nox erlang-tools +- Edit the configuration file provided in the `conf` dir of the installed + module to update to your needs. Then apply the changes to your main ejabberd + configuration. On future release, ejabberd will automatically add this file + to its runtime configuration without changes. +- Run `ejabberdctl uninstall ` to remove a module from your ejabberd. For developers -------------- The following organization has been set up for the development: -- Development and compilation of modules should be possible without the - ejabberd source code, as the `ejabberd-dev` helper module contains the - include files necessary to make compilation possible. +- Development and compilation of modules is done by ejabberd. You need + Ejabberd installed. Use `ejabberdctl check_module ` to ensure + it compiles correctly before commit your work. Sources of your module + must be located in $CONTRIB\_MODULES\_PATH/sources/ - The module directory structure is usually the following: * `README.txt`: Module description. - * `LICENSE.txt`: License for the module. - * `Emakefile`: Erlang Makefile to build the module (preferred way, if - no dependencies on C code, as build will thus work on Windows). + * `COPYING`: License for the module. * `doc/`: Documentation directory. - * `src/`: Source directory. - * `src/msgs/`: Directory with translation files (pot, po and msg). - * `ebin/`: Empty (target directory for the build). - * `conf/`: Directory containing example configuration for your module. - * `build.sh`: Unix/Linux build script. - * `build.bat`: Windows build script. + * `src/`: Erlang source directory. + * `lib/`: Elixir source directory. + * `priv/msgs/`: Directory with translation files (pot, po and msg). + * `conf/.yml`: Configuration for your module. + * `.spec`: Yaml description file for your module. - Module developers should note in the `README.txt` file whether the - module has requirements or known incompatibilities with other modules - (for example, by modifying the same main ejabberd modules). + module has requirements or known incompatibilities with other modules. diff --git a/atom_pubsub/COPYING b/atom_pubsub/COPYING new file mode 100644 index 0000000..cc498bd --- /dev/null +++ b/atom_pubsub/COPYING @@ -0,0 +1,342 @@ +As a special exception, the authors give permission to link this program +with the OpenSSL library and distribute the resulting binary. + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/atom_pubsub/Emakefile b/atom_pubsub/Emakefile deleted file mode 100644 index a6c0c01..0000000 --- a/atom_pubsub/Emakefile +++ /dev/null @@ -1,4 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/atom_microblog', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/atom_pubsub', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_couch', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/atom_pubsub/README b/atom_pubsub/README.txt similarity index 84% rename from atom_pubsub/README rename to atom_pubsub/README.txt index dabb50a..2d2d222 100644 --- a/atom_pubsub/README +++ b/atom_pubsub/README.txt @@ -23,28 +23,6 @@ http://www.cestari.info/2008/6/19/atom-pubsub-module-for-ejabberd http://www.cestari.info/2008/9/12/atom_pubsub-dead-long-live-atom_microblog - INSTALL - ------- - -1. Compile the files executing: ./build.sh - -2. Copy beam files from ebin/ into your ejabberd installation. - -3. Edit ejabberd.cfg and add a request handler in ejabberd_http listener: -{listen, [ - ... - {8080, ejabberd_http, [ - http_poll, - web_admin, - {request_handlers, [{["pep"], atom_microblog}, % Make sure it's "pep", or change it in atom_microblog.erl - {["pubsub"], atom_pubsub}]} % Make sure it's "pubsub", or change it in atom_pubsub.erl - - ]} - ]}. - -4. Restart ejabberd. - - USAGE ----- diff --git a/atom_pubsub/atom_pubsub.spec b/atom_pubsub/atom_pubsub.spec new file mode 100644 index 0000000..ba81992 --- /dev/null +++ b/atom_pubsub/atom_pubsub.spec @@ -0,0 +1,5 @@ +author: "Eric Cestari " +category: "pubsub" +summary: "Provides access to all PEP nodes via an AtomPub interface" +home: "https://github.com/processone/ejabberd-contrib/tree/master/atom_pubsub" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/atom_pubsub/build.bat b/atom_pubsub/build.bat deleted file mode 100644 index b387ad5..0000000 --- a/atom_pubsub/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pa ebin -make diff --git a/atom_pubsub/build.sh b/atom_pubsub/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/atom_pubsub/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/atom_pubsub/conf/atom_pubsub.yml b/atom_pubsub/conf/atom_pubsub.yml new file mode 100644 index 0000000..a2879eb --- /dev/null +++ b/atom_pubsub/conf/atom_pubsub.yml @@ -0,0 +1,7 @@ +listen: + - + port: 8080 + module: ejabberd_http + request_handlers: + "pep": atom_microblog + "pubsub": atom_pubsub diff --git a/ejabberd-dev/README.txt b/ejabberd-dev/README.txt deleted file mode 100644 index f461fa1..0000000 --- a/ejabberd-dev/README.txt +++ /dev/null @@ -1,5 +0,0 @@ -ejabberd-dev is an helper module containing include files from the ejabberd -project. - -This should allow to develop or build ejabberd modules without a complete -development version of ejabberd (for example with a binary version of ejabberd). \ No newline at end of file diff --git a/ejabberd-dev/ebin/.keepme b/ejabberd-dev/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/ejabberd-dev/include/adhoc.hrl b/ejabberd-dev/include/adhoc.hrl deleted file mode 100644 index f16aedd..0000000 --- a/ejabberd-dev/include/adhoc.hrl +++ /dev/null @@ -1,44 +0,0 @@ -%%%---------------------------------------------------------------------- -%%% -%%% ejabberd, Copyright (C) 2002-2015 ProcessOne -%%% -%%% This program is free software; you can redistribute it and/or -%%% modify it under the terms of the GNU General Public License as -%%% published by the Free Software Foundation; either version 2 of the -%%% License, or (at your option) any later version. -%%% -%%% This program is distributed in the hope that it will be useful, -%%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%%% General Public License for more details. -%%% -%%% You should have received a copy of the GNU General Public License along -%%% with this program; if not, write to the Free Software Foundation, Inc., -%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -%%% -%%%---------------------------------------------------------------------- - --record(adhoc_request, -{ - lang = <<"">> :: binary(), - node = <<"">> :: binary(), - sessionid = <<"">> :: binary(), - action = <<"">> :: binary(), - xdata = false :: false | xmlel(), - others = [] :: [xmlel()] -}). - --record(adhoc_response, -{ - lang = <<"">> :: binary(), - node = <<"">> :: binary(), - sessionid = <<"">> :: binary(), - status :: atom(), - defaultaction = <<"">> :: binary(), - actions = [] :: [binary()], - notes = [] :: [{binary(), binary()}], - elements = [] :: [xmlel()] -}). - --type adhoc_request() :: #adhoc_request{}. --type adhoc_response() :: #adhoc_response{}. diff --git a/ejabberd-dev/include/ejabberd.hrl b/ejabberd-dev/include/ejabberd.hrl deleted file mode 100644 index 6e21836..0000000 --- a/ejabberd-dev/include/ejabberd.hrl +++ /dev/null @@ -1,51 +0,0 @@ -%%%---------------------------------------------------------------------- -%%% -%%% ejabberd, Copyright (C) 2002-2015 ProcessOne -%%% -%%% This program is free software; you can redistribute it and/or -%%% modify it under the terms of the GNU General Public License as -%%% published by the Free Software Foundation; either version 2 of the -%%% License, or (at your option) any later version. -%%% -%%% This program is distributed in the hope that it will be useful, -%%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%%% General Public License for more details. -%%% -%%% You should have received a copy of the GNU General Public License along -%%% with this program; if not, write to the Free Software Foundation, Inc., -%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -%%% -%%%---------------------------------------------------------------------- - -%% This macro returns a string of the ejabberd version running, e.g. "2.3.4" -%% If the ejabberd application description isn't loaded, returns atom: undefined --define(VERSION, ejabberd_config:get_version()). - --define(MYHOSTS, ejabberd_config:get_myhosts()). - --define(MYNAME, hd(ejabberd_config:get_myhosts())). - --define(MYLANG, ejabberd_config:get_mylang()). - --define(MSGS_DIR, filename:join(["priv", "msgs"])). - --define(CONFIG_PATH, <<"ejabberd.cfg">>). - --define(LOG_PATH, <<"ejabberd.log">>). - --define(EJABBERD_URI, <<"http://www.process-one.net/en/ejabberd/">>). - --define(S2STIMEOUT, 600000). - -%%-define(DBGFSM, true). - --record(scram, - {storedkey = <<"">>, - serverkey = <<"">>, - salt = <<"">>, - iterationcount = 0 :: integer()}). - --type scram() :: #scram{}. - --define(SCRAM_DEFAULT_ITERATION_COUNT, 4096). diff --git a/ejabberd-dev/include/ejabberd_commands.hrl b/ejabberd-dev/include/ejabberd_commands.hrl deleted file mode 100644 index 3ab15ca..0000000 --- a/ejabberd-dev/include/ejabberd_commands.hrl +++ /dev/null @@ -1,74 +0,0 @@ -%%%---------------------------------------------------------------------- -%%% -%%% ejabberd, Copyright (C) 2002-2015 ProcessOne -%%% -%%% This program is free software; you can redistribute it and/or -%%% modify it under the terms of the GNU General Public License as -%%% published by the Free Software Foundation; either version 2 of the -%%% License, or (at your option) any later version. -%%% -%%% This program is distributed in the hope that it will be useful, -%%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%%% General Public License for more details. -%%% -%%% You should have received a copy of the GNU General Public License along -%%% with this program; if not, write to the Free Software Foundation, Inc., -%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -%%% -%%%---------------------------------------------------------------------- - --type aterm() :: {atom(), atype()}. --type atype() :: integer | string | binary | - {tuple, [aterm()]} | {list, aterm()}. --type rterm() :: {atom(), rtype()}. --type rtype() :: integer | string | atom | - {tuple, [rterm()]} | {list, rterm()} | - rescode | restuple. - --record(ejabberd_commands, - {name :: atom(), - tags = [] :: [atom()] | '_' | '$2', - desc = "" :: string() | '_' | '$3', - longdesc = "" :: string() | '_', - module :: atom(), - function :: atom(), - args = [] :: [aterm()] | '_' | '$1' | '$2', - result = {res, rescode} :: rterm() | '_' | '$2'}). - --type ejabberd_commands() :: #ejabberd_commands{name :: atom(), - tags :: [atom()], - desc :: string(), - longdesc :: string(), - module :: atom(), - function :: atom(), - args :: [aterm()], - result :: rterm()}. - -%% @type ejabberd_commands() = #ejabberd_commands{ -%% name = atom(), -%% tags = [atom()], -%% desc = string(), -%% longdesc = string(), -%% module = atom(), -%% function = atom(), -%% args = [aterm()], -%% result = rterm() -%% }. -%% desc: Description of the command -%% args: Describe the accepted arguments. -%% This way the function that calls the command can format the -%% arguments before calling. - -%% @type atype() = integer | string | {tuple, [aterm()]} | {list, aterm()}. -%% Allowed types for arguments are integer, string, tuple and list. - -%% @type rtype() = integer | string | atom | {tuple, [rterm()]} | {list, rterm()} | rescode | restuple. -%% A rtype is either an atom or a tuple with two elements. - -%% @type aterm() = {Name::atom(), Type::atype()}. -%% An argument term is a tuple with the term name and the term type. - -%% @type rterm() = {Name::atom(), Type::rtype()}. -%% A result term is a tuple with the term name and the term type. - diff --git a/ejabberd-dev/include/ejabberd_config.hrl b/ejabberd-dev/include/ejabberd_config.hrl deleted file mode 100644 index eb4de26..0000000 --- a/ejabberd-dev/include/ejabberd_config.hrl +++ /dev/null @@ -1,30 +0,0 @@ -%%%---------------------------------------------------------------------- -%%% -%%% ejabberd, Copyright (C) 2002-2015 ProcessOne -%%% -%%% This program is free software; you can redistribute it and/or -%%% modify it under the terms of the GNU General Public License as -%%% published by the Free Software Foundation; either version 2 of the -%%% License, or (at your option) any later version. -%%% -%%% This program is distributed in the hope that it will be useful, -%%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%%% General Public License for more details. -%%% -%%% You should have received a copy of the GNU General Public License along -%%% with this program; if not, write to the Free Software Foundation, Inc., -%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -%%% -%%%---------------------------------------------------------------------- - --record(local_config, {key :: any(), value :: any()}). - --type local_config() :: #local_config{}. - --record(state, - {opts = [] :: [acl:acl() | local_config()], - hosts = [] :: [binary()], - override_local = false :: boolean(), - override_global = false :: boolean(), - override_acls = false :: boolean()}). diff --git a/ejabberd-dev/include/ejabberd_ctl.hrl b/ejabberd-dev/include/ejabberd_ctl.hrl deleted file mode 100644 index 8b56ad2..0000000 --- a/ejabberd-dev/include/ejabberd_ctl.hrl +++ /dev/null @@ -1,27 +0,0 @@ -%%%---------------------------------------------------------------------- -%%% -%%% ejabberd, Copyright (C) 2002-2015 ProcessOne -%%% -%%% This program is free software; you can redistribute it and/or -%%% modify it under the terms of the GNU General Public License as -%%% published by the Free Software Foundation; either version 2 of the -%%% License, or (at your option) any later version. -%%% -%%% This program is distributed in the hope that it will be useful, -%%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%%% General Public License for more details. -%%% -%%% You should have received a copy of the GNU General Public License along -%%% with this program; if not, write to the Free Software Foundation, Inc., -%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -%%% -%%%---------------------------------------------------------------------- - --define(STATUS_SUCCESS, 0). - --define(STATUS_ERROR, 1). - --define(STATUS_USAGE, 2). - --define(STATUS_BADRPC, 3). diff --git a/ejabberd-dev/include/ejabberd_http.hrl b/ejabberd-dev/include/ejabberd_http.hrl deleted file mode 100644 index 9317063..0000000 --- a/ejabberd-dev/include/ejabberd_http.hrl +++ /dev/null @@ -1,36 +0,0 @@ -%%%---------------------------------------------------------------------- -%%% -%%% ejabberd, Copyright (C) 2002-2015 ProcessOne -%%% -%%% This program is free software; you can redistribute it and/or -%%% modify it under the terms of the GNU General Public License as -%%% published by the Free Software Foundation; either version 2 of the -%%% License, or (at your option) any later version. -%%% -%%% This program is distributed in the hope that it will be useful, -%%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%%% General Public License for more details. -%%% -%%% You should have received a copy of the GNU General Public License along -%%% with this program; if not, write to the Free Software Foundation, Inc., -%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -%%% -%%%---------------------------------------------------------------------- - --record(request, - {method, % :: method(), - path = [] :: [binary()], - q = [] :: [{binary() | nokey, binary()}], - us = {<<>>, <<>>} :: {binary(), binary()}, - auth :: {binary(), binary()} | - {auth_jid, {binary(), binary()}, jlib:jid()}, - lang = <<"">> :: binary(), - data = <<"">> :: binary(), - ip :: {inet:ip_address(), inet:port_number()}, - host = <<"">> :: binary(), - port = 5280 :: inet:port_number(), - tp = http, % :: protocol(), - opts = [] :: list(), - headers = [] :: [{atom() | binary(), binary()}]}). - diff --git a/ejabberd-dev/include/ejabberd_web_admin.hrl b/ejabberd-dev/include/ejabberd_web_admin.hrl deleted file mode 100644 index 852e537..0000000 --- a/ejabberd-dev/include/ejabberd_web_admin.hrl +++ /dev/null @@ -1,104 +0,0 @@ -%%%---------------------------------------------------------------------- -%%% -%%% ejabberd, Copyright (C) 2002-2015 ProcessOne -%%% -%%% This program is free software; you can redistribute it and/or -%%% modify it under the terms of the GNU General Public License as -%%% published by the Free Software Foundation; either version 2 of the -%%% License, or (at your option) any later version. -%%% -%%% This program is distributed in the hope that it will be useful, -%%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%%% General Public License for more details. -%%% -%%% You should have received a copy of the GNU General Public License along -%%% with this program; if not, write to the Free Software Foundation, Inc., -%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -%%% -%%%---------------------------------------------------------------------- - --define(X(Name), - #xmlel{name = Name, attrs = [], children = []}). - --define(XA(Name, Attrs), - #xmlel{name = Name, attrs = Attrs, children = []}). - --define(XE(Name, Els), - #xmlel{name = Name, attrs = [], children = Els}). - --define(XAE(Name, Attrs, Els), - #xmlel{name = Name, attrs = Attrs, children = Els}). - --define(C(Text), {xmlcdata, Text}). - --define(XC(Name, Text), ?XE(Name, [?C(Text)])). - --define(XAC(Name, Attrs, Text), - ?XAE(Name, Attrs, [?C(Text)])). - --define(T(Text), translate:translate(Lang, Text)). - --define(CT(Text), ?C((?T(Text)))). - --define(XCT(Name, Text), ?XC(Name, (?T(Text)))). - --define(XACT(Name, Attrs, Text), - ?XAC(Name, Attrs, (?T(Text)))). - --define(LI(Els), ?XE(<<"li">>, Els)). - --define(A(URL, Els), - ?XAE(<<"a">>, [{<<"href">>, URL}], Els)). - --define(AC(URL, Text), ?A(URL, [?C(Text)])). - --define(ACT(URL, Text), ?AC(URL, (?T(Text)))). - --define(P, ?X(<<"p">>)). - --define(BR, ?X(<<"br">>)). - --define(INPUT(Type, Name, Value), - ?XA(<<"input">>, - [{<<"type">>, Type}, {<<"name">>, Name}, - {<<"value">>, Value}])). - --define(INPUTT(Type, Name, Value), - ?INPUT(Type, Name, (?T(Value)))). - --define(INPUTS(Type, Name, Value, Size), - ?XA(<<"input">>, - [{<<"type">>, Type}, {<<"name">>, Name}, - {<<"value">>, Value}, {<<"size">>, Size}])). - --define(INPUTST(Type, Name, Value, Size), - ?INPUT(Type, Name, (?T(Value)), Size)). - --define(ACLINPUT(Text), - ?XE(<<"td">>, - [?INPUT(<<"text">>, <<"value", ID/binary>>, Text)])). - --define(TEXTAREA(Name, Rows, Cols, Value), - ?XAC(<<"textarea">>, - [{<<"name">>, Name}, {<<"rows">>, Rows}, - {<<"cols">>, Cols}], - Value)). - -%% Build an xmlelement for result --define(XRES(Text), - ?XAC(<<"p">>, [{<<"class">>, <<"result">>}], Text)). - -%% Guide Link --define(XREST(Text), ?XRES((?T(Text)))). - --define(GL(Ref, Title), - ?XAE(<<"div">>, [{<<"class">>, <<"guidelink">>}], - [?XAE(<<"a">>, - [{<<"href">>, <<"/admin/doc/guide.html#", Ref/binary>>}, - {<<"target">>, <<"_blank">>}], - [?C(<<"[Guide: ", Title/binary, "]">>)])])). - -%% h1 with a Guide Link --define(H1GL(Name, Ref, Title), - [?XC(<<"h1">>, Name), ?GL(Ref, Title)]). diff --git a/ejabberd-dev/include/jlib.hrl b/ejabberd-dev/include/jlib.hrl deleted file mode 100644 index 93dc8cd..0000000 --- a/ejabberd-dev/include/jlib.hrl +++ /dev/null @@ -1,501 +0,0 @@ -%%%---------------------------------------------------------------------- -%%% -%%% ejabberd, Copyright (C) 2002-2015 ProcessOne -%%% -%%% This program is free software; you can redistribute it and/or -%%% modify it under the terms of the GNU General Public License as -%%% published by the Free Software Foundation; either version 2 of the -%%% License, or (at your option) any later version. -%%% -%%% This program is distributed in the hope that it will be useful, -%%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%%% General Public License for more details. -%%% -%%% You should have received a copy of the GNU General Public License along -%%% with this program; if not, write to the Free Software Foundation, Inc., -%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -%%% -%%%---------------------------------------------------------------------- - --include("ns.hrl"). --include("xml.hrl"). - --define(STANZA_ERROR(Code, Type, Condition), - #xmlel{name = <<"error">>, - attrs = [{<<"code">>, Code}, {<<"type">>, Type}], - children = - [#xmlel{name = Condition, - attrs = [{<<"xmlns">>, ?NS_STANZAS}], - children = []}]}). - --define(ERR_BAD_FORMAT, - ?STANZA_ERROR(<<"406">>, <<"modify">>, - <<"bad-format">>)). - --define(ERR_BAD_REQUEST, - ?STANZA_ERROR(<<"400">>, <<"modify">>, - <<"bad-request">>)). - --define(ERR_CONFLICT, - ?STANZA_ERROR(<<"409">>, <<"cancel">>, <<"conflict">>)). - --define(ERR_FEATURE_NOT_IMPLEMENTED, - ?STANZA_ERROR(<<"501">>, <<"cancel">>, - <<"feature-not-implemented">>)). - --define(ERR_FORBIDDEN, - ?STANZA_ERROR(<<"403">>, <<"auth">>, <<"forbidden">>)). - --define(ERR_GONE, - ?STANZA_ERROR(<<"302">>, <<"modify">>, <<"gone">>)). - --define(ERR_INTERNAL_SERVER_ERROR, - ?STANZA_ERROR(<<"500">>, <<"wait">>, - <<"internal-server-error">>)). - --define(ERR_ITEM_NOT_FOUND, - ?STANZA_ERROR(<<"404">>, <<"cancel">>, - <<"item-not-found">>)). - --define(ERR_JID_MALFORMED, - ?STANZA_ERROR(<<"400">>, <<"modify">>, - <<"jid-malformed">>)). - --define(ERR_NOT_ACCEPTABLE, - ?STANZA_ERROR(<<"406">>, <<"modify">>, - <<"not-acceptable">>)). - --define(ERR_NOT_ALLOWED, - ?STANZA_ERROR(<<"405">>, <<"cancel">>, - <<"not-allowed">>)). - --define(ERR_NOT_AUTHORIZED, - ?STANZA_ERROR(<<"401">>, <<"auth">>, - <<"not-authorized">>)). - --define(ERR_PAYMENT_REQUIRED, - ?STANZA_ERROR(<<"402">>, <<"auth">>, - <<"payment-required">>)). - --define(ERR_RECIPIENT_UNAVAILABLE, - ?STANZA_ERROR(<<"404">>, <<"wait">>, - <<"recipient-unavailable">>)). - --define(ERR_REDIRECT, - ?STANZA_ERROR(<<"302">>, <<"modify">>, <<"redirect">>)). - --define(ERR_REGISTRATION_REQUIRED, - ?STANZA_ERROR(<<"407">>, <<"auth">>, - <<"registration-required">>)). - --define(ERR_REMOTE_SERVER_NOT_FOUND, - ?STANZA_ERROR(<<"404">>, <<"cancel">>, - <<"remote-server-not-found">>)). - --define(ERR_REMOTE_SERVER_TIMEOUT, - ?STANZA_ERROR(<<"504">>, <<"wait">>, - <<"remote-server-timeout">>)). - --define(ERR_RESOURCE_CONSTRAINT, - ?STANZA_ERROR(<<"500">>, <<"wait">>, - <<"resource-constraint">>)). - --define(ERR_SERVICE_UNAVAILABLE, - ?STANZA_ERROR(<<"503">>, <<"cancel">>, - <<"service-unavailable">>)). - --define(ERR_SUBSCRIPTION_REQUIRED, - ?STANZA_ERROR(<<"407">>, <<"auth">>, - <<"subscription-required">>)). - --define(ERR_UNEXPECTED_REQUEST, - ?STANZA_ERROR(<<"400">>, <<"wait">>, - <<"unexpected-request">>)). - --define(ERR_UNEXPECTED_REQUEST_CANCEL, - ?STANZA_ERROR(<<"401">>, <<"cancel">>, - <<"unexpected-request">>)). - -%-define(ERR_, -% ?STANZA_ERROR("", "", "")). - --define(STANZA_ERRORT(Code, Type, Condition, Lang, - Text), - #xmlel{name = <<"error">>, - attrs = [{<<"code">>, Code}, {<<"type">>, Type}], - children = - [#xmlel{name = Condition, - attrs = [{<<"xmlns">>, ?NS_STANZAS}], children = []}, - #xmlel{name = <<"text">>, - attrs = [{<<"xmlns">>, ?NS_STANZAS}], - children = - [{xmlcdata, - translate:translate(Lang, Text)}]}]}). - --define(ERRT_BAD_FORMAT(Lang, Text), - ?STANZA_ERRORT(<<"406">>, <<"modify">>, - <<"bad-format">>, Lang, Text)). - --define(ERRT_BAD_REQUEST(Lang, Text), - ?STANZA_ERRORT(<<"400">>, <<"modify">>, - <<"bad-request">>, Lang, Text)). - --define(ERRT_CONFLICT(Lang, Text), - ?STANZA_ERRORT(<<"409">>, <<"cancel">>, <<"conflict">>, - Lang, Text)). - --define(ERRT_FEATURE_NOT_IMPLEMENTED(Lang, Text), - ?STANZA_ERRORT(<<"501">>, <<"cancel">>, - <<"feature-not-implemented">>, Lang, Text)). - --define(ERRT_FORBIDDEN(Lang, Text), - ?STANZA_ERRORT(<<"403">>, <<"auth">>, <<"forbidden">>, - Lang, Text)). - --define(ERRT_GONE(Lang, Text), - ?STANZA_ERRORT(<<"302">>, <<"modify">>, <<"gone">>, - Lang, Text)). - --define(ERRT_INTERNAL_SERVER_ERROR(Lang, Text), - ?STANZA_ERRORT(<<"500">>, <<"wait">>, - <<"internal-server-error">>, Lang, Text)). - --define(ERRT_ITEM_NOT_FOUND(Lang, Text), - ?STANZA_ERRORT(<<"404">>, <<"cancel">>, - <<"item-not-found">>, Lang, Text)). - --define(ERRT_JID_MALFORMED(Lang, Text), - ?STANZA_ERRORT(<<"400">>, <<"modify">>, - <<"jid-malformed">>, Lang, Text)). - --define(ERRT_NOT_ACCEPTABLE(Lang, Text), - ?STANZA_ERRORT(<<"406">>, <<"modify">>, - <<"not-acceptable">>, Lang, Text)). - --define(ERRT_NOT_ALLOWED(Lang, Text), - ?STANZA_ERRORT(<<"405">>, <<"cancel">>, - <<"not-allowed">>, Lang, Text)). - --define(ERRT_NOT_AUTHORIZED(Lang, Text), - ?STANZA_ERRORT(<<"401">>, <<"auth">>, - <<"not-authorized">>, Lang, Text)). - --define(ERRT_PAYMENT_REQUIRED(Lang, Text), - ?STANZA_ERRORT(<<"402">>, <<"auth">>, - <<"payment-required">>, Lang, Text)). - --define(ERRT_RECIPIENT_UNAVAILABLE(Lang, Text), - ?STANZA_ERRORT(<<"404">>, <<"wait">>, - <<"recipient-unavailable">>, Lang, Text)). - --define(ERRT_REDIRECT(Lang, Text), - ?STANZA_ERRORT(<<"302">>, <<"modify">>, <<"redirect">>, - Lang, Text)). - --define(ERRT_REGISTRATION_REQUIRED(Lang, Text), - ?STANZA_ERRORT(<<"407">>, <<"auth">>, - <<"registration-required">>, Lang, Text)). - --define(ERRT_REMOTE_SERVER_NOT_FOUND(Lang, Text), - ?STANZA_ERRORT(<<"404">>, <<"cancel">>, - <<"remote-server-not-found">>, Lang, Text)). - --define(ERRT_REMOTE_SERVER_TIMEOUT(Lang, Text), - ?STANZA_ERRORT(<<"504">>, <<"wait">>, - <<"remote-server-timeout">>, Lang, Text)). - --define(ERRT_RESOURCE_CONSTRAINT(Lang, Text), - ?STANZA_ERRORT(<<"500">>, <<"wait">>, - <<"resource-constraint">>, Lang, Text)). - --define(ERRT_SERVICE_UNAVAILABLE(Lang, Text), - ?STANZA_ERRORT(<<"503">>, <<"cancel">>, - <<"service-unavailable">>, Lang, Text)). - --define(ERRT_SUBSCRIPTION_REQUIRED(Lang, Text), - ?STANZA_ERRORT(<<"407">>, <<"auth">>, - <<"subscription-required">>, Lang, Text)). - --define(ERRT_UNEXPECTED_REQUEST(Lang, Text), - ?STANZA_ERRORT(<<"400">>, <<"wait">>, - <<"unexpected-request">>, Lang, Text)). - --define(ERR_AUTH_NO_RESOURCE_PROVIDED(Lang), - ?ERRT_NOT_ACCEPTABLE(Lang, <<"No resource provided">>)). - --define(ERR_AUTH_BAD_RESOURCE_FORMAT(Lang), - ?ERRT_NOT_ACCEPTABLE(Lang, - <<"Illegal resource format">>)). - --define(ERR_AUTH_RESOURCE_CONFLICT(Lang), - ?ERRT_CONFLICT(Lang, <<"Resource conflict">>)). - --define(STREAM_ERROR(Condition, Cdata), - #xmlel{name = <<"stream:error">>, attrs = [], - children = - [#xmlel{name = Condition, - attrs = [{<<"xmlns">>, ?NS_STREAMS}], - children = [{xmlcdata, Cdata}]}]}). - --define(SERR_BAD_FORMAT, - ?STREAM_ERROR(<<"bad-format">>, <<"">>)). - --define(SERR_BAD_NAMESPACE_PREFIX, - ?STREAM_ERROR(<<"bad-namespace-prefix">>, <<"">>)). - --define(SERR_CONFLICT, - ?STREAM_ERROR(<<"conflict">>, <<"">>)). - --define(SERR_CONNECTION_TIMEOUT, - ?STREAM_ERROR(<<"connection-timeout">>, <<"">>)). - --define(SERR_HOST_GONE, - ?STREAM_ERROR(<<"host-gone">>, <<"">>)). - --define(SERR_HOST_UNKNOWN, - ?STREAM_ERROR(<<"host-unknown">>, <<"">>)). - --define(SERR_IMPROPER_ADDRESSING, - ?STREAM_ERROR(<<"improper-addressing">>, <<"">>)). - --define(SERR_INTERNAL_SERVER_ERROR, - ?STREAM_ERROR(<<"internal-server-error">>, <<"">>)). - --define(SERR_INVALID_FROM, - ?STREAM_ERROR(<<"invalid-from">>, <<"">>)). - --define(SERR_INVALID_ID, - ?STREAM_ERROR(<<"invalid-id">>, <<"">>)). - --define(SERR_INVALID_NAMESPACE, - ?STREAM_ERROR(<<"invalid-namespace">>, <<"">>)). - --define(SERR_INVALID_XML, - ?STREAM_ERROR(<<"invalid-xml">>, <<"">>)). - --define(SERR_NOT_AUTHORIZED, - ?STREAM_ERROR(<<"not-authorized">>, <<"">>)). - --define(SERR_POLICY_VIOLATION, - ?STREAM_ERROR(<<"policy-violation">>, <<"">>)). - --define(SERR_REMOTE_CONNECTION_FAILED, - ?STREAM_ERROR(<<"remote-connection-failed">>, <<"">>)). - --define(SERR_RESOURSE_CONSTRAINT, - ?STREAM_ERROR(<<"resource-constraint">>, <<"">>)). - --define(SERR_RESTRICTED_XML, - ?STREAM_ERROR(<<"restricted-xml">>, <<"">>)). - --define(SERR_SEE_OTHER_HOST(Host), - ?STREAM_ERROR(<<"see-other-host">>, Host)). - --define(SERR_SYSTEM_SHUTDOWN, - ?STREAM_ERROR(<<"system-shutdown">>, <<"">>)). - --define(SERR_UNSUPPORTED_ENCODING, - ?STREAM_ERROR(<<"unsupported-encoding">>, <<"">>)). - --define(SERR_UNSUPPORTED_STANZA_TYPE, - ?STREAM_ERROR(<<"unsupported-stanza-type">>, <<"">>)). - --define(SERR_UNSUPPORTED_VERSION, - ?STREAM_ERROR(<<"unsupported-version">>, <<"">>)). - --define(SERR_XML_NOT_WELL_FORMED, - ?STREAM_ERROR(<<"xml-not-well-formed">>, <<"">>)). - -%-define(SERR_, -% ?STREAM_ERROR("", "")). - --define(STREAM_ERRORT(Condition, Cdata, Lang, Text), - #xmlel{name = <<"stream:error">>, attrs = [], - children = - [#xmlel{name = Condition, - attrs = [{<<"xmlns">>, ?NS_STREAMS}], - children = [{xmlcdata, Cdata}]}, - #xmlel{name = <<"text">>, - attrs = - [{<<"xml:lang">>, Lang}, - {<<"xmlns">>, ?NS_STREAMS}], - children = - [{xmlcdata, - translate:translate(Lang, Text)}]}]}). - --define(SERRT_BAD_FORMAT(Lang, Text), - ?STREAM_ERRORT(<<"bad-format">>, <<"">>, Lang, Text)). - --define(SERRT_BAD_NAMESPACE_PREFIX(Lang, Text), - ?STREAM_ERRORT(<<"bad-namespace-prefix">>, <<"">>, Lang, - Text)). - --define(SERRT_CONFLICT(Lang, Text), - ?STREAM_ERRORT(<<"conflict">>, <<"">>, Lang, Text)). - --define(SERRT_CONNECTION_TIMEOUT(Lang, Text), - ?STREAM_ERRORT(<<"connection-timeout">>, <<"">>, Lang, - Text)). - --define(SERRT_HOST_GONE(Lang, Text), - ?STREAM_ERRORT(<<"host-gone">>, <<"">>, Lang, Text)). - --define(SERRT_HOST_UNKNOWN(Lang, Text), - ?STREAM_ERRORT(<<"host-unknown">>, <<"">>, Lang, Text)). - --define(SERRT_IMPROPER_ADDRESSING(Lang, Text), - ?STREAM_ERRORT(<<"improper-addressing">>, <<"">>, Lang, - Text)). - --define(SERRT_INTERNAL_SERVER_ERROR(Lang, Text), - ?STREAM_ERRORT(<<"internal-server-error">>, <<"">>, - Lang, Text)). - --define(SERRT_INVALID_FROM(Lang, Text), - ?STREAM_ERRORT(<<"invalid-from">>, <<"">>, Lang, Text)). - --define(SERRT_INVALID_ID(Lang, Text), - ?STREAM_ERRORT(<<"invalid-id">>, <<"">>, Lang, Text)). - --define(SERRT_INVALID_NAMESPACE(Lang, Text), - ?STREAM_ERRORT(<<"invalid-namespace">>, <<"">>, Lang, - Text)). - --define(SERRT_INVALID_XML(Lang, Text), - ?STREAM_ERRORT(<<"invalid-xml">>, <<"">>, Lang, Text)). - --define(SERRT_NOT_AUTHORIZED(Lang, Text), - ?STREAM_ERRORT(<<"not-authorized">>, <<"">>, Lang, - Text)). - --define(SERRT_POLICY_VIOLATION(Lang, Text), - ?STREAM_ERRORT(<<"policy-violation">>, <<"">>, Lang, - Text)). - --define(SERRT_REMOTE_CONNECTION_FAILED(Lang, Text), - ?STREAM_ERRORT(<<"remote-connection-failed">>, <<"">>, - Lang, Text)). - --define(SERRT_RESOURSE_CONSTRAINT(Lang, Text), - ?STREAM_ERRORT(<<"resource-constraint">>, <<"">>, Lang, - Text)). - --define(SERRT_RESTRICTED_XML(Lang, Text), - ?STREAM_ERRORT(<<"restricted-xml">>, <<"">>, Lang, - Text)). - --define(SERRT_SEE_OTHER_HOST(Host, Lang, Text), - ?STREAM_ERRORT(<<"see-other-host">>, Host, Lang, Text)). - --define(SERRT_SYSTEM_SHUTDOWN(Lang, Text), - ?STREAM_ERRORT(<<"system-shutdown">>, <<"">>, Lang, - Text)). - --define(SERRT_UNSUPPORTED_ENCODING(Lang, Text), - ?STREAM_ERRORT(<<"unsupported-encoding">>, <<"">>, Lang, - Text)). - --define(SERRT_UNSUPPORTED_STANZA_TYPE(Lang, Text), - ?STREAM_ERRORT(<<"unsupported-stanza-type">>, <<"">>, - Lang, Text)). - --define(SERRT_UNSUPPORTED_VERSION(Lang, Text), - ?STREAM_ERRORT(<<"unsupported-version">>, <<"">>, Lang, - Text)). - --define(SERRT_XML_NOT_WELL_FORMED(Lang, Text), - ?STREAM_ERRORT(<<"xml-not-well-formed">>, <<"">>, Lang, - Text)). - --record(jid, {user = <<"">> :: binary(), - server = <<"">> :: binary(), - resource = <<"">> :: binary(), - luser = <<"">> :: binary(), - lserver = <<"">> :: binary(), - lresource = <<"">> :: binary()}). - --type(jid() :: #jid{}). - --type(ljid() :: {binary(), binary(), binary()}). - --record(iq, {id = <<"">> :: binary(), - type = get :: get | set | result | error, - xmlns = <<"">> :: binary(), - lang = <<"">> :: binary(), - sub_el = #xmlel{} :: xmlel() | [xmlel()]}). - --type(iq_get() - :: #iq{ - id :: binary(), - type :: get, - xmlns :: binary(), - lang :: binary(), - sub_el :: xmlel() - } -). - --type(iq_set() - :: #iq{ - id :: binary(), - type :: set, - xmlns :: binary(), - lang :: binary(), - sub_el :: xmlel() - } -). - --type iq_request() :: iq_get() | iq_set(). - --type(iq_result() - :: #iq{ - id :: binary(), - type :: result, - xmlns :: binary(), - lang :: binary(), - sub_el :: [xmlel()] - } -). - --type(iq_error() - :: #iq{ - id :: binary(), - type :: error, - xmlns :: binary(), - lang :: binary(), - sub_el :: [xmlel()] - } -). - --type iq_reply() :: iq_result() | iq_error() . - --type(iq() :: iq_request() | iq_reply()). - --record(rsm_in, {max :: integer(), - direction :: before | aft, - id :: binary(), - index :: integer()}). - --record(rsm_out, {count :: integer(), - index :: integer(), - first :: binary(), - last :: binary()}). - --type(rsm_in() :: #rsm_in{}). - --type(rsm_out() :: #rsm_out{}). - --type broadcast() :: {broadcast, broadcast_data()}. - --type broadcast_data() :: - {rebind, pid(), binary()} | %% ejabberd_c2s - {item, ljid(), mod_roster:subscription()} | %% mod_roster/mod_shared_roster - {exit, binary()} | %% mod_roster/mod_shared_roster - {privacy_list, mod_privacy:userlist(), binary()} | %% mod_privacy - {blocking, unblock_all | {block | unblock, [ljid()]}}. %% mod_blocking - --record(xmlelement, {name = "" :: string(), - attrs = [] :: [{string(), string()}], - children = [] :: [{xmlcdata, iodata()} | xmlelement()]}). - --type xmlelement() :: #xmlelement{}. diff --git a/ejabberd-dev/include/lager.hrl b/ejabberd-dev/include/lager.hrl deleted file mode 100644 index ade93e1..0000000 --- a/ejabberd-dev/include/lager.hrl +++ /dev/null @@ -1,102 +0,0 @@ -%% Copyright (c) 2011-2012 Basho Technologies, Inc. All Rights Reserved. -%% -%% This file is provided to you under the Apache License, -%% Version 2.0 (the "License"); you may not use this file -%% except in compliance with the License. You may obtain -%% a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, -%% software distributed under the License is distributed on an -%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -%% KIND, either express or implied. See the License for the -%% specific language governing permissions and limitations -%% under the License. - - --define(DEFAULT_TRUNCATION, 4096). --define(DEFAULT_TRACER, lager_default_tracer). - --define(LEVELS, - [debug, info, notice, warning, error, critical, alert, emergency, none]). - --define(DEBUG, 128). --define(INFO, 64). --define(NOTICE, 32). --define(WARNING, 16). --define(ERROR, 8). --define(CRITICAL, 4). --define(ALERT, 2). --define(EMERGENCY, 1). --define(LOG_NONE, 0). - --define(LEVEL2NUM(Level), - case Level of - debug -> ?DEBUG; - info -> ?INFO; - notice -> ?NOTICE; - warning -> ?WARNING; - error -> ?ERROR; - critical -> ?CRITICAL; - alert -> ?ALERT; - emergency -> ?EMERGENCY - end). - --define(NUM2LEVEL(Num), - case Num of - ?DEBUG -> debug; - ?INFO -> info; - ?NOTICE -> notice; - ?WARNING -> warning; - ?ERROR -> error; - ?CRITICAL -> critical; - ?ALERT -> alert; - ?EMERGENCY -> emergency - end). - --define(SHOULD_LOG(Level), - (lager_util:level_to_num(Level) band element(1, lager_config:get(loglevel, {?LOG_NONE, []}))) /= 0). - --define(NOTIFY(Level, Pid, Format, Args), - gen_event:notify(lager_event, {log, lager_msg:new(io_lib:format(Format, Args), - Level, - [{pid,Pid},{line,?LINE},{file,?FILE},{module,?MODULE}], - [])} - )). - -%% FOR INTERNAL USE ONLY -%% internal non-blocking logging call -%% there's some special handing for when we try to log (usually errors) while -%% lager is still starting. --ifdef(TEST). --define(INT_LOG(Level, Format, Args), - case ?SHOULD_LOG(Level) of - true -> - ?NOTIFY(Level, self(), Format, Args); - _ -> - ok - end). --else. --define(INT_LOG(Level, Format, Args), - Self = self(), - %% do this in a spawn so we don't cause a deadlock calling gen_event:which_handlers - %% from a gen_event handler - spawn(fun() -> - case catch(gen_event:which_handlers(lager_event)) of - X when X == []; X == {'EXIT', noproc}; X == [lager_backend_throttle] -> - %% there's no handlers yet or lager isn't running, try again - %% in half a second. - timer:sleep(500), - ?NOTIFY(Level, Self, Format, Args); - _ -> - case ?SHOULD_LOG(Level) of - true -> - ?NOTIFY(Level, Self, Format, Args); - _ -> - ok - end - end - end)). --endif. - diff --git a/ejabberd-dev/include/logger.hrl b/ejabberd-dev/include/logger.hrl deleted file mode 100644 index b8fdc31..0000000 --- a/ejabberd-dev/include/logger.hrl +++ /dev/null @@ -1,56 +0,0 @@ -%%%---------------------------------------------------------------------- -%%% -%%% ejabberd, Copyright (C) 2002-2015 ProcessOne -%%% -%%% This program is free software; you can redistribute it and/or -%%% modify it under the terms of the GNU General Public License as -%%% published by the Free Software Foundation; either version 2 of the -%%% License, or (at your option) any later version. -%%% -%%% This program is distributed in the hope that it will be useful, -%%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%%% General Public License for more details. -%%% -%%% You should have received a copy of the GNU General Public License along -%%% with this program; if not, write to the Free Software Foundation, Inc., -%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -%%% -%%%---------------------------------------------------------------------- --define(PRINT(Format, Args), io:format(Format, Args)). - --ifdef(LAGER). --compile([{parse_transform, lager_transform}]). - --define(DEBUG(Format, Args), - lager:debug(Format, Args)). - --define(INFO_MSG(Format, Args), - lager:info(Format, Args)). - --define(WARNING_MSG(Format, Args), - lager:warning(Format, Args)). - --define(ERROR_MSG(Format, Args), - lager:error(Format, Args)). - --define(CRITICAL_MSG(Format, Args), - lager:critical(Format, Args)). - --else. - --define(DEBUG(Format, Args), - p1_logger:debug_msg(?MODULE, ?LINE, Format, Args)). - --define(INFO_MSG(Format, Args), - p1_logger:info_msg(?MODULE, ?LINE, Format, Args)). - --define(WARNING_MSG(Format, Args), - p1_logger:warning_msg(?MODULE, ?LINE, Format, Args)). - --define(ERROR_MSG(Format, Args), - p1_logger:error_msg(?MODULE, ?LINE, Format, Args)). - --define(CRITICAL_MSG(Format, Args), - p1_logger:critical_msg(?MODULE, ?LINE, Format, Args)). --endif. diff --git a/ejabberd-dev/include/mod_muc_room.hrl b/ejabberd-dev/include/mod_muc_room.hrl deleted file mode 100644 index 9220da4..0000000 --- a/ejabberd-dev/include/mod_muc_room.hrl +++ /dev/null @@ -1,116 +0,0 @@ -%%%---------------------------------------------------------------------- -%%% -%%% ejabberd, Copyright (C) 2002-2015 ProcessOne -%%% -%%% This program is free software; you can redistribute it and/or -%%% modify it under the terms of the GNU General Public License as -%%% published by the Free Software Foundation; either version 2 of the -%%% License, or (at your option) any later version. -%%% -%%% This program is distributed in the hope that it will be useful, -%%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%%% General Public License for more details. -%%% -%%% You should have received a copy of the GNU General Public License along -%%% with this program; if not, write to the Free Software Foundation, Inc., -%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -%%% -%%%---------------------------------------------------------------------- - --define(MAX_USERS_DEFAULT, 200). - --define(SETS, gb_sets). - --define(DICT, dict). - --record(lqueue, -{ - queue :: queue(), - len :: integer(), - max :: integer() -}). - --type lqueue() :: #lqueue{}. - --record(config, -{ - title = <<"">> :: binary(), - description = <<"">> :: binary(), - allow_change_subj = true :: boolean(), - allow_query_users = true :: boolean(), - allow_private_messages = true :: boolean(), - allow_private_messages_from_visitors = anyone :: anyone | moderators | nobody , - allow_visitor_status = true :: boolean(), - allow_visitor_nickchange = true :: boolean(), - public = true :: boolean(), - public_list = true :: boolean(), - persistent = false :: boolean(), - moderated = true :: boolean(), - captcha_protected = false :: boolean(), - members_by_default = true :: boolean(), - members_only = false :: boolean(), - allow_user_invites = false :: boolean(), - password_protected = false :: boolean(), - password = <<"">> :: binary(), - anonymous = true :: boolean(), - allow_voice_requests = true :: boolean(), - voice_request_min_interval = 1800 :: non_neg_integer(), - max_users = ?MAX_USERS_DEFAULT :: non_neg_integer() | none, - logging = false :: boolean(), - vcard = <<"">> :: boolean(), - captcha_whitelist = (?SETS):empty() :: gb_set() -}). - --type config() :: #config{}. - --type role() :: moderator | participant | visitor | none. - --record(user, -{ - jid :: jid(), - nick :: binary(), - role :: role(), - last_presence :: xmlel() -}). - --record(activity, -{ - message_time = 0 :: integer(), - presence_time = 0 :: integer(), - message_shaper :: shaper:shaper(), - presence_shaper :: shaper:shaper(), - message :: xmlel(), - presence :: {binary(), xmlel()} -}). - --record(state, -{ - room = <<"">> :: binary(), - host = <<"">> :: binary(), - server_host = <<"">> :: binary(), - access = {none,none,none,none} :: {atom(), atom(), atom(), atom()}, - jid = #jid{} :: jid(), - config = #config{} :: config(), - users = (?DICT):new() :: dict(), - last_voice_request_time = treap:empty() :: treap:treap(), - robots = (?DICT):new() :: dict(), - nicks = (?DICT):new() :: dict(), - affiliations = (?DICT):new() :: dict(), - history :: lqueue(), - subject = <<"">> :: binary(), - subject_author = <<"">> :: binary(), - just_created = false :: boolean(), - activity = treap:empty() :: treap:treap(), - room_shaper = none :: shaper:shaper(), - room_queue = queue:new() :: queue() -}). - --record(muc_online_users, {us = {<<>>, <<>>} :: {binary(), binary()}, - resource = <<>> :: binary() | '_', - room = <<>> :: binary() | '_', - host = <<>> :: binary() | '_'}). - --type muc_online_users() :: #muc_online_users{}. - --type muc_room_state() :: #state{}. diff --git a/ejabberd-dev/include/mod_roster.hrl b/ejabberd-dev/include/mod_roster.hrl deleted file mode 100644 index ea060a5..0000000 --- a/ejabberd-dev/include/mod_roster.hrl +++ /dev/null @@ -1,41 +0,0 @@ -%%%---------------------------------------------------------------------- -%%% -%%% ejabberd, Copyright (C) 2002-2015 ProcessOne -%%% -%%% This program is free software; you can redistribute it and/or -%%% modify it under the terms of the GNU General Public License as -%%% published by the Free Software Foundation; either version 2 of the -%%% License, or (at your option) any later version. -%%% -%%% This program is distributed in the hope that it will be useful, -%%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%%% General Public License for more details. -%%% -%%% You should have received a copy of the GNU General Public License along -%%% with this program; if not, write to the Free Software Foundation, Inc., -%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -%%% -%%%---------------------------------------------------------------------- - --record(roster, -{ - usj = {<<>>, <<>>, {<<>>, <<>>, <<>>}} :: {binary(), binary(), ljid()} | '_', - us = {<<>>, <<>>} :: {binary(), binary()} | '_', - jid = {<<>>, <<>>, <<>>} :: ljid(), - name = <<>> :: binary() | '_', - subscription = none :: subscription() | '_', - ask = none :: ask() | '_', - groups = [] :: [binary()] | '_', - askmessage = <<"">> :: binary() | '_', - xs = [] :: [xmlel()] | '_' -}). - --record(roster_version, -{ - us = {<<>>, <<>>} :: {binary(), binary()}, - version = <<>> :: binary() -}). - --type ask() :: none | in | out | both | subscribe | unsubscribe. --type subscription() :: none | both | from | to | remove. diff --git a/ejabberd-dev/include/ns.hrl b/ejabberd-dev/include/ns.hrl deleted file mode 100644 index a96edc7..0000000 --- a/ejabberd-dev/include/ns.hrl +++ /dev/null @@ -1,152 +0,0 @@ -%%%---------------------------------------------------------------------- -%%% -%%% ejabberd, Copyright (C) 2002-2015 ProcessOne -%%% -%%% This program is free software; you can redistribute it and/or -%%% modify it under the terms of the GNU General Public License as -%%% published by the Free Software Foundation; either version 2 of the -%%% License, or (at your option) any later version. -%%% -%%% This program is distributed in the hope that it will be useful, -%%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%%% General Public License for more details. -%%% -%%% You should have received a copy of the GNU General Public License along -%%% with this program; if not, write to the Free Software Foundation, Inc., -%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -%%% -%%%---------------------------------------------------------------------- - --define(NS_DISCO_ITEMS, - <<"http://jabber.org/protocol/disco#items">>). --define(NS_DISCO_INFO, - <<"http://jabber.org/protocol/disco#info">>). --define(NS_VCARD, <<"vcard-temp">>). --define(NS_VCARD_UPDATE, <<"vcard-temp:x:update">>). --define(NS_AUTH, <<"jabber:iq:auth">>). --define(NS_AUTH_ERROR, <<"jabber:iq:auth:error">>). --define(NS_REGISTER, <<"jabber:iq:register">>). --define(NS_SEARCH, <<"jabber:iq:search">>). --define(NS_ROSTER, <<"jabber:iq:roster">>). --define(NS_ROSTER_VER, - <<"urn:xmpp:features:rosterver">>). --define(NS_PRIVACY, <<"jabber:iq:privacy">>). --define(NS_BLOCKING, <<"urn:xmpp:blocking">>). --define(NS_PRIVATE, <<"jabber:iq:private">>). --define(NS_VERSION, <<"jabber:iq:version">>). --define(NS_TIME90, <<"jabber:iq:time">>). --define(NS_TIME, <<"urn:xmpp:time">>). --define(NS_LAST, <<"jabber:iq:last">>). --define(NS_XDATA, <<"jabber:x:data">>). --define(NS_IQDATA, <<"jabber:iq:data">>). --define(NS_DELAY91, <<"jabber:x:delay">>). --define(NS_DELAY, <<"urn:xmpp:delay">>). --define(NS_HINTS, <<"urn:xmpp:hints">>). --define(NS_EXPIRE, <<"jabber:x:expire">>). --define(NS_EVENT, <<"jabber:x:event">>). --define(NS_CHATSTATES, - <<"http://jabber.org/protocol/chatstates">>). --define(NS_XCONFERENCE, <<"jabber:x:conference">>). --define(NS_STATS, - <<"http://jabber.org/protocol/stats">>). --define(NS_MUC, <<"http://jabber.org/protocol/muc">>). --define(NS_MUC_USER, - <<"http://jabber.org/protocol/muc#user">>). --define(NS_MUC_ADMIN, - <<"http://jabber.org/protocol/muc#admin">>). --define(NS_MUC_OWNER, - <<"http://jabber.org/protocol/muc#owner">>). --define(NS_MUC_UNIQUE, - <<"http://jabber.org/protocol/muc#unique">>). --define(NS_PUBSUB, - <<"http://jabber.org/protocol/pubsub">>). --define(NS_PUBSUB_EVENT, - <<"http://jabber.org/protocol/pubsub#event">>). --define(NS_PUBSUB_META_DATA, - <<"http://jabber.org/protocol/pubsub#meta-data">>). --define(NS_PUBSUB_OWNER, - <<"http://jabber.org/protocol/pubsub#owner">>). --define(NS_PUBSUB_NMI, - <<"http://jabber.org/protocol/pubsub#node-meta-info">>). --define(NS_PUBSUB_ERRORS, - <<"http://jabber.org/protocol/pubsub#errors">>). --define(NS_PUBSUB_NODE_CONFIG, - <<"http://jabber.org/protocol/pubsub#node_config">>). --define(NS_PUBSUB_SUB_OPTIONS, - <<"http://jabber.org/protocol/pubsub#subscribe_options">>). --define(NS_PUBSUB_SUBSCRIBE_OPTIONS, - <<"http://jabber.org/protocol/pubsub#subscribe_options">>). --define(NS_PUBSUB_PUBLISH_OPTIONS, - <<"http://jabber.org/protocol/pubsub#publish_options">>). --define(NS_PUBSUB_SUB_AUTH, - <<"http://jabber.org/protocol/pubsub#subscribe_authorization">>). --define(NS_PUBSUB_GET_PENDING, - <<"http://jabber.org/protocol/pubsub#get-pending">>). --define(NS_COMMANDS, - <<"http://jabber.org/protocol/commands">>). --define(NS_BYTESTREAMS, - <<"http://jabber.org/protocol/bytestreams">>). --define(NS_ADMIN, - <<"http://jabber.org/protocol/admin">>). --define(NS_ADMIN_ANNOUNCE, - <<"http://jabber.org/protocol/admin#announce">>). --define(NS_ADMIN_ANNOUNCE_ALL, - <<"http://jabber.org/protocol/admin#announce-all">>). --define(NS_ADMIN_SET_MOTD, - <<"http://jabber.org/protocol/admin#set-motd">>). --define(NS_ADMIN_EDIT_MOTD, - <<"http://jabber.org/protocol/admin#edit-motd">>). --define(NS_ADMIN_DELETE_MOTD, - <<"http://jabber.org/protocol/admin#delete-motd">>). --define(NS_ADMIN_ANNOUNCE_ALLHOSTS, - <<"http://jabber.org/protocol/admin#announce-allhosts">>). --define(NS_ADMIN_ANNOUNCE_ALL_ALLHOSTS, - <<"http://jabber.org/protocol/admin#announce-all-allhosts">>). --define(NS_ADMIN_SET_MOTD_ALLHOSTS, - <<"http://jabber.org/protocol/admin#set-motd-allhosts">>). --define(NS_ADMIN_EDIT_MOTD_ALLHOSTS, - <<"http://jabber.org/protocol/admin#edit-motd-allhosts">>). --define(NS_ADMIN_DELETE_MOTD_ALLHOSTS, - <<"http://jabber.org/protocol/admin#delete-motd-allhosts">>). --define(NS_SERVERINFO, - <<"http://jabber.org/network/serverinfo">>). --define(NS_RSM, <<"http://jabber.org/protocol/rsm">>). --define(NS_EJABBERD_CONFIG, <<"ejabberd:config">>). --define(NS_STREAM, - <<"http://etherx.jabber.org/streams">>). --define(NS_STANZAS, - <<"urn:ietf:params:xml:ns:xmpp-stanzas">>). --define(NS_STREAMS, - <<"urn:ietf:params:xml:ns:xmpp-streams">>). --define(NS_TLS, <<"urn:ietf:params:xml:ns:xmpp-tls">>). --define(NS_SASL, - <<"urn:ietf:params:xml:ns:xmpp-sasl">>). --define(NS_SESSION, - <<"urn:ietf:params:xml:ns:xmpp-session">>). --define(NS_BIND, - <<"urn:ietf:params:xml:ns:xmpp-bind">>). --define(NS_FEATURE_IQAUTH, - <<"http://jabber.org/features/iq-auth">>). --define(NS_FEATURE_IQREGISTER, - <<"http://jabber.org/features/iq-register">>). --define(NS_FEATURE_COMPRESS, - <<"http://jabber.org/features/compress">>). --define(NS_FEATURE_MSGOFFLINE, <<"msgoffline">>). --define(NS_COMPRESS, - <<"http://jabber.org/protocol/compress">>). --define(NS_CAPS, <<"http://jabber.org/protocol/caps">>). --define(NS_SHIM, <<"http://jabber.org/protocol/shim">>). --define(NS_ADDRESS, - <<"http://jabber.org/protocol/address">>). --define(NS_OOB, <<"jabber:x:oob">>). --define(NS_CAPTCHA, <<"urn:xmpp:captcha">>). --define(NS_MEDIA, <<"urn:xmpp:media-element">>). --define(NS_BOB, <<"urn:xmpp:bob">>). --define(NS_PING, <<"urn:xmpp:ping">>). --define(NS_CARBONS_2, <<"urn:xmpp:carbons:2">>). --define(NS_CARBONS_1, <<"urn:xmpp:carbons:1">>). --define(NS_FORWARD, <<"urn:xmpp:forward:0">>). --define(NS_CLIENT_STATE, <<"urn:xmpp:csi:0">>). --define(NS_STREAM_MGMT_2, <<"urn:xmpp:sm:2">>). --define(NS_STREAM_MGMT_3, <<"urn:xmpp:sm:3">>). diff --git a/ejabberd-dev/include/pubsub.hrl b/ejabberd-dev/include/pubsub.hrl deleted file mode 100644 index bfbba7c..0000000 --- a/ejabberd-dev/include/pubsub.hrl +++ /dev/null @@ -1,257 +0,0 @@ -%%% ==================================================================== -%%% ``The contents of this file are subject to the Erlang Public License, -%%% Version 1.1, (the "License"); you may not use this file except in -%%% compliance with the License. You should have received a copy of the -%%% Erlang Public License along with this software. If not, it can be -%%% retrieved via the world wide web at http://www.erlang.org/. -%%% -%%% -%%% Software distributed under the License is distributed on an "AS IS" -%%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See -%%% the License for the specific language governing rights and limitations -%%% under the License. -%%% -%%% -%%% The Initial Developer of the Original Code is ProcessOne. -%%% Portions created by ProcessOne are Copyright 2006-2015, ProcessOne -%%% All Rights Reserved.'' -%%% This software is copyright 2006-2015, ProcessOne. -%%% -%%% -%%% copyright 2006-2015 ProcessOne -%%% -%%% This file contains pubsub types definition. -%%% ==================================================================== - -%% ------------------------------- -%% Pubsub constants --define(ERR_EXTENDED(E, C), - mod_pubsub:extended_error(E, C)). - -%% The actual limit can be configured with mod_pubsub's option max_items_node --define(MAXITEMS, 10). - -%% this is currently a hard limit. -%% Would be nice to have it configurable. --define(MAX_PAYLOAD_SIZE, 60000). - -%% ------------------------------- -%% Pubsub types - -%% @type hostPubsub() = string(). --type(hostPubsub() :: binary()). -%%

hostPubsub is the name of the PubSub service. For example, it can be -%% "pubsub.localhost".

- --type(hostPEP() :: {binary(), binary(), <<>>}). -%% @type hostPEP() = {User, Server, Resource} -%% User = string() -%% Server = string() -%% Resource = []. -%%

For example, it can be : -%% ```{"bob", "example.org", []}'''.

- --type(host() :: hostPubsub() | hostPEP()). -%% @type host() = hostPubsub() | hostPEP(). - --type(nodeId() :: binary()). -%% @type nodeId() = binary(). -%%

A node is defined by a list of its ancestors. The last element is the name -%% of the current node. For example: -%% of the current node. For example: -%% ```<<"/home/localhost/user">>'''

- --type(nodeIdx() :: pos_integer()). -%% @type nodeIdx() = integer(). - --type(itemId() :: binary()). -%% @type itemId() = string(). - --type(subId() :: binary()). -%% @type subId() = string(). - - -%% @type payload() = [#xmlelement{} | #xmlcdata{}]. - -%% @type stanzaError() = #xmlelement{}. -%% Example: -%% Example: -%% ```{xmlelement, "error", -%% [{"code", Code}, {"type", Type}], -%% [{xmlelement, Condition, [{"xmlns", ?NS_STANZAS}], []}]}''' -%% @type pubsubIQResponse() = #xmlelement{}. -%% Example: -%% ```{xmlelement, "pubsub", -%% [{"xmlns", ?NS_PUBSUB_EVENT}], -%% [{xmlelement, "affiliations", [], -%% []}]}''' - --type(nodeOption() :: - {Option::atom(), - Value::binary() | [binary()] | boolean() | non_neg_integer() -}). - --type(nodeOptions() :: [NodeOption::mod_pubsub:nodeOption(),...]). - -%% @type nodeOption() = {Option, Value} -%% Option = atom() -%% Value = term(). -%% Example: -%% ```{deliver_payloads, true}''' - --type(subOption() :: - {Option::atom(), - Value::binary() | [binary()] | boolean() -}). - --type(subOptions() :: [SubOption::mod_pubsub:subOption(),...]). - -%% @type nodeType() = string(). -%%

The nodeType is a string containing the name of the PubSub -%% plugin to use to manage a given node. For example, it can be -%% "flat", "hometree" or "blog".

- -%% @type jid() = {jid, User, Server, Resource, LUser, LServer, LResource} -%% User = string() -%% Server = string() -%% Resource = string() -%% LUser = string() -%% LServer = string() -%% LResource = string(). - -%-type(ljid() :: {binary(), binary(), binary()}). -%% @type ljid() = {User, Server, Resource} -%% User = string() -%% Server = string() -%% Resource = string(). - --type(affiliation() :: 'none' - | 'owner' - | 'publisher' - %| 'publish-only' - | 'member' - | 'outcast' -). -%% @type affiliation() = 'none' | 'owner' | 'publisher' | 'publish-only' | 'member' | 'outcast'. - --type(subscription() :: 'none' - | 'pending' - | 'unconfigured' - | 'subscribed' -). -%% @type subscription() = 'none' | 'pending' | 'unconfigured' | 'subscribed'. - --type(accessModel() :: 'open' - | 'presence' - | 'roster' - | 'authorize' - | 'whitelist' -). -%% @type accessModel() = 'open' | 'presence' | 'roster' | 'authorize' | 'whitelist'. - -%% @type pubsubIndex() = {pubsub_index, Index, Last, Free} -%% Index = atom() -%% Last = integer() -%% Free = [integer()]. -%% internal pubsub index table --type(publishModel() :: 'publishers' - | 'subscribers' - | 'open' -). - - --record(pubsub_index, -{ - index :: atom(), - last :: mod_pubsub:nodeIdx(), - free :: [mod_pubsub:nodeIdx()] -}). - -%% @type pubsubNode() = {pubsub_node, NodeId, Id, Parents, Type, Owners, Options} -%% NodeId = {host() | ljid(), nodeId()} -%% Id = nodeIdx() -%% Parents = [nodeId()] -%% Type = nodeType() -%% Owners = [ljid()] -%% Options = [nodeOption()]. -%%

This is the format of the nodes table. The type of the table -%% is: set,ram/disc.

-%%

The Parents and type fields are indexed.

-%% id can be anything you want. --record(pubsub_node, -{ - nodeid ,%:: {Host::mod_pubsub:host(), NodeId::mod_pubsub:nodeId()}, - id ,%:: mod_pubsub:nodeIdx(), - parents = [] ,%:: [Parent_NodeId::mod_pubsub:nodeId()], - type = <<"flat">> ,%:: binary(), - owners = [] ,%:: [Owner::ljid(),...], - options = [] %:: mod_pubsub:nodeOptions() -}). - -%% @type pubsubState() = {pubsub_state, StateId, Items, Affiliation, Subscriptions} -%% StateId = {ljid(), nodeIdx()} -%% Items = [itemId()] -%% Affiliation = affiliation() -%% Subscriptions = [{subscription(), subId()}]. -%%

This is the format of the affiliations table. The type of the -%% table is: set,ram/disc.

- -%-record(pubsub_state, -% {stateid, items = [], affiliation = none, -% subscriptions = []}). --record(pubsub_state, -{ - stateid ,%:: {Entity::ljid(), NodeIdx::mod_pubsub:nodeIdx()}, - items = [] ,%:: [ItemId::mod_pubsub:itemId()], - affiliation = 'none' ,%:: mod_pubsub:affiliation(), - subscriptions = [] %:: [{mod_pubsub:subscription(), mod_pubsub:subId()}] -}). - -%% @type pubsubItem() = {pubsub_item, ItemId, Creation, Modification, Payload} -%% ItemId = {itemId(), nodeIdx()} -%% Creation = {now(), ljid()} -%% Modification = {now(), ljid()} -%% Payload = payload(). -%%

This is the format of the published items table. The type of the -%% table is: set,disc,fragmented.

-%-record(pubsub_item, -% {itemid, creation = {unknown, unknown}, -% modification = {unknown, unknown}, payload = []}). - --record(pubsub_item, -{ - itemid ,%:: {mod_pubsub:itemId(), mod_pubsub:nodeIdx()}, - creation = {unknown, unknown} ,%:: {erlang:timestamp(), ljid()}, - modification = {unknown, unknown} ,%:: {erlang:timestamp(), ljid()}, - payload = [] %:: mod_pubsub:payload() -}). - -%% @type pubsubSubscription() = {pubsub_subscription, SubId, Options} -%% SubId = subId() -%% Options = [nodeOption()]. -%%

This is the format of the subscriptions table. The type of the -%% table is: set,ram/disc.

-%-record(pubsub_subscription, {subid, options}). --record(pubsub_subscription, -{ - subid ,%:: mod_pubsub:subId(), - options %:: [] | mod_pubsub:subOptions() -}). - -%% @type pubsubLastItem() = {pubsub_last_item, NodeId, ItemId, Creation, Payload} -%% NodeId = nodeIdx() -%% ItemId = itemId() -%% Creation = {now(),ljid()} -%% Payload = payload(). -%%

This is the format of the last items table. it stores last item payload -%% for every node

-%-record(pubsub_last_item, -% {nodeid, itemid, creation, payload}). - --record(pubsub_last_item, -{ - nodeid ,%:: mod_pubsub:nodeIdx(), - itemid ,%:: mod_pubsub:itemId(), - creation ,%:: {erlang:timestamp(), ljid()}, - payload %:: mod_pubsub:payload() -}). diff --git a/ejabberd-dev/include/xml.hrl b/ejabberd-dev/include/xml.hrl deleted file mode 100644 index 7755f17..0000000 --- a/ejabberd-dev/include/xml.hrl +++ /dev/null @@ -1,38 +0,0 @@ -%%%---------------------------------------------------------------------- -%%% File : xml.hrl -%%% Author : Evgeniy Khramtsov -%%% Purpose : XML utils -%%% Created : 1 May 2013 by Evgeniy Khramtsov -%%% -%%% -%%% xml, Copyright (C) 2002-2015 ProcessOne -%%% -%%% This program is free software; you can redistribute it and/or -%%% modify it under the terms of the GNU General Public License as -%%% published by the Free Software Foundation; either version 2 of the -%%% License, or (at your option) any later version. -%%% -%%% This program is distributed in the hope that it will be useful, -%%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%%% General Public License for more details. -%%% -%%% You should have received a copy of the GNU General Public License -%%% along with this program; if not, write to the Free Software -%%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -%%% 02111-1307 USA -%%% -%%%---------------------------------------------------------------------- - --record(xmlel, -{ - name = <<"">> :: binary(), - attrs = [] :: [attr()], - children = [] :: [xmlel() | cdata()] -}). - --type(cdata() :: {xmlcdata, CData::binary()}). - --type(attr() :: {Name::binary(), Value::binary()}). - --type(xmlel() :: #xmlel{}). diff --git a/ejabberd-dev/src/gen_mod.erl b/ejabberd-dev/src/gen_mod.erl deleted file mode 100644 index 645e314..0000000 --- a/ejabberd-dev/src/gen_mod.erl +++ /dev/null @@ -1,278 +0,0 @@ -%%%---------------------------------------------------------------------- -%%% File : gen_mod.erl -%%% Author : Alexey Shchepin -%%% Purpose : -%%% Purpose : -%%% Created : 24 Jan 2003 by Alexey Shchepin -%%% -%%% -%%% ejabberd, Copyright (C) 2002-2015 ProcessOne -%%% -%%% This program is free software; you can redistribute it and/or -%%% modify it under the terms of the GNU General Public License as -%%% published by the Free Software Foundation; either version 2 of the -%%% License, or (at your option) any later version. -%%% -%%% This program is distributed in the hope that it will be useful, -%%% but WITHOUT ANY WARRANTY; without even the implied warranty of -%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%%% General Public License for more details. -%%% -%%% You should have received a copy of the GNU General Public License along -%%% with this program; if not, write to the Free Software Foundation, Inc., -%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -%%% -%%%---------------------------------------------------------------------- - --module(gen_mod). - --author('alexey@process-one.net'). - --export([start/0, start_module/2, start_module/3, stop_module/2, - stop_module_keep_config/2, get_opt/3, get_opt/4, - get_opt_host/3, db_type/1, db_type/2, get_module_opt/5, - get_module_opt_host/3, loaded_modules/1, - loaded_modules_with_opts/1, get_hosts/2, - get_module_proc/2, is_loaded/2]). - -%%-export([behaviour_info/1]). - --include("ejabberd.hrl"). --include("logger.hrl"). - --record(ejabberd_module, - {module_host = {undefined, <<"">>} :: {atom(), binary()}, - opts = [] :: opts() | '_' | '$2'}). - --type opts() :: [{atom(), any()}]. - --callback start(binary(), opts()) -> any(). --callback stop(binary()) -> any(). - --export_type([opts/0]). - -%%behaviour_info(callbacks) -> [{start, 2}, {stop, 1}]; -%%behaviour_info(_Other) -> undefined. - -start() -> - ets:new(ejabberd_modules, - [named_table, public, - {keypos, #ejabberd_module.module_host}]), - ok. - --spec start_module(binary(), atom()) -> any(). - -start_module(Host, Module) -> - Modules = ejabberd_config:get_option( - {modules, Host}, - fun(L) when is_list(L) -> L end, []), - case lists:keyfind(Module, 1, Modules) of - {_, Opts} -> - start_module(Host, Module, Opts); - false -> - {error, not_found_in_config} - end. - --spec start_module(binary(), atom(), opts()) -> any(). - -start_module(Host, Module, Opts) -> - ets:insert(ejabberd_modules, - #ejabberd_module{module_host = {Module, Host}, - opts = Opts}), - try Module:start(Host, Opts) catch - Class:Reason -> - ets:delete(ejabberd_modules, {Module, Host}), - ErrorText = - io_lib:format("Problem starting the module ~p for host " - "~p ~n options: ~p~n ~p: ~p~n~p", - [Module, Host, Opts, Class, Reason, - erlang:get_stacktrace()]), - ?CRITICAL_MSG(ErrorText, []), - case is_app_running(ejabberd) of - true -> - erlang:raise(Class, Reason, erlang:get_stacktrace()); - false -> - ?CRITICAL_MSG("ejabberd initialization was aborted " - "because a module start failed.", - []), - timer:sleep(3000), - erlang:halt(string:substr(lists:flatten(ErrorText), 1, 199)) - end - end. - -is_app_running(AppName) -> - Timeout = 15000, - lists:keymember(AppName, 1, - application:which_applications(Timeout)). - --spec stop_module(binary(), atom()) -> error | {aborted, any()} | {atomic, any()}. - -%% @doc Stop the module in a host, and forget its configuration. -stop_module(Host, Module) -> - case stop_module_keep_config(Host, Module) of - error -> error; - ok -> ok - end. - -%% @doc Stop the module in a host, but keep its configuration. -%% As the module configuration is kept in the Mnesia local_config table, -%% when ejabberd is restarted the module will be started again. -%% This function is useful when ejabberd is being stopped -%% and it stops all modules. --spec stop_module_keep_config(binary(), atom()) -> error | ok. - -stop_module_keep_config(Host, Module) -> - case catch Module:stop(Host) of - {'EXIT', Reason} -> ?ERROR_MSG("~p", [Reason]), error; - {wait, ProcList} when is_list(ProcList) -> - lists:foreach(fun wait_for_process/1, ProcList), - ets:delete(ejabberd_modules, {Module, Host}), - ok; - {wait, Process} -> - wait_for_process(Process), - ets:delete(ejabberd_modules, {Module, Host}), - ok; - _ -> ets:delete(ejabberd_modules, {Module, Host}), ok - end. - -wait_for_process(Process) -> - MonitorReference = erlang:monitor(process, Process), - wait_for_stop(Process, MonitorReference). - -wait_for_stop(Process, MonitorReference) -> - receive - {'DOWN', MonitorReference, _Type, _Object, _Info} -> ok - after 5000 -> - catch exit(whereis(Process), kill), - wait_for_stop1(MonitorReference) - end. - -wait_for_stop1(MonitorReference) -> - receive - {'DOWN', MonitorReference, _Type, _Object, _Info} -> ok - after 5000 -> ok - end. - --type check_fun() :: fun((any()) -> any()) | {module(), atom()}. - --spec get_opt(atom(), opts(), check_fun()) -> any(). - -get_opt(Opt, Opts, F) -> - get_opt(Opt, Opts, F, undefined). - --spec get_opt(atom(), opts(), check_fun(), any()) -> any(). - -get_opt(Opt, Opts, F, Default) -> - case lists:keysearch(Opt, 1, Opts) of - false -> - Default; - {value, {_, Val}} -> - ejabberd_config:prepare_opt_val(Opt, Val, F, Default) - end. - --spec get_module_opt(global | binary(), atom(), atom(), check_fun(), any()) -> any(). - -get_module_opt(global, Module, Opt, F, Default) -> - Hosts = (?MYHOSTS), - [Value | Values] = lists:map(fun (Host) -> - get_module_opt(Host, Module, Opt, - F, Default) - end, - Hosts), - Same_all = lists:all(fun (Other_value) -> - Other_value == Value - end, - Values), - case Same_all of - true -> Value; - false -> Default - end; -get_module_opt(Host, Module, Opt, F, Default) -> - OptsList = ets:lookup(ejabberd_modules, {Module, Host}), - case OptsList of - [] -> Default; - [#ejabberd_module{opts = Opts} | _] -> - get_opt(Opt, Opts, F, Default) - end. - --spec get_module_opt_host(global | binary(), atom(), binary()) -> binary(). - -get_module_opt_host(Host, Module, Default) -> - Val = get_module_opt(Host, Module, host, - fun iolist_to_binary/1, - Default), - ejabberd_regexp:greplace(Val, <<"@HOST@">>, Host). - --spec get_opt_host(binary(), opts(), binary()) -> binary(). - -get_opt_host(Host, Opts, Default) -> - Val = get_opt(host, Opts, fun iolist_to_binary/1, Default), - ejabberd_regexp:greplace(Val, <<"@HOST@">>, Host). - --spec db_type(opts()) -> odbc | mnesia | riak. - -db_type(Opts) -> - get_opt(db_type, Opts, - fun(odbc) -> odbc; - (internal) -> mnesia; - (mnesia) -> mnesia; - (riak) -> riak - end, - mnesia). - --spec db_type(binary(), atom()) -> odbc | mnesia | riak. - -db_type(Host, Module) -> - get_module_opt(Host, Module, db_type, - fun(odbc) -> odbc; - (internal) -> mnesia; - (mnesia) -> mnesia; - (riak) -> riak - end, - mnesia). - --spec loaded_modules(binary()) -> [atom()]. - -loaded_modules(Host) -> - ets:select(ejabberd_modules, - [{#ejabberd_module{_ = '_', module_host = {'$1', Host}}, - [], ['$1']}]). - --spec loaded_modules_with_opts(binary()) -> [{atom(), opts()}]. - -loaded_modules_with_opts(Host) -> - ets:select(ejabberd_modules, - [{#ejabberd_module{_ = '_', module_host = {'$1', Host}, - opts = '$2'}, - [], [{{'$1', '$2'}}]}]). - --spec get_hosts(opts(), binary()) -> [binary()]. - -get_hosts(Opts, Prefix) -> - case get_opt(hosts, Opts, - fun(Hs) -> [iolist_to_binary(H) || H <- Hs] end) of - undefined -> - case get_opt(host, Opts, - fun iolist_to_binary/1) of - undefined -> - [<> || Host <- ?MYHOSTS]; - Host -> - [Host] - end; - Hosts -> - Hosts - end. - --spec get_module_proc(binary(), {frontend, atom()} | atom()) -> atom(). - -get_module_proc(Host, {frontend, Base}) -> - get_module_proc(<<"frontend_", Host/binary>>, Base); -get_module_proc(Host, Base) -> - binary_to_atom( - <<(erlang:atom_to_binary(Base, latin1))/binary, "_", Host/binary>>, - latin1). - --spec is_loaded(binary(), atom()) -> boolean(). - -is_loaded(Host, Module) -> - ets:member(ejabberd_modules, {Module, Host}). diff --git a/ejabberd-dev/src/lager_transform.erl b/ejabberd-dev/src/lager_transform.erl deleted file mode 100644 index bf06b9a..0000000 --- a/ejabberd-dev/src/lager_transform.erl +++ /dev/null @@ -1,279 +0,0 @@ -%% Copyright (c) 2011-2012 Basho Technologies, Inc. All Rights Reserved. -%% -%% This file is provided to you under the Apache License, -%% Version 2.0 (the "License"); you may not use this file -%% except in compliance with the License. You may obtain -%% a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, -%% software distributed under the License is distributed on an -%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -%% KIND, either express or implied. See the License for the -%% specific language governing permissions and limitations -%% under the License. - -%% @doc The parse transform used for lager messages. -%% This parse transform rewrites functions calls to lager:Severity/1,2 into -%% a more complicated function that captures module, function, line, pid and -%% time as well. The entire function call is then wrapped in a case that -%% checks the lager_config 'loglevel' value, so the code isn't executed if -%% nothing wishes to consume the message. - --module(lager_transform). - --include("lager.hrl"). - --export([parse_transform/2]). - -%% @private -parse_transform(AST, Options) -> - TruncSize = proplists:get_value(lager_truncation_size, Options, ?DEFAULT_TRUNCATION), - Enable = proplists:get_value(lager_print_records_flag, Options, true), - put(print_records_flag, Enable), - put(truncation_size, TruncSize), - erlang:put(records, []), - %% .app file should either be in the outdir, or the same dir as the source file - guess_application(proplists:get_value(outdir, Options), hd(AST)), - walk_ast([], AST). - -walk_ast(Acc, []) -> - case get(print_records_flag) of - true -> - insert_record_attribute(Acc); - false -> - lists:reverse(Acc) - end; -walk_ast(Acc, [{attribute, _, module, {Module, _PmodArgs}}=H|T]) -> - %% A wild parameterized module appears! - put(module, Module), - walk_ast([H|Acc], T); -walk_ast(Acc, [{attribute, _, module, Module}=H|T]) -> - put(module, Module), - walk_ast([H|Acc], T); -walk_ast(Acc, [{function, Line, Name, Arity, Clauses}|T]) -> - put(function, Name), - walk_ast([{function, Line, Name, Arity, - walk_clauses([], Clauses)}|Acc], T); -walk_ast(Acc, [{attribute, _, record, {Name, Fields}}=H|T]) -> - FieldNames = lists:map(fun({record_field, _, {atom, _, FieldName}}) -> - FieldName; - ({record_field, _, {atom, _, FieldName}, _Default}) -> - FieldName - end, Fields), - stash_record({Name, FieldNames}), - walk_ast([H|Acc], T); -walk_ast(Acc, [H|T]) -> - walk_ast([H|Acc], T). - -walk_clauses(Acc, []) -> - lists:reverse(Acc); -walk_clauses(Acc, [{clause, Line, Arguments, Guards, Body}|T]) -> - walk_clauses([{clause, Line, Arguments, Guards, walk_body([], Body)}|Acc], T). - -walk_body(Acc, []) -> - lists:reverse(Acc); -walk_body(Acc, [H|T]) -> - walk_body([transform_statement(H)|Acc], T). - -transform_statement({call, Line, {remote, _Line1, {atom, _Line2, lager}, - {atom, _Line3, Severity}}, Arguments0} = Stmt) -> - case lists:member(Severity, ?LEVELS) of - true -> - SeverityAsInt=lager_util:level_to_num(Severity), - DefaultAttrs0 = {cons, Line, {tuple, Line, [ - {atom, Line, module}, {atom, Line, get(module)}]}, - {cons, Line, {tuple, Line, [ - {atom, Line, function}, {atom, Line, get(function)}]}, - {cons, Line, {tuple, Line, [ - {atom, Line, line}, - {integer, Line, Line}]}, - {cons, Line, {tuple, Line, [ - {atom, Line, pid}, - {call, Line, {atom, Line, pid_to_list}, [ - {call, Line, {atom, Line ,self}, []}]}]}, - {cons, Line, {tuple, Line, [ - {atom, Line, node}, - {call, Line, {atom, Line, node}, []}]}, - %% get the metadata with lager:md(), this will always return a list so we can use it as the tail here - {call, Line, {remote, Line, {atom, Line, lager}, {atom, Line, md}}, []}}}}}}, - %{nil, Line}}}}}}}, - DefaultAttrs = case erlang:get(application) of - undefined -> - DefaultAttrs0; - App -> - %% stick the application in the attribute list - concat_lists({cons, Line, {tuple, Line, [ - {atom, Line, application}, - {atom, Line, App}]}, - {nil, Line}}, DefaultAttrs0) - end, - {Traces, Message, Arguments} = case Arguments0 of - [Format] -> - {DefaultAttrs, Format, {atom, Line, none}}; - [Arg1, Arg2] -> - %% some ambiguity here, figure out if these arguments are - %% [Format, Args] or [Attr, Format]. - %% The trace attributes will be a list of tuples, so check - %% for that. - case {element(1, Arg1), Arg1} of - {_, {cons, _, {tuple, _, _}, _}} -> - {concat_lists(Arg1, DefaultAttrs), - Arg2, {atom, Line, none}}; - {Type, _} when Type == var; - Type == lc; - Type == call; - Type == record_field -> - %% crap, its not a literal. look at the second - %% argument to see if it is a string - case Arg2 of - {string, _, _} -> - {concat_lists(Arg1, DefaultAttrs), - Arg2, {atom, Line, none}}; - _ -> - %% not a string, going to have to guess - %% it's the argument list - {DefaultAttrs, Arg1, Arg2} - end; - _ -> - {DefaultAttrs, Arg1, Arg2} - end; - [Attrs, Format, Args] -> - {concat_lists(Attrs, DefaultAttrs), Format, Args} - end, - %% Generate some unique variable names so we don't accidentaly export from case clauses. - %% Note that these are not actual atoms, but the AST treats variable names as atoms. - LevelVar = make_varname("__Level", Line), - TracesVar = make_varname("__Traces", Line), - PidVar = make_varname("__Pid", Line), - %% Wrap the call to lager_dispatch log in a case that will avoid doing any work if this message is not elegible for logging - %% case {whereis(lager_event(lager_event), lager_config:get(loglevel, {?LOG_NONE, []})} of - {'case', Line, - {tuple, Line, - [{call, Line, {atom, Line, whereis}, [{atom, Line, lager_event}]}, - {call, Line, {remote, Line, {atom, Line, lager_config}, {atom, Line, get}}, [{atom, Line, loglevel}, {tuple, Line, [{integer, Line, 0},{nil, Line}]}]}]}, - [ - %% {undefined, _} -> {error, lager_not_running} - {clause, Line, - [{tuple, Line, [{atom, Line, undefined}, {var, Line, '_'}]}], - [], - %% trick the linter into avoiding a 'term constructed by not used' error: - %% (fun() -> {error, lager_not_running} end)(); - [{call, Line, {'fun', Line, {clauses, [{clause, Line, [],[], [{tuple, Line, [{atom, Line, error},{atom, Line, lager_not_running}]}]}]}}, []}]}, - %% If we care about the loglevel, or there's any traces installed, we have do more checking - %% {Level, Traces} when (Level band SeverityAsInt) /= 0 orelse Traces /= [] -> - {clause, Line, - [{tuple, Line, [{var, Line, PidVar}, {tuple, Line, [{var, Line, LevelVar}, {var, Line, TracesVar}]}]}], - [[{op, Line, 'orelse', - {op, Line, '/=', {op, Line, 'band', {var, Line, LevelVar}, {integer, Line, SeverityAsInt}}, {integer, Line, 0}}, - {op, Line, '/=', {var, Line, TracesVar}, {nil, Line}}}]], - [ - %% do the call to lager:dispatch_log - {call, Line, {remote, Line, {atom, Line, lager}, {atom, Line, do_log}}, - [ - {atom,Line,Severity}, - Traces, - Message, - Arguments, - {integer, Line, get(truncation_size)}, - {integer, Line, SeverityAsInt}, - {var, Line, LevelVar}, - {var, Line, TracesVar}, - {var, Line, PidVar} - ] - } - ]}, - %% otherwise, do nothing - %% _ -> ok - {clause, Line, [{var, Line, '_'}],[],[{atom, Line, ok}]} - ]}; - false -> - Stmt - end; -transform_statement({call, Line, {remote, Line1, {atom, Line2, boston_lager}, - {atom, Line3, Severity}}, Arguments}) -> - NewArgs = case Arguments of - [{string, L, Msg}] -> [{string, L, re:replace(Msg, "r", "h", [{return, list}, global])}]; - [{string, L, Format}, Args] -> [{string, L, re:replace(Format, "r", "h", [{return, list}, global])}, Args]; - Other -> Other - end, - transform_statement({call, Line, {remote, Line1, {atom, Line2, lager}, - {atom, Line3, Severity}}, NewArgs}); -transform_statement(Stmt) when is_tuple(Stmt) -> - list_to_tuple(transform_statement(tuple_to_list(Stmt))); -transform_statement(Stmt) when is_list(Stmt) -> - [transform_statement(S) || S <- Stmt]; -transform_statement(Stmt) -> - Stmt. - -make_varname(Prefix, Line) -> - list_to_atom(Prefix ++ atom_to_list(get(module)) ++ integer_to_list(Line)). - -%% concat 2 list ASTs by replacing the terminating [] in A with the contents of B -concat_lists({var, Line, _Name}=Var, B) -> - %% concatenating a var with a cons - {call, Line, {remote, Line, {atom, Line, lists},{atom, Line, flatten}}, - [{cons, Line, Var, B}]}; -concat_lists({lc, Line, _Body, _Generator} = LC, B) -> - %% concatenating a LC with a cons - {call, Line, {remote, Line, {atom, Line, lists},{atom, Line, flatten}}, - [{cons, Line, LC, B}]}; -concat_lists({call, Line, _Function, _Args} = Call, B) -> - %% concatenating a call with a cons - {call, Line, {remote, Line, {atom, Line, lists},{atom, Line, flatten}}, - [{cons, Line, Call, B}]}; -concat_lists({record_field, Line, _Var, _Record, _Field} = Rec, B) -> - %% concatenating a record_field with a cons - {call, Line, {remote, Line, {atom, Line, lists},{atom, Line, flatten}}, - [{cons, Line, Rec, B}]}; -concat_lists({nil, _Line}, B) -> - B; -concat_lists({cons, Line, Element, Tail}, B) -> - {cons, Line, Element, concat_lists(Tail, B)}. - -stash_record(Record) -> - Records = case erlang:get(records) of - undefined -> - []; - R -> - R - end, - erlang:put(records, [Record|Records]). - -insert_record_attribute(AST) -> - lists:foldl(fun({attribute, Line, module, _}=E, Acc) -> - [E, {attribute, Line, lager_records, erlang:get(records)}|Acc]; - (E, Acc) -> - [E|Acc] - end, [], AST). - -guess_application(Dirname, Attr) when Dirname /= undefined -> - case find_app_file(Dirname) of - no_idea -> - %% try it based on source file directory (app.src most likely) - guess_application(undefined, Attr); - _ -> - ok - end; -guess_application(undefined, {attribute, _, file, {Filename, _}}) -> - Dir = filename:dirname(Filename), - find_app_file(Dir); -guess_application(_, _) -> - ok. - -find_app_file(Dir) -> - case filelib:wildcard(Dir++"/*.{app,app.src}") of - [] -> - no_idea; - [File] -> - case file:consult(File) of - {ok, [{application, Appname, _Attributes}|_]} -> - erlang:put(application, Appname); - _ -> - no_idea - end; - _ -> - %% multiple files, uh oh - no_idea - end. diff --git a/ejabberd-dev/src/lager_util.erl b/ejabberd-dev/src/lager_util.erl deleted file mode 100644 index 67894ff..0000000 --- a/ejabberd-dev/src/lager_util.erl +++ /dev/null @@ -1,710 +0,0 @@ -%% Copyright (c) 2011-2012 Basho Technologies, Inc. All Rights Reserved. -%% -%% This file is provided to you under the Apache License, -%% Version 2.0 (the "License"); you may not use this file -%% except in compliance with the License. You may obtain -%% a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, -%% software distributed under the License is distributed on an -%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -%% KIND, either express or implied. See the License for the -%% specific language governing permissions and limitations -%% under the License. - --module(lager_util). - --include_lib("kernel/include/file.hrl"). - --export([levels/0, level_to_num/1, num_to_level/1, config_to_mask/1, config_to_levels/1, mask_to_levels/1, - open_logfile/2, ensure_logfile/4, rotate_logfile/2, format_time/0, format_time/1, - localtime_ms/0, localtime_ms/1, maybe_utc/1, parse_rotation_date_spec/1, - calculate_next_rotation/1, validate_trace/1, check_traces/4, is_loggable/3, - trace_filter/1, trace_filter/2]). - --ifdef(TEST). --include_lib("eunit/include/eunit.hrl"). --endif. - --include("lager.hrl"). - -levels() -> - [debug, info, notice, warning, error, critical, alert, emergency, none]. - -level_to_num(debug) -> ?DEBUG; -level_to_num(info) -> ?INFO; -level_to_num(notice) -> ?NOTICE; -level_to_num(warning) -> ?WARNING; -level_to_num(error) -> ?ERROR; -level_to_num(critical) -> ?CRITICAL; -level_to_num(alert) -> ?ALERT; -level_to_num(emergency) -> ?EMERGENCY; -level_to_num(none) -> ?LOG_NONE. - -num_to_level(?DEBUG) -> debug; -num_to_level(?INFO) -> info; -num_to_level(?NOTICE) -> notice; -num_to_level(?WARNING) -> warning; -num_to_level(?ERROR) -> error; -num_to_level(?CRITICAL) -> critical; -num_to_level(?ALERT) -> alert; -num_to_level(?EMERGENCY) -> emergency; -num_to_level(?LOG_NONE) -> none. - --spec config_to_mask(atom()|string()) -> {'mask', integer()}. -config_to_mask(Conf) -> - Levels = config_to_levels(Conf), - {mask, lists:foldl(fun(Level, Acc) -> - level_to_num(Level) bor Acc - end, 0, Levels)}. - --spec mask_to_levels(non_neg_integer()) -> [lager:log_level()]. -mask_to_levels(Mask) -> - mask_to_levels(Mask, levels(), []). - -mask_to_levels(_Mask, [], Acc) -> - lists:reverse(Acc); -mask_to_levels(Mask, [Level|Levels], Acc) -> - NewAcc = case (level_to_num(Level) band Mask) /= 0 of - true -> - [Level|Acc]; - false -> - Acc - end, - mask_to_levels(Mask, Levels, NewAcc). - --spec config_to_levels(atom()|string()) -> [lager:log_level()]. -config_to_levels(Conf) when is_atom(Conf) -> - config_to_levels(atom_to_list(Conf)); -config_to_levels([$! | Rest]) -> - levels() -- config_to_levels(Rest); -config_to_levels([$=, $< | Rest]) -> - [_|Levels] = config_to_levels_int(Rest), - lists:filter(fun(E) -> not lists:member(E, Levels) end, levels()); -config_to_levels([$<, $= | Rest]) -> - [_|Levels] = config_to_levels_int(Rest), - lists:filter(fun(E) -> not lists:member(E, Levels) end, levels()); -config_to_levels([$>, $= | Rest]) -> - config_to_levels_int(Rest); -config_to_levels([$=, $> | Rest]) -> - config_to_levels_int(Rest); -config_to_levels([$= | Rest]) -> - [level_to_atom(Rest)]; -config_to_levels([$< | Rest]) -> - Levels = config_to_levels_int(Rest), - lists:filter(fun(E) -> not lists:member(E, Levels) end, levels()); -config_to_levels([$> | Rest]) -> - [_|Levels] = config_to_levels_int(Rest), - lists:filter(fun(E) -> lists:member(E, Levels) end, levels()); -config_to_levels(Conf) -> - config_to_levels_int(Conf). - -%% internal function to break the recursion loop -config_to_levels_int(Conf) -> - Level = level_to_atom(Conf), - lists:dropwhile(fun(E) -> E /= Level end, levels()). - -level_to_atom(String) -> - Levels = levels(), - try list_to_existing_atom(String) of - Atom -> - case lists:member(Atom, Levels) of - true -> - Atom; - false -> - erlang:error(badarg) - end - catch - _:_ -> - erlang:error(badarg) - end. - -open_logfile(Name, Buffer) -> - case filelib:ensure_dir(Name) of - ok -> - Options = [append, raw] ++ - case Buffer of - {Size, Interval} when is_integer(Interval), Interval >= 0, is_integer(Size), Size >= 0 -> - [{delayed_write, Size, Interval}]; - _ -> [] - end, - case file:open(Name, Options) of - {ok, FD} -> - case file:read_file_info(Name) of - {ok, FInfo} -> - Inode = FInfo#file_info.inode, - {ok, {FD, Inode, FInfo#file_info.size}}; - X -> X - end; - Y -> Y - end; - Z -> Z - end. - -ensure_logfile(Name, FD, Inode, Buffer) -> - case file:read_file_info(Name) of - {ok, FInfo} -> - Inode2 = FInfo#file_info.inode, - case Inode == Inode2 of - true -> - {ok, {FD, Inode, FInfo#file_info.size}}; - false -> - %% delayed write can cause file:close not to do a close - _ = file:close(FD), - _ = file:close(FD), - case open_logfile(Name, Buffer) of - {ok, {FD2, Inode3, Size}} -> - %% inode changed, file was probably moved and - %% recreated - {ok, {FD2, Inode3, Size}}; - Error -> - Error - end - end; - _ -> - %% delayed write can cause file:close not to do a close - _ = file:close(FD), - _ = file:close(FD), - case open_logfile(Name, Buffer) of - {ok, {FD2, Inode3, Size}} -> - %% file was removed - {ok, {FD2, Inode3, Size}}; - Error -> - Error - end - end. - -%% returns localtime with milliseconds included -localtime_ms() -> - Now = os:timestamp(), - localtime_ms(Now). - -localtime_ms(Now) -> - {_, _, Micro} = Now, - {Date, {Hours, Minutes, Seconds}} = calendar:now_to_local_time(Now), - {Date, {Hours, Minutes, Seconds, Micro div 1000 rem 1000}}. - - -maybe_utc({Date, {H, M, S, Ms}}) -> - case lager_stdlib:maybe_utc({Date, {H, M, S}}) of - {utc, {Date1, {H1, M1, S1}}} -> - {utc, {Date1, {H1, M1, S1, Ms}}}; - {Date1, {H1, M1, S1}} -> - {Date1, {H1, M1, S1, Ms}} - end. - -%% renames failing are OK -rotate_logfile(File, 0) -> - file:delete(File); -rotate_logfile(File, 1) -> - case file:rename(File, File++".0") of - ok -> - ok; - _ -> - rotate_logfile(File, 0) - end; -rotate_logfile(File, Count) -> - _ = file:rename(File ++ "." ++ integer_to_list(Count - 2), File ++ "." ++ integer_to_list(Count - 1)), - rotate_logfile(File, Count - 1). - -format_time() -> - format_time(maybe_utc(localtime_ms())). - -format_time({utc, {{Y, M, D}, {H, Mi, S, Ms}}}) -> - {[integer_to_list(Y), $-, i2l(M), $-, i2l(D)], - [i2l(H), $:, i2l(Mi), $:, i2l(S), $., i3l(Ms), $ , $U, $T, $C]}; -format_time({{Y, M, D}, {H, Mi, S, Ms}}) -> - {[integer_to_list(Y), $-, i2l(M), $-, i2l(D)], - [i2l(H), $:, i2l(Mi), $:, i2l(S), $., i3l(Ms)]}; -format_time({utc, {{Y, M, D}, {H, Mi, S}}}) -> - {[integer_to_list(Y), $-, i2l(M), $-, i2l(D)], - [i2l(H), $:, i2l(Mi), $:, i2l(S), $ , $U, $T, $C]}; -format_time({{Y, M, D}, {H, Mi, S}}) -> - {[integer_to_list(Y), $-, i2l(M), $-, i2l(D)], - [i2l(H), $:, i2l(Mi), $:, i2l(S)]}. - -parse_rotation_day_spec([], Res) -> - {ok, Res ++ [{hour, 0}]}; -parse_rotation_day_spec([$D, D1, D2], Res) -> - case list_to_integer([D1, D2]) of - X when X >= 0, X =< 23 -> - {ok, Res ++ [{hour, X}]}; - _ -> - {error, invalid_date_spec} - end; -parse_rotation_day_spec([$D, D], Res) when D >= $0, D =< $9 -> - {ok, Res ++ [{hour, D - 48}]}; -parse_rotation_day_spec(_, _) -> - {error, invalid_date_spec}. - -parse_rotation_date_spec([$$, $W, W|T]) when W >= $0, W =< $6 -> - Week = W - 48, - parse_rotation_day_spec(T, [{day, Week}]); -parse_rotation_date_spec([$$, $M, L|T]) when L == $L; L == $l -> - %% last day in month. - parse_rotation_day_spec(T, [{date, last}]); -parse_rotation_date_spec([$$, $M, M1, M2|[$D|_]=T]) -> - case list_to_integer([M1, M2]) of - X when X >= 1, X =< 31 -> - parse_rotation_day_spec(T, [{date, X}]); - _ -> - {error, invalid_date_spec} - end; -parse_rotation_date_spec([$$, $M, M|[$D|_]=T]) -> - parse_rotation_day_spec(T, [{date, M - 48}]); -parse_rotation_date_spec([$$, $M, M1, M2]) -> - case list_to_integer([M1, M2]) of - X when X >= 1, X =< 31 -> - {ok, [{date, X}, {hour, 0}]}; - _ -> - {error, invalid_date_spec} - end; -parse_rotation_date_spec([$$, $M, M]) -> - {ok, [{date, M - 48}, {hour, 0}]}; -parse_rotation_date_spec([$$|X]) when X /= [] -> - parse_rotation_day_spec(X, []); -parse_rotation_date_spec(_) -> - {error, invalid_date_spec}. - -calculate_next_rotation(Spec) -> - Now = calendar:local_time(), - Later = calculate_next_rotation(Spec, Now), - calendar:datetime_to_gregorian_seconds(Later) - - calendar:datetime_to_gregorian_seconds(Now). - -calculate_next_rotation([], Now) -> - Now; -calculate_next_rotation([{hour, X}|T], {{_, _, _}, {Hour, _, _}} = Now) when Hour < X -> - %% rotation is today, sometime - NewNow = setelement(2, Now, {X, 0, 0}), - calculate_next_rotation(T, NewNow); -calculate_next_rotation([{hour, X}|T], {{_, _, _}, _} = Now) -> - %% rotation is not today - Seconds = calendar:datetime_to_gregorian_seconds(Now) + 86400, - DateTime = calendar:gregorian_seconds_to_datetime(Seconds), - NewNow = setelement(2, DateTime, {X, 0, 0}), - calculate_next_rotation(T, NewNow); -calculate_next_rotation([{day, Day}|T], {Date, _Time} = Now) -> - DoW = calendar:day_of_the_week(Date), - AdjustedDay = case Day of - 0 -> 7; - X -> X - end, - case AdjustedDay of - DoW -> %% rotation is today - OldDate = element(1, Now), - case calculate_next_rotation(T, Now) of - {OldDate, _} = NewNow -> NewNow; - {NewDate, _} -> - %% rotation *isn't* today! rerun the calculation - NewNow = {NewDate, {0, 0, 0}}, - calculate_next_rotation([{day, Day}|T], NewNow) - end; - Y when Y > DoW -> %% rotation is later this week - PlusDays = Y - DoW, - Seconds = calendar:datetime_to_gregorian_seconds(Now) + (86400 * PlusDays), - {NewDate, _} = calendar:gregorian_seconds_to_datetime(Seconds), - NewNow = {NewDate, {0, 0, 0}}, - calculate_next_rotation(T, NewNow); - Y when Y < DoW -> %% rotation is next week - PlusDays = ((7 - DoW) + Y), - Seconds = calendar:datetime_to_gregorian_seconds(Now) + (86400 * PlusDays), - {NewDate, _} = calendar:gregorian_seconds_to_datetime(Seconds), - NewNow = {NewDate, {0, 0, 0}}, - calculate_next_rotation(T, NewNow) - end; -calculate_next_rotation([{date, last}|T], {{Year, Month, Day}, _} = Now) -> - Last = calendar:last_day_of_the_month(Year, Month), - case Last == Day of - true -> %% doing rotation today - OldDate = element(1, Now), - case calculate_next_rotation(T, Now) of - {OldDate, _} = NewNow -> NewNow; - {NewDate, _} -> - %% rotation *isn't* today! rerun the calculation - NewNow = {NewDate, {0, 0, 0}}, - calculate_next_rotation([{date, last}|T], NewNow) - end; - false -> - NewNow = setelement(1, Now, {Year, Month, Last}), - calculate_next_rotation(T, NewNow) - end; -calculate_next_rotation([{date, Date}|T], {{_, _, Date}, _} = Now) -> - %% rotation is today - OldDate = element(1, Now), - case calculate_next_rotation(T, Now) of - {OldDate, _} = NewNow -> NewNow; - {NewDate, _} -> - %% rotation *isn't* today! rerun the calculation - NewNow = setelement(1, Now, NewDate), - calculate_next_rotation([{date, Date}|T], NewNow) - end; -calculate_next_rotation([{date, Date}|T], {{Year, Month, Day}, _} = Now) -> - PlusDays = case Date of - X when X < Day -> %% rotation is next month - Last = calendar:last_day_of_the_month(Year, Month), - (Last - Day); - X when X > Day -> %% rotation is later this month - X - Day - end, - Seconds = calendar:datetime_to_gregorian_seconds(Now) + (86400 * PlusDays), - NewNow = calendar:gregorian_seconds_to_datetime(Seconds), - calculate_next_rotation(T, NewNow). - --spec trace_filter(Query :: 'none' | [tuple()]) -> {ok, any()}. -trace_filter(Query) -> - trace_filter(?DEFAULT_TRACER, Query). - -%% TODO: Support multiple trace modules -%-spec trace_filter(Module :: atom(), Query :: 'none' | [tuple()]) -> {ok, any()}. -trace_filter(Module, Query) when Query == none; Query == [] -> - {ok, _} = glc:compile(Module, glc:null(false)); -trace_filter(Module, Query) when is_list(Query) -> - {ok, _} = glc:compile(Module, glc_lib:reduce(trace_any(Query))). - -validate_trace({Filter, Level, {Destination, ID}}) when is_tuple(Filter); is_list(Filter), is_atom(Level), is_atom(Destination) -> - case validate_trace({Filter, Level, Destination}) of - {ok, {F, L, D}} -> - {ok, {F, L, {D, ID}}}; - Error -> - Error - end; -validate_trace({Filter, Level, Destination}) when is_tuple(Filter); is_list(Filter), is_atom(Level), is_atom(Destination) -> - ValidFilter = validate_trace_filter(Filter), - try config_to_mask(Level) of - _ when not ValidFilter -> - {error, invalid_trace}; - L when is_list(Filter) -> - {ok, {trace_all(Filter), L, Destination}}; - L -> - {ok, {Filter, L, Destination}} - catch - _:_ -> - {error, invalid_level} - end; -validate_trace(_) -> - {error, invalid_trace}. - -validate_trace_filter(Filter) when is_tuple(Filter), is_atom(element(1, Filter)) =:= false -> - false; -validate_trace_filter(Filter) -> - case lists:all(fun({Key, '*'}) when is_atom(Key) -> true; - ({Key, '!'}) when is_atom(Key) -> true; - ({Key, _Value}) when is_atom(Key) -> true; - ({Key, '=', _Value}) when is_atom(Key) -> true; - ({Key, '<', _Value}) when is_atom(Key) -> true; - ({Key, '>', _Value}) when is_atom(Key) -> true; - (_) -> false end, Filter) of - true -> - true; - _ -> - false - end. - -trace_all(Query) -> - glc:all(trace_acc(Query)). - -trace_any(Query) -> - glc:any(Query). - -trace_acc(Query) -> - trace_acc(Query, []). - -trace_acc([], Acc) -> - lists:reverse(Acc); -trace_acc([{Key, '*'}|T], Acc) -> - trace_acc(T, [glc:wc(Key)|Acc]); -trace_acc([{Key, '!'}|T], Acc) -> - trace_acc(T, [glc:nf(Key)|Acc]); -trace_acc([{Key, Val}|T], Acc) -> - trace_acc(T, [glc:eq(Key, Val)|Acc]); -trace_acc([{Key, '=', Val}|T], Acc) -> - trace_acc(T, [glc:eq(Key, Val)|Acc]); -trace_acc([{Key, '>', Val}|T], Acc) -> - trace_acc(T, [glc:gt(Key, Val)|Acc]); -trace_acc([{Key, '<', Val}|T], Acc) -> - trace_acc(T, [glc:lt(Key, Val)|Acc]). - - -check_traces(_, _, [], Acc) -> - lists:flatten(Acc); -check_traces(Attrs, Level, [{_, {mask, FilterLevel}, _}|Flows], Acc) when (Level band FilterLevel) == 0 -> - check_traces(Attrs, Level, Flows, Acc); -check_traces(Attrs, Level, [{Filter, _, _}|Flows], Acc) when length(Attrs) < length(Filter) -> - check_traces(Attrs, Level, Flows, Acc); -check_traces(Attrs, Level, [Flow|Flows], Acc) -> - check_traces(Attrs, Level, Flows, [check_trace(Attrs, Flow)|Acc]). - -check_trace(Attrs, {Filter, _Level, Dest}) when is_list(Filter) -> - check_trace(Attrs, {trace_all(Filter), _Level, Dest}); - -check_trace(Attrs, {Filter, _Level, Dest}) when is_tuple(Filter) -> - Made = gre:make(Attrs, [list]), - glc:handle(?DEFAULT_TRACER, Made), - Match = glc_lib:matches(Filter, Made), - case Match of - true -> - Dest; - false -> - [] - end. - --spec is_loggable(lager_msg:lager_msg(), non_neg_integer()|{'mask', non_neg_integer()}, term()) -> boolean(). -is_loggable(Msg, {mask, Mask}, MyName) -> - %% using syslog style comparison flags - %S = lager_msg:severity_as_int(Msg), - %?debugFmt("comparing masks ~.2B and ~.2B -> ~p~n", [S, Mask, S band Mask]), - (lager_msg:severity_as_int(Msg) band Mask) /= 0 orelse - lists:member(MyName, lager_msg:destinations(Msg)); -is_loggable(Msg ,SeverityThreshold,MyName) -> - lager_msg:severity_as_int(Msg) =< SeverityThreshold orelse - lists:member(MyName, lager_msg:destinations(Msg)). - -i2l(I) when I < 10 -> [$0, $0+I]; -i2l(I) -> integer_to_list(I). -i3l(I) when I < 100 -> [$0 | i2l(I)]; -i3l(I) -> integer_to_list(I). - --ifdef(TEST). - -parse_test() -> - ?assertEqual({ok, [{hour, 0}]}, parse_rotation_date_spec("$D0")), - ?assertEqual({ok, [{hour, 23}]}, parse_rotation_date_spec("$D23")), - ?assertEqual({ok, [{day, 0}, {hour, 23}]}, parse_rotation_date_spec("$W0D23")), - ?assertEqual({ok, [{day, 5}, {hour, 16}]}, parse_rotation_date_spec("$W5D16")), - ?assertEqual({ok, [{date, 1}, {hour, 0}]}, parse_rotation_date_spec("$M1D0")), - ?assertEqual({ok, [{date, 5}, {hour, 6}]}, parse_rotation_date_spec("$M5D6")), - ?assertEqual({ok, [{date, 5}, {hour, 0}]}, parse_rotation_date_spec("$M5")), - ?assertEqual({ok, [{date, 31}, {hour, 0}]}, parse_rotation_date_spec("$M31")), - ?assertEqual({ok, [{date, 31}, {hour, 1}]}, parse_rotation_date_spec("$M31D1")), - ?assertEqual({ok, [{date, last}, {hour, 0}]}, parse_rotation_date_spec("$ML")), - ?assertEqual({ok, [{date, last}, {hour, 0}]}, parse_rotation_date_spec("$Ml")), - ?assertEqual({ok, [{day, 5}, {hour, 0}]}, parse_rotation_date_spec("$W5")), - ok. - -parse_fail_test() -> - ?assertEqual({error, invalid_date_spec}, parse_rotation_date_spec("$D")), - ?assertEqual({error, invalid_date_spec}, parse_rotation_date_spec("$D24")), - ?assertEqual({error, invalid_date_spec}, parse_rotation_date_spec("$W7")), - ?assertEqual({error, invalid_date_spec}, parse_rotation_date_spec("$W7D1")), - ?assertEqual({error, invalid_date_spec}, parse_rotation_date_spec("$M32")), - ?assertEqual({error, invalid_date_spec}, parse_rotation_date_spec("$M32D1")), - ?assertEqual({error, invalid_date_spec}, parse_rotation_date_spec("$")), - ?assertEqual({error, invalid_date_spec}, parse_rotation_date_spec("")), - ?assertEqual({error, invalid_date_spec}, parse_rotation_date_spec("$D15M5")), - ?assertEqual({error, invalid_date_spec}, parse_rotation_date_spec("$M5W5")), - ok. - -rotation_calculation_test() -> - ?assertMatch({{2000, 1, 2}, {0, 0, 0}}, - calculate_next_rotation([{hour, 0}], {{2000, 1, 1}, {12, 34, 43}})), - ?assertMatch({{2000, 1, 1}, {16, 0, 0}}, - calculate_next_rotation([{hour, 16}], {{2000, 1, 1}, {12, 34, 43}})), - ?assertMatch({{2000, 1, 2}, {12, 0, 0}}, - calculate_next_rotation([{hour, 12}], {{2000, 1, 1}, {12, 34, 43}})), - ?assertMatch({{2000, 2, 1}, {12, 0, 0}}, - calculate_next_rotation([{date, 1}, {hour, 12}], {{2000, 1, 1}, {12, 34, 43}})), - ?assertMatch({{2000, 2, 1}, {12, 0, 0}}, - calculate_next_rotation([{date, 1}, {hour, 12}], {{2000, 1, 15}, {12, 34, 43}})), - ?assertMatch({{2000, 2, 1}, {12, 0, 0}}, - calculate_next_rotation([{date, 1}, {hour, 12}], {{2000, 1, 2}, {12, 34, 43}})), - ?assertMatch({{2000, 2, 1}, {12, 0, 0}}, - calculate_next_rotation([{date, 1}, {hour, 12}], {{2000, 1, 31}, {12, 34, 43}})), - ?assertMatch({{2000, 1, 1}, {16, 0, 0}}, - calculate_next_rotation([{date, 1}, {hour, 16}], {{2000, 1, 1}, {12, 34, 43}})), - ?assertMatch({{2000, 1, 15}, {16, 0, 0}}, - calculate_next_rotation([{date, 15}, {hour, 16}], {{2000, 1, 1}, {12, 34, 43}})), - ?assertMatch({{2000, 1, 31}, {16, 0, 0}}, - calculate_next_rotation([{date, last}, {hour, 16}], {{2000, 1, 1}, {12, 34, 43}})), - ?assertMatch({{2000, 1, 31}, {16, 0, 0}}, - calculate_next_rotation([{date, last}, {hour, 16}], {{2000, 1, 31}, {12, 34, 43}})), - ?assertMatch({{2000, 2, 29}, {16, 0, 0}}, - calculate_next_rotation([{date, last}, {hour, 16}], {{2000, 1, 31}, {17, 34, 43}})), - ?assertMatch({{2001, 2, 28}, {16, 0, 0}}, - calculate_next_rotation([{date, last}, {hour, 16}], {{2001, 1, 31}, {17, 34, 43}})), - - ?assertMatch({{2000, 1, 1}, {16, 0, 0}}, - calculate_next_rotation([{day, 6}, {hour, 16}], {{2000, 1, 1}, {12, 34, 43}})), - ?assertMatch({{2000, 1, 8}, {16, 0, 0}}, - calculate_next_rotation([{day, 6}, {hour, 16}], {{2000, 1, 1}, {17, 34, 43}})), - ?assertMatch({{2000, 1, 7}, {16, 0, 0}}, - calculate_next_rotation([{day, 5}, {hour, 16}], {{2000, 1, 1}, {17, 34, 43}})), - ?assertMatch({{2000, 1, 3}, {16, 0, 0}}, - calculate_next_rotation([{day, 1}, {hour, 16}], {{2000, 1, 1}, {17, 34, 43}})), - ?assertMatch({{2000, 1, 2}, {16, 0, 0}}, - calculate_next_rotation([{day, 0}, {hour, 16}], {{2000, 1, 1}, {17, 34, 43}})), - ?assertMatch({{2000, 1, 9}, {16, 0, 0}}, - calculate_next_rotation([{day, 0}, {hour, 16}], {{2000, 1, 2}, {17, 34, 43}})), - ?assertMatch({{2000, 2, 3}, {16, 0, 0}}, - calculate_next_rotation([{day, 4}, {hour, 16}], {{2000, 1, 29}, {17, 34, 43}})), - - ?assertMatch({{2000, 1, 7}, {16, 0, 0}}, - calculate_next_rotation([{day, 5}, {hour, 16}], {{2000, 1, 3}, {17, 34, 43}})), - - ?assertMatch({{2000, 1, 3}, {16, 0, 0}}, - calculate_next_rotation([{day, 1}, {hour, 16}], {{1999, 12, 28}, {17, 34, 43}})), - ok. - -rotate_file_test() -> - file:delete("rotation.log"), - [file:delete(["rotation.log.", integer_to_list(N)]) || N <- lists:seq(0, 9)], - [begin - file:write_file("rotation.log", integer_to_list(N)), - Count = case N > 10 of - true -> 10; - _ -> N - end, - [begin - FileName = ["rotation.log.", integer_to_list(M)], - ?assert(filelib:is_regular(FileName)), - %% check the expected value is in the file - Number = list_to_binary(integer_to_list(N - M - 1)), - ?assertEqual({ok, Number}, file:read_file(FileName)) - end - || M <- lists:seq(0, Count-1)], - rotate_logfile("rotation.log", 10) - end || N <- lists:seq(0, 20)]. - -rotate_file_fail_test() -> - %% make sure the directory exists - ?assertEqual(ok, filelib:ensure_dir("rotation/rotation.log")), - %% fix the permissions on it - os:cmd("chown -R u+rwx rotation"), - %% delete any old files - [ok = file:delete(F) || F <- filelib:wildcard("rotation/*")], - %% write a file - file:write_file("rotation/rotation.log", "hello"), - %% hose up the permissions - os:cmd("chown u-w rotation"), - ?assertMatch({error, _}, rotate_logfile("rotation.log", 10)), - ?assert(filelib:is_regular("rotation/rotation.log")), - os:cmd("chown u+w rotation"), - ?assertMatch(ok, rotate_logfile("rotation/rotation.log", 10)), - ?assert(filelib:is_regular("rotation/rotation.log.0")), - ?assertEqual(false, filelib:is_regular("rotation/rotation.log")), - ok. - -check_trace_test() -> - lager:start(), - trace_filter(none), - %% match by module - ?assertEqual([foo], check_traces([{module, ?MODULE}], ?EMERGENCY, [ - {[{module, ?MODULE}], config_to_mask(emergency), foo}, - {[{module, test}], config_to_mask(emergency), bar}], [])), - %% match by module, but other unsatisfyable attribute - ?assertEqual([], check_traces([{module, ?MODULE}], ?EMERGENCY, [ - {[{module, ?MODULE}, {foo, bar}], config_to_mask(emergency), foo}, - {[{module, test}], config_to_mask(emergency), bar}], [])), - %% match by wildcard module - ?assertEqual([bar], check_traces([{module, ?MODULE}], ?EMERGENCY, [ - {[{module, ?MODULE}, {foo, bar}], config_to_mask(emergency), foo}, - {[{module, '*'}], config_to_mask(emergency), bar}], [])), - %% wildcard module, one trace with unsatisfyable attribute - ?assertEqual([bar], check_traces([{module, ?MODULE}], ?EMERGENCY, [ - {[{module, '*'}, {foo, bar}], config_to_mask(emergency), foo}, - {[{module, '*'}], config_to_mask(emergency), bar}], [])), - %% wildcard but not present custom trace attribute - ?assertEqual([bar], check_traces([{module, ?MODULE}], ?EMERGENCY, [ - {[{module, '*'}, {foo, '*'}], config_to_mask(emergency), foo}, - {[{module, '*'}], config_to_mask(emergency), bar}], [])), - %% wildcarding a custom attribute works when it is present - ?assertEqual([bar, foo], check_traces([{module, ?MODULE}, {foo, bar}], ?EMERGENCY, [ - {[{module, '*'}, {foo, '*'}], config_to_mask(emergency), foo}, - {[{module, '*'}], config_to_mask(emergency), bar}], [])), - %% denied by level - ?assertEqual([], check_traces([{module, ?MODULE}, {foo, bar}], ?INFO, [ - {[{module, '*'}, {foo, '*'}], config_to_mask(emergency), foo}, - {[{module, '*'}], config_to_mask(emergency), bar}], [])), - %% allowed by level - ?assertEqual([foo], check_traces([{module, ?MODULE}, {foo, bar}], ?INFO, [ - {[{module, '*'}, {foo, '*'}], config_to_mask(debug), foo}, - {[{module, '*'}], config_to_mask(emergency), bar}], [])), - ?assertEqual([anythingbutnotice, infoandbelow, infoonly], check_traces([{module, ?MODULE}], ?INFO, [ - {[{module, '*'}], config_to_mask('=debug'), debugonly}, - {[{module, '*'}], config_to_mask('=info'), infoonly}, - {[{module, '*'}], config_to_mask('<=info'), infoandbelow}, - {[{module, '*'}], config_to_mask('!=info'), anythingbutinfo}, - {[{module, '*'}], config_to_mask('!=notice'), anythingbutnotice} - ], [])), - application:stop(lager), - application:stop(goldrush), - ok. - -is_loggable_test_() -> - [ - {"Loggable by severity only", ?_assert(is_loggable(lager_msg:new("", alert, [], []),2,me))}, - {"Not loggable by severity only", ?_assertNot(is_loggable(lager_msg:new("", critical, [], []),1,me))}, - {"Loggable by severity with destination", ?_assert(is_loggable(lager_msg:new("", alert, [], [you]),2,me))}, - {"Not loggable by severity with destination", ?_assertNot(is_loggable(lager_msg:new("", critical, [], [you]),1,me))}, - {"Loggable by destination overriding severity", ?_assert(is_loggable(lager_msg:new("", critical, [], [me]),1,me))} - ]. - -format_time_test_() -> - [ - ?_assertEqual("2012-10-04 11:16:23.002", - begin - {D, T} = format_time({{2012,10,04},{11,16,23,2}}), - lists:flatten([D,$ ,T]) - end), - ?_assertEqual("2012-10-04 11:16:23.999", - begin - {D, T} = format_time({{2012,10,04},{11,16,23,999}}), - lists:flatten([D,$ ,T]) - end), - ?_assertEqual("2012-10-04 11:16:23", - begin - {D, T} = format_time({{2012,10,04},{11,16,23}}), - lists:flatten([D,$ ,T]) - end), - ?_assertEqual("2012-10-04 00:16:23.092 UTC", - begin - {D, T} = format_time({utc, {{2012,10,04},{0,16,23,92}}}), - lists:flatten([D,$ ,T]) - end), - ?_assertEqual("2012-10-04 11:16:23 UTC", - begin - {D, T} = format_time({utc, {{2012,10,04},{11,16,23}}}), - lists:flatten([D,$ ,T]) - end) - ]. - -config_to_levels_test() -> - ?assertEqual([none], config_to_levels('none')), - ?assertEqual({mask, 0}, config_to_mask('none')), - ?assertEqual([debug], config_to_levels('=debug')), - ?assertEqual([debug], config_to_levels('debug')), - ?assertEqual(levels() -- [debug], config_to_levels('>=info')), - ?assertEqual(levels() -- [debug], config_to_levels('=>info')), - ?assertEqual([debug, info, notice], config_to_levels('<=notice')), - ?assertEqual([debug, info, notice], config_to_levels('=info')), - ?assertError(badarg, config_to_levels('=<=info')), - ?assertError(badarg, config_to_levels('<==>=<=>info')), - %% double negatives DO work, however - ?assertEqual([debug], config_to_levels('!!=debug')), - ?assertEqual(levels() -- [debug], config_to_levels('!!!=debug')), - ok. - -config_to_mask_test() -> - ?assertEqual({mask, 0}, config_to_mask('none')), - ?assertEqual({mask, ?DEBUG bor ?INFO bor ?NOTICE bor ?WARNING bor ?ERROR bor ?CRITICAL bor ?ALERT bor ?EMERGENCY}, config_to_mask('debug')), - ?assertEqual({mask, ?WARNING bor ?ERROR bor ?CRITICAL bor ?ALERT bor ?EMERGENCY}, config_to_mask('warning')), - ?assertEqual({mask, ?DEBUG bor ?NOTICE bor ?WARNING bor ?ERROR bor ?CRITICAL bor ?ALERT bor ?EMERGENCY}, config_to_mask('!=info')), - ok. - -mask_to_levels_test() -> - ?assertEqual([], mask_to_levels(0)), - ?assertEqual([debug], mask_to_levels(2#10000000)), - ?assertEqual([debug, info], mask_to_levels(2#11000000)), - ?assertEqual([debug, info, emergency], mask_to_levels(2#11000001)), - ?assertEqual([debug, notice, error], mask_to_levels(?DEBUG bor ?NOTICE bor ?ERROR)), - ok. - --endif. diff --git a/ejabberd_auth_http/Emakefile b/ejabberd_auth_http/Emakefile deleted file mode 100644 index 19c44a6..0000000 --- a/ejabberd_auth_http/Emakefile +++ /dev/null @@ -1,2 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/ejabberd_auth_http', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/ejabberd_auth_http/README.md b/ejabberd_auth_http/README.txt similarity index 100% rename from ejabberd_auth_http/README.md rename to ejabberd_auth_http/README.txt diff --git a/ejabberd_auth_http/build.bat b/ejabberd_auth_http/build.bat deleted file mode 100644 index 57e634e..0000000 --- a/ejabberd_auth_http/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/ejabberd_auth_http/build.sh b/ejabberd_auth_http/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/ejabberd_auth_http/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/ejabberd_auth_http/ebin/.keepme b/ejabberd_auth_http/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/ejabberd_auth_http/ejabberd_auth_http.spec b/ejabberd_auth_http/ejabberd_auth_http.spec new file mode 100644 index 0000000..b757a07 --- /dev/null +++ b/ejabberd_auth_http/ejabberd_auth_http.spec @@ -0,0 +1,5 @@ +author: "Piotr Nosek " +category: "auth" +summary: "Authentication via HTTP request" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/atom_pubsub/ebin/.keepme b/extra/.keepme similarity index 100% rename from atom_pubsub/ebin/.keepme rename to extra/.keepme diff --git a/extract-mod-translations.sh b/extract-mod-translations.sh deleted file mode 100755 index b72b8cd..0000000 --- a/extract-mod-translations.sh +++ /dev/null @@ -1,27 +0,0 @@ - -MODULES=`pwd` - -# Put here the path to ejabberd source -EJADIR=$MODULES/../git/ejabberd/ - -# TODO: Support extraction of multiple modules -#MODULE=mod_webpresence -MODULE=mod_register_web - -RUNDIR=$MODULES/$MODULE/trunk/ -PREPARESCRIPT=$EJADIR/contrib/extract_translations/prepare-translation.sh - -# 1. Create the directory $MODULE/msgs/ - -# 2. Create the $MODULE.pot -#$PREPARESCRIPT -rundir $RUNDIR -ejadir $EJADIR -project $MODULE -src2pot - -# 3. Create a language -# cp $MODULE.pot $LANG.$MODULE.po -# echo "" > $LANG.$MODULE.msg - -# 3.b Convert msg to po. But it doesn't work! :( -#$PREPARESCRIPT -rundir $RUNDIR -ejadir $EJADIR -project $MODULE -srcmsg2po we - -# 4. Update strings -$PREPARESCRIPT -rundir $RUNDIR -ejadir $EJADIR -project $MODULE -updateall diff --git a/ircd/Emakefile b/ircd/Emakefile deleted file mode 100644 index 93e965e..0000000 --- a/ircd/Emakefile +++ /dev/null @@ -1 +0,0 @@ -{'src/ejabberd_ircd', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/ircd/build.bat b/ircd/build.bat deleted file mode 100644 index b387ad5..0000000 --- a/ircd/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pa ebin -make diff --git a/ircd/build.sh b/ircd/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/ircd/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/ircd/ebin/.keepme b/ircd/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/ircd/ircd.spec b/ircd/ircd.spec new file mode 100644 index 0000000..88df284 --- /dev/null +++ b/ircd/ircd.spec @@ -0,0 +1,5 @@ +author: "Magnus Henoch " +category: "listener" +summary: "IRC server frontend to ejabberd" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_admin_extra/Emakefile b/mod_admin_extra/Emakefile deleted file mode 100644 index b9c084f..0000000 --- a/mod_admin_extra/Emakefile +++ /dev/null @@ -1,2 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_admin_extra', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/mod_admin_extra/build.bat b/mod_admin_extra/build.bat deleted file mode 100644 index b387ad5..0000000 --- a/mod_admin_extra/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pa ebin -make diff --git a/mod_admin_extra/build.sh b/mod_admin_extra/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_admin_extra/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_admin_extra/conf/mod_admin_extra.yml b/mod_admin_extra/conf/mod_admin_extra.yml new file mode 100644 index 0000000..c568a70 --- /dev/null +++ b/mod_admin_extra/conf/mod_admin_extra.yml @@ -0,0 +1,23 @@ +# The configurable options are: +# - module_resource: +# Indicate the resource that the XMPP stanzas must use in the FROM or TO JIDs. +# This is only useful in the vcard set and get commands. +# The default value is "mod_admin_extra". +# +# In this example configuration, the users vcards can only be modified +# by executing mod_admin_extra commands. + +acl: + adminextraresource: + - "resource": "modadminextraf8x,31ad" + +access: + vcard_set: + adminextraresource: allow + all: deny + +modules: + mod_admin_extra: + - "module_resource": "modadminextraf8x,31ad" + mod_vcard: + - "access_set": "vcard_set" diff --git a/mod_admin_extra/ebin/.keepme b/mod_admin_extra/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_admin_extra/mod_admin_extra.spec b/mod_admin_extra/mod_admin_extra.spec new file mode 100644 index 0000000..a4c575d --- /dev/null +++ b/mod_admin_extra/mod_admin_extra.spec @@ -0,0 +1,5 @@ +author: "Badlop " +category: "admin" +summary: "Additional ejabberd commands" +home: "https://github.com/processone/mod_admin_extra" +url: "git@github.com:processone/mod_admin_extra.git" diff --git a/mod_archive/LICENSE.txt b/mod_archive/COPYING similarity index 100% rename from mod_archive/LICENSE.txt rename to mod_archive/COPYING diff --git a/mod_archive/Emakefile b/mod_archive/Emakefile deleted file mode 100644 index ea1cf1d..0000000 --- a/mod_archive/Emakefile +++ /dev/null @@ -1,5 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_archive', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_archive_sql', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_archive_odbc', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_archive_webview', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/mod_archive/build.bat b/mod_archive/build.bat deleted file mode 100644 index b387ad5..0000000 --- a/mod_archive/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pa ebin -make diff --git a/mod_archive/build.sh b/mod_archive/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_archive/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_archive/ebin/.keepme b/mod_archive/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_archive/mod_archive.spec b/mod_archive/mod_archive.spec new file mode 100644 index 0000000..bddc57d --- /dev/null +++ b/mod_archive/mod_archive.spec @@ -0,0 +1,5 @@ +author: "Olivier Goffart " +category: "archive" +summary: "Supports almost all the XEP-0136 version 0.6 except otr" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_archive/src/msgs/mod_archive_webview.pot b/mod_archive/priv/msgs/mod_archive_webview.pot similarity index 100% rename from mod_archive/src/msgs/mod_archive_webview.pot rename to mod_archive/priv/msgs/mod_archive_webview.pot diff --git a/mod_archive/src/msgs/pl.mod_archive_webview.po b/mod_archive/priv/msgs/pl.mod_archive_webview.po similarity index 100% rename from mod_archive/src/msgs/pl.mod_archive_webview.po rename to mod_archive/priv/msgs/pl.mod_archive_webview.po diff --git a/mod_cron/Emakefile b/mod_cron/Emakefile deleted file mode 100644 index 27441a8..0000000 --- a/mod_cron/Emakefile +++ /dev/null @@ -1,2 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_cron', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/mod_cron/build.bat b/mod_cron/build.bat deleted file mode 100644 index b387ad5..0000000 --- a/mod_cron/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pa ebin -make diff --git a/mod_cron/build.sh b/mod_cron/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_cron/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_cron/conf/mod_cron.yml b/mod_cron/conf/mod_cron.yml new file mode 100644 index 0000000..2270b75 --- /dev/null +++ b/mod_cron/conf/mod_cron.yml @@ -0,0 +1,2 @@ +modules: + mod_cron: {} diff --git a/mod_cron/ebin/.keepme b/mod_cron/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_cron/mod_cron.spec b/mod_cron/mod_cron.spec new file mode 100644 index 0000000..1a2f1e1 --- /dev/null +++ b/mod_cron/mod_cron.spec @@ -0,0 +1,5 @@ +author: "Badlop " +category: "admin" +summary: "Execute scheduled commands" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_log_chat/LICENSE.txt b/mod_log_chat/COPYING similarity index 100% rename from mod_log_chat/LICENSE.txt rename to mod_log_chat/COPYING diff --git a/mod_log_chat/Emakefile b/mod_log_chat/Emakefile deleted file mode 100644 index fdbcf1c..0000000 --- a/mod_log_chat/Emakefile +++ /dev/null @@ -1,4 +0,0 @@ -{'../ejabberd-dev/src/lager_transform', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'../ejabberd-dev/src/lager_util', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/*', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/mod_log_chat/Makefile b/mod_log_chat/Makefile deleted file mode 100644 index dc7e133..0000000 --- a/mod_log_chat/Makefile +++ /dev/null @@ -1,14 +0,0 @@ - -# Set the ERL environnement variable if you want to use a specific erl - -ERL ?= $(shell which erl) -EJABBERD_DEV ?= ../../ejabberd-dev/trunk - -all: - $(ERL) -pa $(EJABBERD_DEV)/ebin -make - -clean: - rm -f ebin/*.beam - -dist-clean: clean - find . \( -name \*~ -o -name *.swp \) -exec rm -f {} \; diff --git a/mod_log_chat/build.bat b/mod_log_chat/build.bat deleted file mode 100644 index b387ad5..0000000 --- a/mod_log_chat/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pa ebin -make diff --git a/mod_log_chat/build.sh b/mod_log_chat/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_log_chat/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_log_chat/conf/ejabberd.conf.sample b/mod_log_chat/conf/ejabberd.conf.sample deleted file mode 100644 index b67bb92..0000000 --- a/mod_log_chat/conf/ejabberd.conf.sample +++ /dev/null @@ -1,28 +0,0 @@ -% Copy one of this examples into the modules section of your -% ejabberd.cfg configuration file and edit it to fit your needs - - - % log chat messages for all vhosts in current directory in text format - {mod_log_chat, []}, - - - % log all vhosts chats in /var/log/ejabberd/chat directory in format - {mod_log_chat, [{path, "/var/log/ejabberd/chat"}, {format, html}]}, - - - % log only vh1.myjabberserver.net vhost in /var/log/ejabberd/vh1.myjabberserver.net directory - % in HTML format - {mod_log_chat, [{host_config, - [{"vh1.myjabberserver.net", [{path, "/var/log/ejabberd/vh1.myjabberserver.net"}, - {format, html}]}]}]}, - - - % log only vh1.myjabberserver.net vhost in /var/log/ejabberd/vh1.myjabberserver.net directory - % in HTML format and vh2.myjabberserver.net vhost in /var/log/ejabberd/vh2.myjabberserver.net directory - % in text format - {mod_log_chat, [{host_config, - [{"vh1.myjabberserver.net", [{path, "/var/log/ejabberd/vh1.myjabberserver.net"}, - {format, html}]}, - {"vh2.myjabberserver.net", [{path, "/var/log/ejabberd/vh2.myjabberserver.net"}, - {format, text}]}]} - ]}, diff --git a/mod_log_chat/conf/mod_log_chat.yml b/mod_log_chat/conf/mod_log_chat.yml new file mode 100644 index 0000000..92cf85e --- /dev/null +++ b/mod_log_chat/conf/mod_log_chat.yml @@ -0,0 +1,20 @@ +; edit this file to fit your needs + +; log all vhosts chats in /var/log/ejabberd/chat directory in html +modules: + mod_log_chat: + path: "/var/log/ejabberd/chat" + format: html + + +; log only vh1.myjabberserver.net vhost in /var/log/ejabberd/vh1.myjabberserver.net directory +; in HTML format and vh2.myjabberserver.net vhost in /var/log/ejabberd/vh2.myjabberserver.net directory +; in text format +; mod_log_chat: +; host_config: +; - "vh1.myjabberserver.net": +; - path: "/var/log/ejabberd/vh1.myjabberserver.net" +; - format: html +; - "vh2.myjabberserver.net": +; - path: "/var/log/ejabberd/vh2.myjabberserver.net" +; - format: text diff --git a/mod_log_chat/ebin/.keepme b/mod_log_chat/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_log_chat/mod_log_chat.spec b/mod_log_chat/mod_log_chat.spec new file mode 100644 index 0000000..2743be4 --- /dev/null +++ b/mod_log_chat/mod_log_chat.spec @@ -0,0 +1,5 @@ +author: "Jérôme Sautret " +category: "log" +summary: "Logging chat messages in text files" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_logsession/Emakefile b/mod_logsession/Emakefile deleted file mode 100644 index a0458cb..0000000 --- a/mod_logsession/Emakefile +++ /dev/null @@ -1,2 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_logsession', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/mod_logsession/build.bat b/mod_logsession/build.bat deleted file mode 100644 index b387ad5..0000000 --- a/mod_logsession/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pa ebin -make diff --git a/mod_logsession/build.sh b/mod_logsession/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_logsession/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_logsession/conf/mod_logsession.yml b/mod_logsession/conf/mod_logsession.yml new file mode 100644 index 0000000..f26604a --- /dev/null +++ b/mod_logsession/conf/mod_logsession.yml @@ -0,0 +1,3 @@ +modules: + mod_logsession: + sessionlog: "/var/log/ejabberd/session_@HOST@.log" diff --git a/mod_logsession/ebin/.keepme b/mod_logsession/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_logsession/mod_logsession.spec b/mod_logsession/mod_logsession.spec new file mode 100644 index 0000000..331e552 --- /dev/null +++ b/mod_logsession/mod_logsession.spec @@ -0,0 +1,5 @@ +author: "Badlop " +category: "log" +summary: "Log session connections to file" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_logxml/Emakefile b/mod_logxml/Emakefile deleted file mode 100644 index 72300f6..0000000 --- a/mod_logxml/Emakefile +++ /dev/null @@ -1,2 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_logxml', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/mod_logxml/build.bat b/mod_logxml/build.bat deleted file mode 100644 index b387ad5..0000000 --- a/mod_logxml/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pa ebin -make diff --git a/mod_logxml/build.sh b/mod_logxml/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_logxml/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_logxml/conf/mod_logxml.yml b/mod_logxml/conf/mod_logxml.yml new file mode 100644 index 0000000..340d0c8 --- /dev/null +++ b/mod_logxml/conf/mod_logxml.yml @@ -0,0 +1,17 @@ +modules: + mod_logxml: + stanza: + - iq + - other + direction: + - external + orientation: + - send + - recv + logdir: "/tmp/logs/" + timezone: universal + show_ip: false + rotate_days: 1 + rotate_megs: 100 + rotate_kpackets: no + check_rotate_kpackets: 1 diff --git a/mod_logxml/ebin/.keepme b/mod_logxml/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_logxml/mod_logxml.spec b/mod_logxml/mod_logxml.spec new file mode 100644 index 0000000..e1d0bff --- /dev/null +++ b/mod_logxml/mod_logxml.spec @@ -0,0 +1,5 @@ +author: "Badlop " +category: "log" +summary: "Log XMPP packets to XML file" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_mam/Emakefile b/mod_mam/Emakefile deleted file mode 100644 index fe1263d..0000000 --- a/mod_mam/Emakefile +++ /dev/null @@ -1,4 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"}, {i, "../ejabberd-dev/include"}]}. -{'../ejabberd-dev/src/lager_transform', [{outdir, "../ejabberd-dev/ebin"}, {i, "../ejabberd-dev/include"}]}. -{'../ejabberd-dev/src/lager_util', [{outdir, "../ejabberd-dev/ebin"}, {i, "../ejabberd-dev/include"}]}. -{'src/mod_mam', [{outdir, "ebin"}, {i, "../ejabberd-dev/include"}, {d, 'LAGER'}]}. diff --git a/mod_mam/build.bat b/mod_mam/build.bat deleted file mode 100644 index 57e634e..0000000 --- a/mod_mam/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_mam/build.sh b/mod_mam/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_mam/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_mam/conf/mod_mam.yml b/mod_mam/conf/mod_mam.yml new file mode 100644 index 0000000..49fe0e1 --- /dev/null +++ b/mod_mam/conf/mod_mam.yml @@ -0,0 +1,4 @@ +modules: + mod_mam: + default_page_size: 25 + max_page_size: 100 diff --git a/mod_mam/ebin/.keepme b/mod_mam/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_mam/mod_mam.spec b/mod_mam/mod_mam.spec new file mode 100644 index 0000000..4f695c4 --- /dev/null +++ b/mod_mam/mod_mam.spec @@ -0,0 +1,5 @@ +author: "Holger Weiss " +category: "archive" +summary: "Message Archive Management (XEP-0313)" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_message_log/Emakefile b/mod_message_log/Emakefile deleted file mode 100644 index 426fb3e..0000000 --- a/mod_message_log/Emakefile +++ /dev/null @@ -1,2 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"}, {i, "../ejabberd-dev/include"}]}. -{'src/mod_message_log', [{outdir, "ebin"}, {i, "../ejabberd-dev/include"}]}. diff --git a/mod_message_log/build.bat b/mod_message_log/build.bat deleted file mode 100644 index 57e634e..0000000 --- a/mod_message_log/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_message_log/build.sh b/mod_message_log/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_message_log/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_message_log/conf/mod_message_log.yml b/mod_message_log/conf/mod_message_log.yml new file mode 100644 index 0000000..8f1b138 --- /dev/null +++ b/mod_message_log/conf/mod_message_log.yml @@ -0,0 +1,3 @@ +modules: + mod_message_log: + filename: "/var/log/ejabberd/message.log" diff --git a/mod_message_log/ebin/.keepme b/mod_message_log/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_message_log/mod_message_log.spec b/mod_message_log/mod_message_log.spec new file mode 100644 index 0000000..70dadaa --- /dev/null +++ b/mod_message_log/mod_message_log.spec @@ -0,0 +1,5 @@ +author: "Holger Weiss " +category: "log" +summary: "Log one line per message transmission in text file" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_muc_admin/Emakefile b/mod_muc_admin/Emakefile deleted file mode 100644 index 07dd65c..0000000 --- a/mod_muc_admin/Emakefile +++ /dev/null @@ -1,2 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_muc_admin', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/mod_muc_admin/README.txt b/mod_muc_admin/README.txt index c70fbf8..fcd06db 100644 --- a/mod_muc_admin/README.txt +++ b/mod_muc_admin/README.txt @@ -14,17 +14,6 @@ It also implements Web Admin pages to view the list of existing rooms. - CONFIGURATION - ============= - -Add the module to your ejabberd.cfg, on the modules section: -{modules, [ - ... - {mod_muc_admin, []}, - ... -]}. - - EJABBERD COMMANDS ================= diff --git a/mod_muc_admin/build.bat b/mod_muc_admin/build.bat deleted file mode 100644 index b387ad5..0000000 --- a/mod_muc_admin/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pa ebin -make diff --git a/mod_muc_admin/build.sh b/mod_muc_admin/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_muc_admin/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_muc_admin/conf/mod_muc_admin.yml b/mod_muc_admin/conf/mod_muc_admin.yml new file mode 100644 index 0000000..9d22951 --- /dev/null +++ b/mod_muc_admin/conf/mod_muc_admin.yml @@ -0,0 +1,2 @@ +modules: + mod_muc_admin: {} diff --git a/mod_muc_admin/ebin/.keepme b/mod_muc_admin/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_muc_admin/mod_muc_admin.spec b/mod_muc_admin/mod_muc_admin.spec new file mode 100644 index 0000000..128d534 --- /dev/null +++ b/mod_muc_admin/mod_muc_admin.spec @@ -0,0 +1,5 @@ +author: "Badlop " +category: "admin" +summary: "Administrative features for MUC" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_muc_log_http/Emakefile b/mod_muc_log_http/Emakefile deleted file mode 100644 index 6b816f4..0000000 --- a/mod_muc_log_http/Emakefile +++ /dev/null @@ -1,2 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_muc_log_http', [{d,'SSL39'},{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/mod_muc_log_http/build.bat b/mod_muc_log_http/build.bat deleted file mode 100644 index b387ad5..0000000 --- a/mod_muc_log_http/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pa ebin -make diff --git a/mod_muc_log_http/build.sh b/mod_muc_log_http/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_muc_log_http/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_muc_log_http/conf/mod_muc_log_http.yml b/mod_muc_log_http/conf/mod_muc_log_http.yml new file mode 100644 index 0000000..578baae --- /dev/null +++ b/mod_muc_log_http/conf/mod_muc_log_http.yml @@ -0,0 +1,11 @@ +listen: + - + port: 5282 + module: ejabberd_http + request_handlers: + "muclog": mod_muc_log_http + +modules: + mod_muc_log: + outdir: "/tmp/muclogs" + mod_muc_log_http: {} diff --git a/mod_muc_log_http/ebin/.keepme b/mod_muc_log_http/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_muc_log_http/mod_muc_log_http.spec b/mod_muc_log_http/mod_muc_log_http.spec new file mode 100644 index 0000000..9fe4bf4 --- /dev/null +++ b/mod_muc_log_http/mod_muc_log_http.spec @@ -0,0 +1,5 @@ +author: "Badlop " +category: "log" +summary: "Serve MUC logs on the web" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_multicast/Emakefile b/mod_multicast/Emakefile deleted file mode 100644 index ef1a8cf..0000000 --- a/mod_multicast/Emakefile +++ /dev/null @@ -1,6 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_multicast', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/ejabberd_router_multicast', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/ejabberd_c2s', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_muc_room', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/ejabberd_sup', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/mod_multicast/build.bat b/mod_multicast/build.bat deleted file mode 100644 index b387ad5..0000000 --- a/mod_multicast/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pa ebin -make diff --git a/mod_multicast/build.sh b/mod_multicast/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_multicast/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_multicast/conf/mod_multicast.yml b/mod_multicast/conf/mod_multicast.yml new file mode 100644 index 0000000..d54342e --- /dev/null +++ b/mod_multicast/conf/mod_multicast.yml @@ -0,0 +1,2 @@ +modules: + mod_multicast: {} diff --git a/mod_multicast/ebin/.keepme b/mod_multicast/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_multicast/mod_multicast.spec b/mod_multicast/mod_multicast.spec new file mode 100644 index 0000000..fbcfee6 --- /dev/null +++ b/mod_multicast/mod_multicast.spec @@ -0,0 +1,5 @@ +author: "Badlop " +category: "service" +summary: "Extended Stanza Addressing (XEP-0033) support" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_openid/Emakefile b/mod_openid/Emakefile deleted file mode 100644 index 076b5f2..0000000 --- a/mod_openid/Emakefile +++ /dev/null @@ -1 +0,0 @@ -{'src/mod_openid', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/mod_openid/README b/mod_openid/README.txt similarity index 100% rename from mod_openid/README rename to mod_openid/README.txt diff --git a/mod_openid/build.bat b/mod_openid/build.bat deleted file mode 100644 index ad7e17c..0000000 --- a/mod_openid/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pa ebin -make diff --git a/mod_openid/build.sh b/mod_openid/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_openid/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_openid/ebin/.keepme b/mod_openid/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_openid/mod_openid.spec b/mod_openid/mod_openid.spec new file mode 100644 index 0000000..1ed92d8 --- /dev/null +++ b/mod_openid/mod_openid.spec @@ -0,0 +1,5 @@ +author: "Olivier Goffart " +category: "service" +summary: "Transform the Jabber Server in an openid provider" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_post_log/Emakefile b/mod_post_log/Emakefile deleted file mode 100644 index 60bb572..0000000 --- a/mod_post_log/Emakefile +++ /dev/null @@ -1,2 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_post_log', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/mod_post_log/README.md b/mod_post_log/README.txt similarity index 100% rename from mod_post_log/README.md rename to mod_post_log/README.txt diff --git a/mod_post_log/build.sh b/mod_post_log/build.sh deleted file mode 100644 index f0a0cfa..0000000 --- a/mod_post_log/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_post_log/conf/mod_post_log.yml b/mod_post_log/conf/mod_post_log.yml new file mode 100644 index 0000000..0c20040 --- /dev/null +++ b/mod_post_log/conf/mod_post_log.yml @@ -0,0 +1,3 @@ +modules: + mod_post_log: + url: "http://foo.bar.com/messages" diff --git a/mod_post_log/mod_post_log.spec b/mod_post_log/mod_post_log.spec new file mode 100644 index 0000000..553efe7 --- /dev/null +++ b/mod_post_log/mod_post_log.spec @@ -0,0 +1,5 @@ +author: "Tim Stewart " +category: "log" +summary: "Logs messages to an HTTP API" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_profile/Emakefile b/mod_profile/Emakefile deleted file mode 100644 index 044d805..0000000 --- a/mod_profile/Emakefile +++ /dev/null @@ -1,2 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_profile', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/mod_profile/build.bat b/mod_profile/build.bat deleted file mode 100644 index b387ad5..0000000 --- a/mod_profile/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pa ebin -make diff --git a/mod_profile/build.sh b/mod_profile/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_profile/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_profile/conf/mod_profile.yml b/mod_profile/conf/mod_profile.yml new file mode 100644 index 0000000..7d138b1 --- /dev/null +++ b/mod_profile/conf/mod_profile.yml @@ -0,0 +1,2 @@ +modules: + mod_profile: {} diff --git a/mod_profile/ebin/.keepme b/mod_profile/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_profile/mod_profile.spec b/mod_profile/mod_profile.spec new file mode 100644 index 0000000..6c6e4fc --- /dev/null +++ b/mod_profile/mod_profile.spec @@ -0,0 +1,5 @@ +author: "Magnus Henoch " +category: "data" +summary: "User Profile (XEP-0154) in Mnesia table" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_rest/Emakefile b/mod_rest/Emakefile deleted file mode 100644 index 0007ee3..0000000 --- a/mod_rest/Emakefile +++ /dev/null @@ -1,4 +0,0 @@ -{'../ejabberd-dev/src/lager_transform', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'../ejabberd-dev/src/lager_util', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_rest', [{outdir, "ebin"},{i,"../ejabberd-dev/include"},{pa, "../ejabberd-dev/ebin"},{d,'LAGER'}]}. diff --git a/mod_rest/build.bat b/mod_rest/build.bat deleted file mode 100644 index ad7e17c..0000000 --- a/mod_rest/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pa ebin -make diff --git a/mod_rest/build.sh b/mod_rest/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_rest/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_rest/ebin/.keepme b/mod_rest/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_rest/mod_rest.spec b/mod_rest/mod_rest.spec new file mode 100644 index 0000000..5466300 --- /dev/null +++ b/mod_rest/mod_rest.spec @@ -0,0 +1,5 @@ +author: "Nolan Eakins " +category: "http" +summary: "HTTP interface to POST stanzas into ejabberd" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_s2s_log/COPYING b/mod_s2s_log/COPYING new file mode 100644 index 0000000..e21e8c4 --- /dev/null +++ b/mod_s2s_log/COPYING @@ -0,0 +1,343 @@ +As a special exception, the authors give permission to link this program +with the OpenSSL library and distribute the resulting binary. + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/mod_s2s_log/Emakefile b/mod_s2s_log/Emakefile deleted file mode 100644 index 8adff24..0000000 --- a/mod_s2s_log/Emakefile +++ /dev/null @@ -1,2 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_s2s_log', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/mod_s2s_log/build.bat b/mod_s2s_log/build.bat deleted file mode 100644 index ad7e17c..0000000 --- a/mod_s2s_log/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pa ebin -make diff --git a/mod_s2s_log/build.sh b/mod_s2s_log/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_s2s_log/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_s2s_log/conf/mod_s2s_log.yml b/mod_s2s_log/conf/mod_s2s_log.yml new file mode 100644 index 0000000..df51335 --- /dev/null +++ b/mod_s2s_log/conf/mod_s2s_log.yml @@ -0,0 +1,3 @@ +modules: + mod_s2s_log: + filename: "/var/log/ejabberd/s2s.log" diff --git a/mod_s2s_log/ebin/.keepme b/mod_s2s_log/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_s2s_log/mod_s2s_log.spec b/mod_s2s_log/mod_s2s_log.spec new file mode 100644 index 0000000..bbbd494 --- /dev/null +++ b/mod_s2s_log/mod_s2s_log.spec @@ -0,0 +1,5 @@ +author: "Mickael Remond " +category: "log" +summary: "Log all s2s connections in a file" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_shcommands/Emakefile b/mod_shcommands/Emakefile deleted file mode 100644 index eee721b..0000000 --- a/mod_shcommands/Emakefile +++ /dev/null @@ -1,2 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_shcommands', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/mod_shcommands/build.bat b/mod_shcommands/build.bat deleted file mode 100644 index b387ad5..0000000 --- a/mod_shcommands/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pa ebin -make diff --git a/mod_shcommands/build.sh b/mod_shcommands/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_shcommands/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_shcommands/ebin/.keepme b/mod_shcommands/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_shcommands/mod_shcommands.spec b/mod_shcommands/mod_shcommands.spec new file mode 100644 index 0000000..1baa5f6 --- /dev/null +++ b/mod_shcommands/mod_shcommands.spec @@ -0,0 +1,5 @@ +author: "Badlop " +category: "admin" +summary: "Execute shell commands" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_statsdx/Emakefile b/mod_statsdx/Emakefile deleted file mode 100644 index 95e5b9d..0000000 --- a/mod_statsdx/Emakefile +++ /dev/null @@ -1,3 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_statsdx', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_stats2file', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/mod_statsdx/build.bat b/mod_statsdx/build.bat deleted file mode 100644 index b387ad5..0000000 --- a/mod_statsdx/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../ejabberd-dev/ebin -pa ebin -make diff --git a/mod_statsdx/build.sh b/mod_statsdx/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_statsdx/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_statsdx/conf/mod_statsdx.yml b/mod_statsdx/conf/mod_statsdx.yml new file mode 100644 index 0000000..ca45402 --- /dev/null +++ b/mod_statsdx/conf/mod_statsdx.yml @@ -0,0 +1,10 @@ +modules: + mod_statsdx: + hooks: true + mod_stats2file: + interval: 60 + type: txt + split: true + basefilename: "/var/www/stats" + hosts: + - "localhost" diff --git a/mod_statsdx/ebin/.keepme b/mod_statsdx/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_statsdx/mod_statsdx.spec b/mod_statsdx/mod_statsdx.spec new file mode 100644 index 0000000..aac97d4 --- /dev/null +++ b/mod_statsdx/mod_statsdx.spec @@ -0,0 +1,5 @@ +author: "Badlop " +category: "stats" +summary: "Calculates and gathers statistics actively" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_webpresence/Emakefile b/mod_webpresence/Emakefile deleted file mode 100644 index 6d14f70..0000000 --- a/mod_webpresence/Emakefile +++ /dev/null @@ -1,2 +0,0 @@ -{'../ejabberd-dev/src/gen_mod', [{outdir, "../ejabberd-dev/ebin"},{i,"../ejabberd-dev/include"}]}. -{'src/mod_webpresence', [{outdir, "ebin"},{i,"../ejabberd-dev/include"}]}. diff --git a/mod_webpresence/build.bat b/mod_webpresence/build.bat deleted file mode 100644 index 8ce7043..0000000 --- a/mod_webpresence/build.bat +++ /dev/null @@ -1 +0,0 @@ -erl -pa ../../ejabberd-dev/ebin -pa ebin -make diff --git a/mod_webpresence/build.sh b/mod_webpresence/build.sh deleted file mode 100755 index f0a0cfa..0000000 --- a/mod_webpresence/build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -erl -pa ../ejabberd-dev/ebin -pz ebin -make diff --git a/mod_webpresence/conf/ejabberd.cfg.example b/mod_webpresence/conf/ejabberd.cfg.example deleted file mode 100644 index e144e6d..0000000 --- a/mod_webpresence/conf/ejabberd.cfg.example +++ /dev/null @@ -1,4 +0,0 @@ -{modules, - [ - {mod_presence, [{access, local}, {pixmaps_path, "/etc/ejabberd/ebin/pixmaps"}]} - ]}. diff --git a/mod_webpresence/conf/mod_webpresence.yml b/mod_webpresence/conf/mod_webpresence.yml new file mode 100644 index 0000000..11bf8cd --- /dev/null +++ b/mod_webpresence/conf/mod_webpresence.yml @@ -0,0 +1,11 @@ +listen: + - + port: 5284 + module: ejabberd_http + request_handlers: + "presence": mod_webpresence + +modules: + mod_presence: + access: local + pixmaps_path: "/etc/ejabberd/priv/pixmaps" diff --git a/mod_webpresence/ebin/.keepme b/mod_webpresence/ebin/.keepme deleted file mode 100644 index e69de29..0000000 diff --git a/mod_webpresence/mod_webpresence.spec b/mod_webpresence/mod_webpresence.spec new file mode 100644 index 0000000..8629fbe --- /dev/null +++ b/mod_webpresence/mod_webpresence.spec @@ -0,0 +1,5 @@ +author: "Igor Goryachev " +category: "data" +summary: "Publish user presence information in the web" +home: "https://github.com/processone/ejabberd-contrib/tree/master/" +url: "git@github.com:processone/ejabberd-contrib.git" diff --git a/mod_webpresence/src/msgs/es.mod_webpresence.msg b/mod_webpresence/priv/msgs/es.mod_webpresence.msg similarity index 100% rename from mod_webpresence/src/msgs/es.mod_webpresence.msg rename to mod_webpresence/priv/msgs/es.mod_webpresence.msg diff --git a/mod_webpresence/src/msgs/es.mod_webpresence.po b/mod_webpresence/priv/msgs/es.mod_webpresence.po similarity index 100% rename from mod_webpresence/src/msgs/es.mod_webpresence.po rename to mod_webpresence/priv/msgs/es.mod_webpresence.po diff --git a/mod_webpresence/src/msgs/mod_webpresence.pot b/mod_webpresence/priv/msgs/mod_webpresence.pot similarity index 100% rename from mod_webpresence/src/msgs/mod_webpresence.pot rename to mod_webpresence/priv/msgs/mod_webpresence.pot diff --git a/mod_webpresence/src/msgs/wa.mod_webpresence.msg b/mod_webpresence/priv/msgs/wa.mod_webpresence.msg similarity index 100% rename from mod_webpresence/src/msgs/wa.mod_webpresence.msg rename to mod_webpresence/priv/msgs/wa.mod_webpresence.msg diff --git a/mod_webpresence/src/msgs/wa.mod_webpresence.po b/mod_webpresence/priv/msgs/wa.mod_webpresence.po similarity index 100% rename from mod_webpresence/src/msgs/wa.mod_webpresence.po rename to mod_webpresence/priv/msgs/wa.mod_webpresence.po diff --git a/mod_webpresence/data/pixmaps/3d-dot1/available.gif b/mod_webpresence/priv/pixmaps/3d-dot1/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/3d-dot1/available.gif rename to mod_webpresence/priv/pixmaps/3d-dot1/available.gif diff --git a/mod_webpresence/data/pixmaps/3d-dot1/away.gif b/mod_webpresence/priv/pixmaps/3d-dot1/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/3d-dot1/away.gif rename to mod_webpresence/priv/pixmaps/3d-dot1/away.gif diff --git a/mod_webpresence/data/pixmaps/3d-dot1/chat.gif b/mod_webpresence/priv/pixmaps/3d-dot1/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/3d-dot1/chat.gif rename to mod_webpresence/priv/pixmaps/3d-dot1/chat.gif diff --git a/mod_webpresence/data/pixmaps/3d-dot1/dnd.gif b/mod_webpresence/priv/pixmaps/3d-dot1/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/3d-dot1/dnd.gif rename to mod_webpresence/priv/pixmaps/3d-dot1/dnd.gif diff --git a/mod_webpresence/data/pixmaps/3d-dot1/unavailable.gif b/mod_webpresence/priv/pixmaps/3d-dot1/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/3d-dot1/unavailable.gif rename to mod_webpresence/priv/pixmaps/3d-dot1/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/3d-dot1/xa.gif b/mod_webpresence/priv/pixmaps/3d-dot1/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/3d-dot1/xa.gif rename to mod_webpresence/priv/pixmaps/3d-dot1/xa.gif diff --git a/mod_webpresence/data/pixmaps/3d-dot2/available.gif b/mod_webpresence/priv/pixmaps/3d-dot2/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/3d-dot2/available.gif rename to mod_webpresence/priv/pixmaps/3d-dot2/available.gif diff --git a/mod_webpresence/data/pixmaps/3d-dot2/away.gif b/mod_webpresence/priv/pixmaps/3d-dot2/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/3d-dot2/away.gif rename to mod_webpresence/priv/pixmaps/3d-dot2/away.gif diff --git a/mod_webpresence/data/pixmaps/3d-dot2/chat.gif b/mod_webpresence/priv/pixmaps/3d-dot2/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/3d-dot2/chat.gif rename to mod_webpresence/priv/pixmaps/3d-dot2/chat.gif diff --git a/mod_webpresence/data/pixmaps/3d-dot2/dnd.gif b/mod_webpresence/priv/pixmaps/3d-dot2/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/3d-dot2/dnd.gif rename to mod_webpresence/priv/pixmaps/3d-dot2/dnd.gif diff --git a/mod_webpresence/data/pixmaps/3d-dot2/unavailable.gif b/mod_webpresence/priv/pixmaps/3d-dot2/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/3d-dot2/unavailable.gif rename to mod_webpresence/priv/pixmaps/3d-dot2/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/3d-dot2/xa.gif b/mod_webpresence/priv/pixmaps/3d-dot2/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/3d-dot2/xa.gif rename to mod_webpresence/priv/pixmaps/3d-dot2/xa.gif diff --git a/mod_webpresence/data/pixmaps/alphamod/available.png b/mod_webpresence/priv/pixmaps/alphamod/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/alphamod/available.png rename to mod_webpresence/priv/pixmaps/alphamod/available.png diff --git a/mod_webpresence/data/pixmaps/alphamod/away.png b/mod_webpresence/priv/pixmaps/alphamod/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/alphamod/away.png rename to mod_webpresence/priv/pixmaps/alphamod/away.png diff --git a/mod_webpresence/data/pixmaps/alphamod/chat.png b/mod_webpresence/priv/pixmaps/alphamod/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/alphamod/chat.png rename to mod_webpresence/priv/pixmaps/alphamod/chat.png diff --git a/mod_webpresence/data/pixmaps/alphamod/dnd.png b/mod_webpresence/priv/pixmaps/alphamod/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/alphamod/dnd.png rename to mod_webpresence/priv/pixmaps/alphamod/dnd.png diff --git a/mod_webpresence/data/pixmaps/alphamod/unavailable.png b/mod_webpresence/priv/pixmaps/alphamod/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/alphamod/unavailable.png rename to mod_webpresence/priv/pixmaps/alphamod/unavailable.png diff --git a/mod_webpresence/data/pixmaps/alphamod/xa.png b/mod_webpresence/priv/pixmaps/alphamod/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/alphamod/xa.png rename to mod_webpresence/priv/pixmaps/alphamod/xa.png diff --git a/mod_webpresence/data/pixmaps/amibulb/available.png b/mod_webpresence/priv/pixmaps/amibulb/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/amibulb/available.png rename to mod_webpresence/priv/pixmaps/amibulb/available.png diff --git a/mod_webpresence/data/pixmaps/amibulb/away.png b/mod_webpresence/priv/pixmaps/amibulb/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/amibulb/away.png rename to mod_webpresence/priv/pixmaps/amibulb/away.png diff --git a/mod_webpresence/data/pixmaps/amibulb/chat.png b/mod_webpresence/priv/pixmaps/amibulb/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/amibulb/chat.png rename to mod_webpresence/priv/pixmaps/amibulb/chat.png diff --git a/mod_webpresence/data/pixmaps/amibulb/dnd.png b/mod_webpresence/priv/pixmaps/amibulb/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/amibulb/dnd.png rename to mod_webpresence/priv/pixmaps/amibulb/dnd.png diff --git a/mod_webpresence/data/pixmaps/amibulb/unavailable.png b/mod_webpresence/priv/pixmaps/amibulb/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/amibulb/unavailable.png rename to mod_webpresence/priv/pixmaps/amibulb/unavailable.png diff --git a/mod_webpresence/data/pixmaps/amibulb/xa.png b/mod_webpresence/priv/pixmaps/amibulb/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/amibulb/xa.png rename to mod_webpresence/priv/pixmaps/amibulb/xa.png diff --git a/mod_webpresence/data/pixmaps/amigadu/available.gif b/mod_webpresence/priv/pixmaps/amigadu/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amigadu/available.gif rename to mod_webpresence/priv/pixmaps/amigadu/available.gif diff --git a/mod_webpresence/data/pixmaps/amigadu/away.gif b/mod_webpresence/priv/pixmaps/amigadu/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amigadu/away.gif rename to mod_webpresence/priv/pixmaps/amigadu/away.gif diff --git a/mod_webpresence/data/pixmaps/amigadu/chat.gif b/mod_webpresence/priv/pixmaps/amigadu/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amigadu/chat.gif rename to mod_webpresence/priv/pixmaps/amigadu/chat.gif diff --git a/mod_webpresence/data/pixmaps/amigadu/dnd.gif b/mod_webpresence/priv/pixmaps/amigadu/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amigadu/dnd.gif rename to mod_webpresence/priv/pixmaps/amigadu/dnd.gif diff --git a/mod_webpresence/data/pixmaps/amigadu/unavailable.gif b/mod_webpresence/priv/pixmaps/amigadu/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amigadu/unavailable.gif rename to mod_webpresence/priv/pixmaps/amigadu/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/amigadu/xa.gif b/mod_webpresence/priv/pixmaps/amigadu/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amigadu/xa.gif rename to mod_webpresence/priv/pixmaps/amigadu/xa.gif diff --git a/mod_webpresence/data/pixmaps/amiglobe/available.png b/mod_webpresence/priv/pixmaps/amiglobe/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/amiglobe/available.png rename to mod_webpresence/priv/pixmaps/amiglobe/available.png diff --git a/mod_webpresence/data/pixmaps/amiglobe/away.png b/mod_webpresence/priv/pixmaps/amiglobe/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/amiglobe/away.png rename to mod_webpresence/priv/pixmaps/amiglobe/away.png diff --git a/mod_webpresence/data/pixmaps/amiglobe/chat.png b/mod_webpresence/priv/pixmaps/amiglobe/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/amiglobe/chat.png rename to mod_webpresence/priv/pixmaps/amiglobe/chat.png diff --git a/mod_webpresence/data/pixmaps/amiglobe/dnd.png b/mod_webpresence/priv/pixmaps/amiglobe/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/amiglobe/dnd.png rename to mod_webpresence/priv/pixmaps/amiglobe/dnd.png diff --git a/mod_webpresence/data/pixmaps/amiglobe/unavailable.png b/mod_webpresence/priv/pixmaps/amiglobe/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/amiglobe/unavailable.png rename to mod_webpresence/priv/pixmaps/amiglobe/unavailable.png diff --git a/mod_webpresence/data/pixmaps/amiglobe/xa.png b/mod_webpresence/priv/pixmaps/amiglobe/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/amiglobe/xa.png rename to mod_webpresence/priv/pixmaps/amiglobe/xa.png diff --git a/mod_webpresence/data/pixmaps/amiicq/available.gif b/mod_webpresence/priv/pixmaps/amiicq/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amiicq/available.gif rename to mod_webpresence/priv/pixmaps/amiicq/available.gif diff --git a/mod_webpresence/data/pixmaps/amiicq/away.gif b/mod_webpresence/priv/pixmaps/amiicq/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amiicq/away.gif rename to mod_webpresence/priv/pixmaps/amiicq/away.gif diff --git a/mod_webpresence/data/pixmaps/amiicq/chat.gif b/mod_webpresence/priv/pixmaps/amiicq/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amiicq/chat.gif rename to mod_webpresence/priv/pixmaps/amiicq/chat.gif diff --git a/mod_webpresence/data/pixmaps/amiicq/dnd.gif b/mod_webpresence/priv/pixmaps/amiicq/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amiicq/dnd.gif rename to mod_webpresence/priv/pixmaps/amiicq/dnd.gif diff --git a/mod_webpresence/data/pixmaps/amiicq/unavailable.gif b/mod_webpresence/priv/pixmaps/amiicq/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amiicq/unavailable.gif rename to mod_webpresence/priv/pixmaps/amiicq/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/amiicq/xa.gif b/mod_webpresence/priv/pixmaps/amiicq/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amiicq/xa.gif rename to mod_webpresence/priv/pixmaps/amiicq/xa.gif diff --git a/mod_webpresence/data/pixmaps/amimsn/available.png b/mod_webpresence/priv/pixmaps/amimsn/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/amimsn/available.png rename to mod_webpresence/priv/pixmaps/amimsn/available.png diff --git a/mod_webpresence/data/pixmaps/amimsn/away.png b/mod_webpresence/priv/pixmaps/amimsn/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/amimsn/away.png rename to mod_webpresence/priv/pixmaps/amimsn/away.png diff --git a/mod_webpresence/data/pixmaps/amimsn/chat.png b/mod_webpresence/priv/pixmaps/amimsn/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/amimsn/chat.png rename to mod_webpresence/priv/pixmaps/amimsn/chat.png diff --git a/mod_webpresence/data/pixmaps/amimsn/dnd.png b/mod_webpresence/priv/pixmaps/amimsn/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/amimsn/dnd.png rename to mod_webpresence/priv/pixmaps/amimsn/dnd.png diff --git a/mod_webpresence/data/pixmaps/amimsn/unavailable.png b/mod_webpresence/priv/pixmaps/amimsn/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/amimsn/unavailable.png rename to mod_webpresence/priv/pixmaps/amimsn/unavailable.png diff --git a/mod_webpresence/data/pixmaps/amimsn/xa.png b/mod_webpresence/priv/pixmaps/amimsn/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/amimsn/xa.png rename to mod_webpresence/priv/pixmaps/amimsn/xa.png diff --git a/mod_webpresence/data/pixmaps/amistellar/available.gif b/mod_webpresence/priv/pixmaps/amistellar/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amistellar/available.gif rename to mod_webpresence/priv/pixmaps/amistellar/available.gif diff --git a/mod_webpresence/data/pixmaps/amistellar/away.gif b/mod_webpresence/priv/pixmaps/amistellar/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amistellar/away.gif rename to mod_webpresence/priv/pixmaps/amistellar/away.gif diff --git a/mod_webpresence/data/pixmaps/amistellar/chat.gif b/mod_webpresence/priv/pixmaps/amistellar/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amistellar/chat.gif rename to mod_webpresence/priv/pixmaps/amistellar/chat.gif diff --git a/mod_webpresence/data/pixmaps/amistellar/dnd.gif b/mod_webpresence/priv/pixmaps/amistellar/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amistellar/dnd.gif rename to mod_webpresence/priv/pixmaps/amistellar/dnd.gif diff --git a/mod_webpresence/data/pixmaps/amistellar/unavailable.gif b/mod_webpresence/priv/pixmaps/amistellar/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amistellar/unavailable.gif rename to mod_webpresence/priv/pixmaps/amistellar/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/amistellar/xa.gif b/mod_webpresence/priv/pixmaps/amistellar/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amistellar/xa.gif rename to mod_webpresence/priv/pixmaps/amistellar/xa.gif diff --git a/mod_webpresence/data/pixmaps/amitlen/available.gif b/mod_webpresence/priv/pixmaps/amitlen/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amitlen/available.gif rename to mod_webpresence/priv/pixmaps/amitlen/available.gif diff --git a/mod_webpresence/data/pixmaps/amitlen/away.gif b/mod_webpresence/priv/pixmaps/amitlen/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amitlen/away.gif rename to mod_webpresence/priv/pixmaps/amitlen/away.gif diff --git a/mod_webpresence/data/pixmaps/amitlen/chat.gif b/mod_webpresence/priv/pixmaps/amitlen/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amitlen/chat.gif rename to mod_webpresence/priv/pixmaps/amitlen/chat.gif diff --git a/mod_webpresence/data/pixmaps/amitlen/dnd.gif b/mod_webpresence/priv/pixmaps/amitlen/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amitlen/dnd.gif rename to mod_webpresence/priv/pixmaps/amitlen/dnd.gif diff --git a/mod_webpresence/data/pixmaps/amitlen/unavailable.gif b/mod_webpresence/priv/pixmaps/amitlen/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amitlen/unavailable.gif rename to mod_webpresence/priv/pixmaps/amitlen/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/amitlen/xa.gif b/mod_webpresence/priv/pixmaps/amitlen/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/amitlen/xa.gif rename to mod_webpresence/priv/pixmaps/amitlen/xa.gif diff --git a/mod_webpresence/data/pixmaps/bulb/available.gif b/mod_webpresence/priv/pixmaps/bulb/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/bulb/available.gif rename to mod_webpresence/priv/pixmaps/bulb/available.gif diff --git a/mod_webpresence/data/pixmaps/bulb/away.gif b/mod_webpresence/priv/pixmaps/bulb/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/bulb/away.gif rename to mod_webpresence/priv/pixmaps/bulb/away.gif diff --git a/mod_webpresence/data/pixmaps/bulb/chat.gif b/mod_webpresence/priv/pixmaps/bulb/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/bulb/chat.gif rename to mod_webpresence/priv/pixmaps/bulb/chat.gif diff --git a/mod_webpresence/data/pixmaps/bulb/dnd.gif b/mod_webpresence/priv/pixmaps/bulb/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/bulb/dnd.gif rename to mod_webpresence/priv/pixmaps/bulb/dnd.gif diff --git a/mod_webpresence/data/pixmaps/bulb/unavailable.gif b/mod_webpresence/priv/pixmaps/bulb/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/bulb/unavailable.gif rename to mod_webpresence/priv/pixmaps/bulb/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/bulb/xa.gif b/mod_webpresence/priv/pixmaps/bulb/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/bulb/xa.gif rename to mod_webpresence/priv/pixmaps/bulb/xa.gif diff --git a/mod_webpresence/data/pixmaps/chrome-pl/available.gif b/mod_webpresence/priv/pixmaps/chrome-pl/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/chrome-pl/available.gif rename to mod_webpresence/priv/pixmaps/chrome-pl/available.gif diff --git a/mod_webpresence/data/pixmaps/chrome-pl/away.gif b/mod_webpresence/priv/pixmaps/chrome-pl/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/chrome-pl/away.gif rename to mod_webpresence/priv/pixmaps/chrome-pl/away.gif diff --git a/mod_webpresence/data/pixmaps/chrome-pl/chat.gif b/mod_webpresence/priv/pixmaps/chrome-pl/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/chrome-pl/chat.gif rename to mod_webpresence/priv/pixmaps/chrome-pl/chat.gif diff --git a/mod_webpresence/data/pixmaps/chrome-pl/dnd.gif b/mod_webpresence/priv/pixmaps/chrome-pl/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/chrome-pl/dnd.gif rename to mod_webpresence/priv/pixmaps/chrome-pl/dnd.gif diff --git a/mod_webpresence/data/pixmaps/chrome-pl/unavailable.gif b/mod_webpresence/priv/pixmaps/chrome-pl/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/chrome-pl/unavailable.gif rename to mod_webpresence/priv/pixmaps/chrome-pl/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/chrome-pl/xa.gif b/mod_webpresence/priv/pixmaps/chrome-pl/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/chrome-pl/xa.gif rename to mod_webpresence/priv/pixmaps/chrome-pl/xa.gif diff --git a/mod_webpresence/data/pixmaps/crystal/available.png b/mod_webpresence/priv/pixmaps/crystal/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/crystal/available.png rename to mod_webpresence/priv/pixmaps/crystal/available.png diff --git a/mod_webpresence/data/pixmaps/crystal/away.png b/mod_webpresence/priv/pixmaps/crystal/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/crystal/away.png rename to mod_webpresence/priv/pixmaps/crystal/away.png diff --git a/mod_webpresence/data/pixmaps/crystal/chat.png b/mod_webpresence/priv/pixmaps/crystal/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/crystal/chat.png rename to mod_webpresence/priv/pixmaps/crystal/chat.png diff --git a/mod_webpresence/data/pixmaps/crystal/dnd.png b/mod_webpresence/priv/pixmaps/crystal/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/crystal/dnd.png rename to mod_webpresence/priv/pixmaps/crystal/dnd.png diff --git a/mod_webpresence/data/pixmaps/crystal/unavailable.png b/mod_webpresence/priv/pixmaps/crystal/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/crystal/unavailable.png rename to mod_webpresence/priv/pixmaps/crystal/unavailable.png diff --git a/mod_webpresence/data/pixmaps/crystal/xa.png b/mod_webpresence/priv/pixmaps/crystal/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/crystal/xa.png rename to mod_webpresence/priv/pixmaps/crystal/xa.png diff --git a/mod_webpresence/data/pixmaps/crystal2/available.gif b/mod_webpresence/priv/pixmaps/crystal2/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/crystal2/available.gif rename to mod_webpresence/priv/pixmaps/crystal2/available.gif diff --git a/mod_webpresence/data/pixmaps/crystal2/away.gif b/mod_webpresence/priv/pixmaps/crystal2/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/crystal2/away.gif rename to mod_webpresence/priv/pixmaps/crystal2/away.gif diff --git a/mod_webpresence/data/pixmaps/crystal2/chat.gif b/mod_webpresence/priv/pixmaps/crystal2/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/crystal2/chat.gif rename to mod_webpresence/priv/pixmaps/crystal2/chat.gif diff --git a/mod_webpresence/data/pixmaps/crystal2/dnd.gif b/mod_webpresence/priv/pixmaps/crystal2/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/crystal2/dnd.gif rename to mod_webpresence/priv/pixmaps/crystal2/dnd.gif diff --git a/mod_webpresence/data/pixmaps/crystal2/unavailable.gif b/mod_webpresence/priv/pixmaps/crystal2/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/crystal2/unavailable.gif rename to mod_webpresence/priv/pixmaps/crystal2/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/crystal2/xa.gif b/mod_webpresence/priv/pixmaps/crystal2/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/crystal2/xa.gif rename to mod_webpresence/priv/pixmaps/crystal2/xa.gif diff --git a/mod_webpresence/data/pixmaps/crystal3/available.gif b/mod_webpresence/priv/pixmaps/crystal3/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/crystal3/available.gif rename to mod_webpresence/priv/pixmaps/crystal3/available.gif diff --git a/mod_webpresence/data/pixmaps/crystal3/away.gif b/mod_webpresence/priv/pixmaps/crystal3/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/crystal3/away.gif rename to mod_webpresence/priv/pixmaps/crystal3/away.gif diff --git a/mod_webpresence/data/pixmaps/crystal3/chat.gif b/mod_webpresence/priv/pixmaps/crystal3/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/crystal3/chat.gif rename to mod_webpresence/priv/pixmaps/crystal3/chat.gif diff --git a/mod_webpresence/data/pixmaps/crystal3/dnd.gif b/mod_webpresence/priv/pixmaps/crystal3/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/crystal3/dnd.gif rename to mod_webpresence/priv/pixmaps/crystal3/dnd.gif diff --git a/mod_webpresence/data/pixmaps/crystal3/unavailable.gif b/mod_webpresence/priv/pixmaps/crystal3/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/crystal3/unavailable.gif rename to mod_webpresence/priv/pixmaps/crystal3/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/crystal3/xa.gif b/mod_webpresence/priv/pixmaps/crystal3/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/crystal3/xa.gif rename to mod_webpresence/priv/pixmaps/crystal3/xa.gif diff --git a/mod_webpresence/data/pixmaps/dcraven/available.png b/mod_webpresence/priv/pixmaps/dcraven/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/dcraven/available.png rename to mod_webpresence/priv/pixmaps/dcraven/available.png diff --git a/mod_webpresence/data/pixmaps/dcraven/away.png b/mod_webpresence/priv/pixmaps/dcraven/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/dcraven/away.png rename to mod_webpresence/priv/pixmaps/dcraven/away.png diff --git a/mod_webpresence/data/pixmaps/dcraven/chat.png b/mod_webpresence/priv/pixmaps/dcraven/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/dcraven/chat.png rename to mod_webpresence/priv/pixmaps/dcraven/chat.png diff --git a/mod_webpresence/data/pixmaps/dcraven/dnd.png b/mod_webpresence/priv/pixmaps/dcraven/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/dcraven/dnd.png rename to mod_webpresence/priv/pixmaps/dcraven/dnd.png diff --git a/mod_webpresence/data/pixmaps/dcraven/unavailable.png b/mod_webpresence/priv/pixmaps/dcraven/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/dcraven/unavailable.png rename to mod_webpresence/priv/pixmaps/dcraven/unavailable.png diff --git a/mod_webpresence/data/pixmaps/dcraven/xa.png b/mod_webpresence/priv/pixmaps/dcraven/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/dcraven/xa.png rename to mod_webpresence/priv/pixmaps/dcraven/xa.png diff --git a/mod_webpresence/data/pixmaps/dudes/available.gif b/mod_webpresence/priv/pixmaps/dudes/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/dudes/available.gif rename to mod_webpresence/priv/pixmaps/dudes/available.gif diff --git a/mod_webpresence/data/pixmaps/dudes/away.gif b/mod_webpresence/priv/pixmaps/dudes/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/dudes/away.gif rename to mod_webpresence/priv/pixmaps/dudes/away.gif diff --git a/mod_webpresence/data/pixmaps/dudes/chat.gif b/mod_webpresence/priv/pixmaps/dudes/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/dudes/chat.gif rename to mod_webpresence/priv/pixmaps/dudes/chat.gif diff --git a/mod_webpresence/data/pixmaps/dudes/dnd.gif b/mod_webpresence/priv/pixmaps/dudes/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/dudes/dnd.gif rename to mod_webpresence/priv/pixmaps/dudes/dnd.gif diff --git a/mod_webpresence/data/pixmaps/dudes/unavailable.gif b/mod_webpresence/priv/pixmaps/dudes/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/dudes/unavailable.gif rename to mod_webpresence/priv/pixmaps/dudes/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/dudes/xa.gif b/mod_webpresence/priv/pixmaps/dudes/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/dudes/xa.gif rename to mod_webpresence/priv/pixmaps/dudes/xa.gif diff --git a/mod_webpresence/data/pixmaps/frickenhuge/available.gif b/mod_webpresence/priv/pixmaps/frickenhuge/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/frickenhuge/available.gif rename to mod_webpresence/priv/pixmaps/frickenhuge/available.gif diff --git a/mod_webpresence/data/pixmaps/frickenhuge/away.gif b/mod_webpresence/priv/pixmaps/frickenhuge/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/frickenhuge/away.gif rename to mod_webpresence/priv/pixmaps/frickenhuge/away.gif diff --git a/mod_webpresence/data/pixmaps/frickenhuge/chat.gif b/mod_webpresence/priv/pixmaps/frickenhuge/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/frickenhuge/chat.gif rename to mod_webpresence/priv/pixmaps/frickenhuge/chat.gif diff --git a/mod_webpresence/data/pixmaps/frickenhuge/dnd.gif b/mod_webpresence/priv/pixmaps/frickenhuge/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/frickenhuge/dnd.gif rename to mod_webpresence/priv/pixmaps/frickenhuge/dnd.gif diff --git a/mod_webpresence/data/pixmaps/frickenhuge/unavailable.gif b/mod_webpresence/priv/pixmaps/frickenhuge/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/frickenhuge/unavailable.gif rename to mod_webpresence/priv/pixmaps/frickenhuge/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/frickenhuge/xa.gif b/mod_webpresence/priv/pixmaps/frickenhuge/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/frickenhuge/xa.gif rename to mod_webpresence/priv/pixmaps/frickenhuge/xa.gif diff --git a/mod_webpresence/data/pixmaps/gabber/available.gif b/mod_webpresence/priv/pixmaps/gabber/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/gabber/available.gif rename to mod_webpresence/priv/pixmaps/gabber/available.gif diff --git a/mod_webpresence/data/pixmaps/gabber/away.gif b/mod_webpresence/priv/pixmaps/gabber/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/gabber/away.gif rename to mod_webpresence/priv/pixmaps/gabber/away.gif diff --git a/mod_webpresence/data/pixmaps/gabber/chat.gif b/mod_webpresence/priv/pixmaps/gabber/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/gabber/chat.gif rename to mod_webpresence/priv/pixmaps/gabber/chat.gif diff --git a/mod_webpresence/data/pixmaps/gabber/dnd.gif b/mod_webpresence/priv/pixmaps/gabber/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/gabber/dnd.gif rename to mod_webpresence/priv/pixmaps/gabber/dnd.gif diff --git a/mod_webpresence/data/pixmaps/gabber/unavailable.gif b/mod_webpresence/priv/pixmaps/gabber/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/gabber/unavailable.gif rename to mod_webpresence/priv/pixmaps/gabber/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/gabber/xa.gif b/mod_webpresence/priv/pixmaps/gabber/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/gabber/xa.gif rename to mod_webpresence/priv/pixmaps/gabber/xa.gif diff --git a/mod_webpresence/data/pixmaps/gg/available.gif b/mod_webpresence/priv/pixmaps/gg/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/gg/available.gif rename to mod_webpresence/priv/pixmaps/gg/available.gif diff --git a/mod_webpresence/data/pixmaps/gg/away.gif b/mod_webpresence/priv/pixmaps/gg/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/gg/away.gif rename to mod_webpresence/priv/pixmaps/gg/away.gif diff --git a/mod_webpresence/data/pixmaps/gg/chat.gif b/mod_webpresence/priv/pixmaps/gg/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/gg/chat.gif rename to mod_webpresence/priv/pixmaps/gg/chat.gif diff --git a/mod_webpresence/data/pixmaps/gg/dnd.gif b/mod_webpresence/priv/pixmaps/gg/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/gg/dnd.gif rename to mod_webpresence/priv/pixmaps/gg/dnd.gif diff --git a/mod_webpresence/data/pixmaps/gg/unavailable.gif b/mod_webpresence/priv/pixmaps/gg/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/gg/unavailable.gif rename to mod_webpresence/priv/pixmaps/gg/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/gg/xa.gif b/mod_webpresence/priv/pixmaps/gg/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/gg/xa.gif rename to mod_webpresence/priv/pixmaps/gg/xa.gif diff --git a/mod_webpresence/data/pixmaps/gnome/available.png b/mod_webpresence/priv/pixmaps/gnome/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/gnome/available.png rename to mod_webpresence/priv/pixmaps/gnome/available.png diff --git a/mod_webpresence/data/pixmaps/gnome/away.png b/mod_webpresence/priv/pixmaps/gnome/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/gnome/away.png rename to mod_webpresence/priv/pixmaps/gnome/away.png diff --git a/mod_webpresence/data/pixmaps/gnome/chat.png b/mod_webpresence/priv/pixmaps/gnome/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/gnome/chat.png rename to mod_webpresence/priv/pixmaps/gnome/chat.png diff --git a/mod_webpresence/data/pixmaps/gnome/dnd.png b/mod_webpresence/priv/pixmaps/gnome/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/gnome/dnd.png rename to mod_webpresence/priv/pixmaps/gnome/dnd.png diff --git a/mod_webpresence/data/pixmaps/gnome/unavailable.png b/mod_webpresence/priv/pixmaps/gnome/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/gnome/unavailable.png rename to mod_webpresence/priv/pixmaps/gnome/unavailable.png diff --git a/mod_webpresence/data/pixmaps/gnome/xa.png b/mod_webpresence/priv/pixmaps/gnome/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/gnome/xa.png rename to mod_webpresence/priv/pixmaps/gnome/xa.png diff --git a/mod_webpresence/data/pixmaps/gossip/available.png b/mod_webpresence/priv/pixmaps/gossip/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/gossip/available.png rename to mod_webpresence/priv/pixmaps/gossip/available.png diff --git a/mod_webpresence/data/pixmaps/gossip/away.png b/mod_webpresence/priv/pixmaps/gossip/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/gossip/away.png rename to mod_webpresence/priv/pixmaps/gossip/away.png diff --git a/mod_webpresence/data/pixmaps/gossip/chat.png b/mod_webpresence/priv/pixmaps/gossip/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/gossip/chat.png rename to mod_webpresence/priv/pixmaps/gossip/chat.png diff --git a/mod_webpresence/data/pixmaps/gossip/dnd.png b/mod_webpresence/priv/pixmaps/gossip/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/gossip/dnd.png rename to mod_webpresence/priv/pixmaps/gossip/dnd.png diff --git a/mod_webpresence/data/pixmaps/gossip/unavailable.png b/mod_webpresence/priv/pixmaps/gossip/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/gossip/unavailable.png rename to mod_webpresence/priv/pixmaps/gossip/unavailable.png diff --git a/mod_webpresence/data/pixmaps/gossip/xa.png b/mod_webpresence/priv/pixmaps/gossip/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/gossip/xa.png rename to mod_webpresence/priv/pixmaps/gossip/xa.png diff --git a/mod_webpresence/data/pixmaps/gota/available.png b/mod_webpresence/priv/pixmaps/gota/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/gota/available.png rename to mod_webpresence/priv/pixmaps/gota/available.png diff --git a/mod_webpresence/data/pixmaps/gota/away.png b/mod_webpresence/priv/pixmaps/gota/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/gota/away.png rename to mod_webpresence/priv/pixmaps/gota/away.png diff --git a/mod_webpresence/data/pixmaps/gota/chat.png b/mod_webpresence/priv/pixmaps/gota/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/gota/chat.png rename to mod_webpresence/priv/pixmaps/gota/chat.png diff --git a/mod_webpresence/data/pixmaps/gota/dnd.png b/mod_webpresence/priv/pixmaps/gota/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/gota/dnd.png rename to mod_webpresence/priv/pixmaps/gota/dnd.png diff --git a/mod_webpresence/data/pixmaps/gota/unavailable.png b/mod_webpresence/priv/pixmaps/gota/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/gota/unavailable.png rename to mod_webpresence/priv/pixmaps/gota/unavailable.png diff --git a/mod_webpresence/data/pixmaps/gota/xa.png b/mod_webpresence/priv/pixmaps/gota/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/gota/xa.png rename to mod_webpresence/priv/pixmaps/gota/xa.png diff --git a/mod_webpresence/data/pixmaps/gtalk/available.png b/mod_webpresence/priv/pixmaps/gtalk/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/gtalk/available.png rename to mod_webpresence/priv/pixmaps/gtalk/available.png diff --git a/mod_webpresence/data/pixmaps/gtalk/away.png b/mod_webpresence/priv/pixmaps/gtalk/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/gtalk/away.png rename to mod_webpresence/priv/pixmaps/gtalk/away.png diff --git a/mod_webpresence/data/pixmaps/gtalk/chat.png b/mod_webpresence/priv/pixmaps/gtalk/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/gtalk/chat.png rename to mod_webpresence/priv/pixmaps/gtalk/chat.png diff --git a/mod_webpresence/data/pixmaps/gtalk/dnd.png b/mod_webpresence/priv/pixmaps/gtalk/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/gtalk/dnd.png rename to mod_webpresence/priv/pixmaps/gtalk/dnd.png diff --git a/mod_webpresence/data/pixmaps/gtalk/unavailable.png b/mod_webpresence/priv/pixmaps/gtalk/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/gtalk/unavailable.png rename to mod_webpresence/priv/pixmaps/gtalk/unavailable.png diff --git a/mod_webpresence/data/pixmaps/gtalk/xa.png b/mod_webpresence/priv/pixmaps/gtalk/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/gtalk/xa.png rename to mod_webpresence/priv/pixmaps/gtalk/xa.png diff --git a/mod_webpresence/data/pixmaps/icq/available.gif b/mod_webpresence/priv/pixmaps/icq/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/icq/available.gif rename to mod_webpresence/priv/pixmaps/icq/available.gif diff --git a/mod_webpresence/data/pixmaps/icq/away.gif b/mod_webpresence/priv/pixmaps/icq/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/icq/away.gif rename to mod_webpresence/priv/pixmaps/icq/away.gif diff --git a/mod_webpresence/data/pixmaps/icq/chat.gif b/mod_webpresence/priv/pixmaps/icq/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/icq/chat.gif rename to mod_webpresence/priv/pixmaps/icq/chat.gif diff --git a/mod_webpresence/data/pixmaps/icq/dnd.gif b/mod_webpresence/priv/pixmaps/icq/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/icq/dnd.gif rename to mod_webpresence/priv/pixmaps/icq/dnd.gif diff --git a/mod_webpresence/data/pixmaps/icq/unavailable.gif b/mod_webpresence/priv/pixmaps/icq/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/icq/unavailable.gif rename to mod_webpresence/priv/pixmaps/icq/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/icq/xa.gif b/mod_webpresence/priv/pixmaps/icq/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/icq/xa.gif rename to mod_webpresence/priv/pixmaps/icq/xa.gif diff --git a/mod_webpresence/data/pixmaps/invision/available.gif b/mod_webpresence/priv/pixmaps/invision/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/invision/available.gif rename to mod_webpresence/priv/pixmaps/invision/available.gif diff --git a/mod_webpresence/data/pixmaps/invision/away.gif b/mod_webpresence/priv/pixmaps/invision/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/invision/away.gif rename to mod_webpresence/priv/pixmaps/invision/away.gif diff --git a/mod_webpresence/data/pixmaps/invision/chat.gif b/mod_webpresence/priv/pixmaps/invision/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/invision/chat.gif rename to mod_webpresence/priv/pixmaps/invision/chat.gif diff --git a/mod_webpresence/data/pixmaps/invision/dnd.gif b/mod_webpresence/priv/pixmaps/invision/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/invision/dnd.gif rename to mod_webpresence/priv/pixmaps/invision/dnd.gif diff --git a/mod_webpresence/data/pixmaps/invision/unavailable.gif b/mod_webpresence/priv/pixmaps/invision/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/invision/unavailable.gif rename to mod_webpresence/priv/pixmaps/invision/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/invision/xa.gif b/mod_webpresence/priv/pixmaps/invision/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/invision/xa.gif rename to mod_webpresence/priv/pixmaps/invision/xa.gif diff --git a/mod_webpresence/data/pixmaps/jabberbulb/available.png b/mod_webpresence/priv/pixmaps/jabberbulb/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/jabberbulb/available.png rename to mod_webpresence/priv/pixmaps/jabberbulb/available.png diff --git a/mod_webpresence/data/pixmaps/jabberbulb/away.png b/mod_webpresence/priv/pixmaps/jabberbulb/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/jabberbulb/away.png rename to mod_webpresence/priv/pixmaps/jabberbulb/away.png diff --git a/mod_webpresence/data/pixmaps/jabberbulb/chat.png b/mod_webpresence/priv/pixmaps/jabberbulb/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/jabberbulb/chat.png rename to mod_webpresence/priv/pixmaps/jabberbulb/chat.png diff --git a/mod_webpresence/data/pixmaps/jabberbulb/dnd.png b/mod_webpresence/priv/pixmaps/jabberbulb/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/jabberbulb/dnd.png rename to mod_webpresence/priv/pixmaps/jabberbulb/dnd.png diff --git a/mod_webpresence/data/pixmaps/jabberbulb/unavailable.png b/mod_webpresence/priv/pixmaps/jabberbulb/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/jabberbulb/unavailable.png rename to mod_webpresence/priv/pixmaps/jabberbulb/unavailable.png diff --git a/mod_webpresence/data/pixmaps/jabberbulb/xa.png b/mod_webpresence/priv/pixmaps/jabberbulb/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/jabberbulb/xa.png rename to mod_webpresence/priv/pixmaps/jabberbulb/xa.png diff --git a/mod_webpresence/data/pixmaps/jsf-jabber-text/available.png b/mod_webpresence/priv/pixmaps/jsf-jabber-text/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-jabber-text/available.png rename to mod_webpresence/priv/pixmaps/jsf-jabber-text/available.png diff --git a/mod_webpresence/data/pixmaps/jsf-jabber-text/away.png b/mod_webpresence/priv/pixmaps/jsf-jabber-text/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-jabber-text/away.png rename to mod_webpresence/priv/pixmaps/jsf-jabber-text/away.png diff --git a/mod_webpresence/data/pixmaps/jsf-jabber-text/chat.png b/mod_webpresence/priv/pixmaps/jsf-jabber-text/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-jabber-text/chat.png rename to mod_webpresence/priv/pixmaps/jsf-jabber-text/chat.png diff --git a/mod_webpresence/data/pixmaps/jsf-jabber-text/dnd.png b/mod_webpresence/priv/pixmaps/jsf-jabber-text/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-jabber-text/dnd.png rename to mod_webpresence/priv/pixmaps/jsf-jabber-text/dnd.png diff --git a/mod_webpresence/data/pixmaps/jsf-jabber-text/unavailable.png b/mod_webpresence/priv/pixmaps/jsf-jabber-text/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-jabber-text/unavailable.png rename to mod_webpresence/priv/pixmaps/jsf-jabber-text/unavailable.png diff --git a/mod_webpresence/data/pixmaps/jsf-jabber-text/xa.png b/mod_webpresence/priv/pixmaps/jsf-jabber-text/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-jabber-text/xa.png rename to mod_webpresence/priv/pixmaps/jsf-jabber-text/xa.png diff --git a/mod_webpresence/data/pixmaps/jsf-text/available.png b/mod_webpresence/priv/pixmaps/jsf-text/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-text/available.png rename to mod_webpresence/priv/pixmaps/jsf-text/available.png diff --git a/mod_webpresence/data/pixmaps/jsf-text/away.png b/mod_webpresence/priv/pixmaps/jsf-text/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-text/away.png rename to mod_webpresence/priv/pixmaps/jsf-text/away.png diff --git a/mod_webpresence/data/pixmaps/jsf-text/chat.png b/mod_webpresence/priv/pixmaps/jsf-text/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-text/chat.png rename to mod_webpresence/priv/pixmaps/jsf-text/chat.png diff --git a/mod_webpresence/data/pixmaps/jsf-text/dnd.png b/mod_webpresence/priv/pixmaps/jsf-text/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-text/dnd.png rename to mod_webpresence/priv/pixmaps/jsf-text/dnd.png diff --git a/mod_webpresence/data/pixmaps/jsf-text/unavailable.png b/mod_webpresence/priv/pixmaps/jsf-text/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-text/unavailable.png rename to mod_webpresence/priv/pixmaps/jsf-text/unavailable.png diff --git a/mod_webpresence/data/pixmaps/jsf-text/xa.png b/mod_webpresence/priv/pixmaps/jsf-text/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-text/xa.png rename to mod_webpresence/priv/pixmaps/jsf-text/xa.png diff --git a/mod_webpresence/data/pixmaps/jsf-text2/available.png b/mod_webpresence/priv/pixmaps/jsf-text2/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-text2/available.png rename to mod_webpresence/priv/pixmaps/jsf-text2/available.png diff --git a/mod_webpresence/data/pixmaps/jsf-text2/away.png b/mod_webpresence/priv/pixmaps/jsf-text2/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-text2/away.png rename to mod_webpresence/priv/pixmaps/jsf-text2/away.png diff --git a/mod_webpresence/data/pixmaps/jsf-text2/chat.png b/mod_webpresence/priv/pixmaps/jsf-text2/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-text2/chat.png rename to mod_webpresence/priv/pixmaps/jsf-text2/chat.png diff --git a/mod_webpresence/data/pixmaps/jsf-text2/dnd.png b/mod_webpresence/priv/pixmaps/jsf-text2/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-text2/dnd.png rename to mod_webpresence/priv/pixmaps/jsf-text2/dnd.png diff --git a/mod_webpresence/data/pixmaps/jsf-text2/unavailable.png b/mod_webpresence/priv/pixmaps/jsf-text2/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-text2/unavailable.png rename to mod_webpresence/priv/pixmaps/jsf-text2/unavailable.png diff --git a/mod_webpresence/data/pixmaps/jsf-text2/xa.png b/mod_webpresence/priv/pixmaps/jsf-text2/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/jsf-text2/xa.png rename to mod_webpresence/priv/pixmaps/jsf-text2/xa.png diff --git a/mod_webpresence/data/pixmaps/koniczynek/available.gif b/mod_webpresence/priv/pixmaps/koniczynek/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/koniczynek/available.gif rename to mod_webpresence/priv/pixmaps/koniczynek/available.gif diff --git a/mod_webpresence/data/pixmaps/koniczynek/away.gif b/mod_webpresence/priv/pixmaps/koniczynek/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/koniczynek/away.gif rename to mod_webpresence/priv/pixmaps/koniczynek/away.gif diff --git a/mod_webpresence/data/pixmaps/koniczynek/chat.gif b/mod_webpresence/priv/pixmaps/koniczynek/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/koniczynek/chat.gif rename to mod_webpresence/priv/pixmaps/koniczynek/chat.gif diff --git a/mod_webpresence/data/pixmaps/koniczynek/dnd.gif b/mod_webpresence/priv/pixmaps/koniczynek/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/koniczynek/dnd.gif rename to mod_webpresence/priv/pixmaps/koniczynek/dnd.gif diff --git a/mod_webpresence/data/pixmaps/koniczynek/unavailable.gif b/mod_webpresence/priv/pixmaps/koniczynek/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/koniczynek/unavailable.gif rename to mod_webpresence/priv/pixmaps/koniczynek/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/koniczynek/xa.gif b/mod_webpresence/priv/pixmaps/koniczynek/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/koniczynek/xa.gif rename to mod_webpresence/priv/pixmaps/koniczynek/xa.gif diff --git a/mod_webpresence/data/pixmaps/licq/available.gif b/mod_webpresence/priv/pixmaps/licq/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/licq/available.gif rename to mod_webpresence/priv/pixmaps/licq/available.gif diff --git a/mod_webpresence/data/pixmaps/licq/away.gif b/mod_webpresence/priv/pixmaps/licq/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/licq/away.gif rename to mod_webpresence/priv/pixmaps/licq/away.gif diff --git a/mod_webpresence/data/pixmaps/licq/chat.gif b/mod_webpresence/priv/pixmaps/licq/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/licq/chat.gif rename to mod_webpresence/priv/pixmaps/licq/chat.gif diff --git a/mod_webpresence/data/pixmaps/licq/dnd.gif b/mod_webpresence/priv/pixmaps/licq/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/licq/dnd.gif rename to mod_webpresence/priv/pixmaps/licq/dnd.gif diff --git a/mod_webpresence/data/pixmaps/licq/unavailable.gif b/mod_webpresence/priv/pixmaps/licq/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/licq/unavailable.gif rename to mod_webpresence/priv/pixmaps/licq/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/licq/xa.gif b/mod_webpresence/priv/pixmaps/licq/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/licq/xa.gif rename to mod_webpresence/priv/pixmaps/licq/xa.gif diff --git a/mod_webpresence/data/pixmaps/nahuatl/available.gif b/mod_webpresence/priv/pixmaps/nahuatl/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/nahuatl/available.gif rename to mod_webpresence/priv/pixmaps/nahuatl/available.gif diff --git a/mod_webpresence/data/pixmaps/nahuatl/away.gif b/mod_webpresence/priv/pixmaps/nahuatl/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/nahuatl/away.gif rename to mod_webpresence/priv/pixmaps/nahuatl/away.gif diff --git a/mod_webpresence/data/pixmaps/nahuatl/chat.gif b/mod_webpresence/priv/pixmaps/nahuatl/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/nahuatl/chat.gif rename to mod_webpresence/priv/pixmaps/nahuatl/chat.gif diff --git a/mod_webpresence/data/pixmaps/nahuatl/dnd.gif b/mod_webpresence/priv/pixmaps/nahuatl/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/nahuatl/dnd.gif rename to mod_webpresence/priv/pixmaps/nahuatl/dnd.gif diff --git a/mod_webpresence/data/pixmaps/nahuatl/unavailable.gif b/mod_webpresence/priv/pixmaps/nahuatl/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/nahuatl/unavailable.gif rename to mod_webpresence/priv/pixmaps/nahuatl/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/nahuatl/xa.gif b/mod_webpresence/priv/pixmaps/nahuatl/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/nahuatl/xa.gif rename to mod_webpresence/priv/pixmaps/nahuatl/xa.gif diff --git a/mod_webpresence/data/pixmaps/nuvola/available.png b/mod_webpresence/priv/pixmaps/nuvola/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/nuvola/available.png rename to mod_webpresence/priv/pixmaps/nuvola/available.png diff --git a/mod_webpresence/data/pixmaps/nuvola/away.png b/mod_webpresence/priv/pixmaps/nuvola/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/nuvola/away.png rename to mod_webpresence/priv/pixmaps/nuvola/away.png diff --git a/mod_webpresence/data/pixmaps/nuvola/chat.png b/mod_webpresence/priv/pixmaps/nuvola/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/nuvola/chat.png rename to mod_webpresence/priv/pixmaps/nuvola/chat.png diff --git a/mod_webpresence/data/pixmaps/nuvola/dnd.png b/mod_webpresence/priv/pixmaps/nuvola/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/nuvola/dnd.png rename to mod_webpresence/priv/pixmaps/nuvola/dnd.png diff --git a/mod_webpresence/data/pixmaps/nuvola/unavailable.png b/mod_webpresence/priv/pixmaps/nuvola/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/nuvola/unavailable.png rename to mod_webpresence/priv/pixmaps/nuvola/unavailable.png diff --git a/mod_webpresence/data/pixmaps/nuvola/xa.png b/mod_webpresence/priv/pixmaps/nuvola/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/nuvola/xa.png rename to mod_webpresence/priv/pixmaps/nuvola/xa.png diff --git a/mod_webpresence/data/pixmaps/phpbb/available.gif b/mod_webpresence/priv/pixmaps/phpbb/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/phpbb/available.gif rename to mod_webpresence/priv/pixmaps/phpbb/available.gif diff --git a/mod_webpresence/data/pixmaps/phpbb/away.gif b/mod_webpresence/priv/pixmaps/phpbb/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/phpbb/away.gif rename to mod_webpresence/priv/pixmaps/phpbb/away.gif diff --git a/mod_webpresence/data/pixmaps/phpbb/chat.gif b/mod_webpresence/priv/pixmaps/phpbb/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/phpbb/chat.gif rename to mod_webpresence/priv/pixmaps/phpbb/chat.gif diff --git a/mod_webpresence/data/pixmaps/phpbb/dnd.gif b/mod_webpresence/priv/pixmaps/phpbb/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/phpbb/dnd.gif rename to mod_webpresence/priv/pixmaps/phpbb/dnd.gif diff --git a/mod_webpresence/data/pixmaps/phpbb/unavailable.gif b/mod_webpresence/priv/pixmaps/phpbb/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/phpbb/unavailable.gif rename to mod_webpresence/priv/pixmaps/phpbb/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/phpbb/xa.gif b/mod_webpresence/priv/pixmaps/phpbb/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/phpbb/xa.gif rename to mod_webpresence/priv/pixmaps/phpbb/xa.gif diff --git a/mod_webpresence/data/pixmaps/pogoda/available.gif b/mod_webpresence/priv/pixmaps/pogoda/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/pogoda/available.gif rename to mod_webpresence/priv/pixmaps/pogoda/available.gif diff --git a/mod_webpresence/data/pixmaps/pogoda/away.gif b/mod_webpresence/priv/pixmaps/pogoda/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/pogoda/away.gif rename to mod_webpresence/priv/pixmaps/pogoda/away.gif diff --git a/mod_webpresence/data/pixmaps/pogoda/chat.gif b/mod_webpresence/priv/pixmaps/pogoda/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/pogoda/chat.gif rename to mod_webpresence/priv/pixmaps/pogoda/chat.gif diff --git a/mod_webpresence/data/pixmaps/pogoda/dnd.gif b/mod_webpresence/priv/pixmaps/pogoda/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/pogoda/dnd.gif rename to mod_webpresence/priv/pixmaps/pogoda/dnd.gif diff --git a/mod_webpresence/data/pixmaps/pogoda/unavailable.gif b/mod_webpresence/priv/pixmaps/pogoda/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/pogoda/unavailable.gif rename to mod_webpresence/priv/pixmaps/pogoda/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/pogoda/xa.gif b/mod_webpresence/priv/pixmaps/pogoda/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/pogoda/xa.gif rename to mod_webpresence/priv/pixmaps/pogoda/xa.gif diff --git a/mod_webpresence/data/pixmaps/psi/available.gif b/mod_webpresence/priv/pixmaps/psi/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/psi/available.gif rename to mod_webpresence/priv/pixmaps/psi/available.gif diff --git a/mod_webpresence/data/pixmaps/psi/away.gif b/mod_webpresence/priv/pixmaps/psi/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/psi/away.gif rename to mod_webpresence/priv/pixmaps/psi/away.gif diff --git a/mod_webpresence/data/pixmaps/psi/chat.gif b/mod_webpresence/priv/pixmaps/psi/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/psi/chat.gif rename to mod_webpresence/priv/pixmaps/psi/chat.gif diff --git a/mod_webpresence/data/pixmaps/psi/dnd.gif b/mod_webpresence/priv/pixmaps/psi/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/psi/dnd.gif rename to mod_webpresence/priv/pixmaps/psi/dnd.gif diff --git a/mod_webpresence/data/pixmaps/psi/unavailable.gif b/mod_webpresence/priv/pixmaps/psi/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/psi/unavailable.gif rename to mod_webpresence/priv/pixmaps/psi/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/psi/xa.gif b/mod_webpresence/priv/pixmaps/psi/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/psi/xa.gif rename to mod_webpresence/priv/pixmaps/psi/xa.gif diff --git a/mod_webpresence/data/pixmaps/simple/available.png b/mod_webpresence/priv/pixmaps/simple/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/simple/available.png rename to mod_webpresence/priv/pixmaps/simple/available.png diff --git a/mod_webpresence/data/pixmaps/simple/away.png b/mod_webpresence/priv/pixmaps/simple/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/simple/away.png rename to mod_webpresence/priv/pixmaps/simple/away.png diff --git a/mod_webpresence/data/pixmaps/simple/chat.png b/mod_webpresence/priv/pixmaps/simple/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/simple/chat.png rename to mod_webpresence/priv/pixmaps/simple/chat.png diff --git a/mod_webpresence/data/pixmaps/simple/dnd.png b/mod_webpresence/priv/pixmaps/simple/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/simple/dnd.png rename to mod_webpresence/priv/pixmaps/simple/dnd.png diff --git a/mod_webpresence/data/pixmaps/simple/unavailable.png b/mod_webpresence/priv/pixmaps/simple/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/simple/unavailable.png rename to mod_webpresence/priv/pixmaps/simple/unavailable.png diff --git a/mod_webpresence/data/pixmaps/simple/xa.png b/mod_webpresence/priv/pixmaps/simple/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/simple/xa.png rename to mod_webpresence/priv/pixmaps/simple/xa.png diff --git a/mod_webpresence/data/pixmaps/simplebulb/available.png b/mod_webpresence/priv/pixmaps/simplebulb/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/simplebulb/available.png rename to mod_webpresence/priv/pixmaps/simplebulb/available.png diff --git a/mod_webpresence/data/pixmaps/simplebulb/away.png b/mod_webpresence/priv/pixmaps/simplebulb/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/simplebulb/away.png rename to mod_webpresence/priv/pixmaps/simplebulb/away.png diff --git a/mod_webpresence/data/pixmaps/simplebulb/chat.png b/mod_webpresence/priv/pixmaps/simplebulb/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/simplebulb/chat.png rename to mod_webpresence/priv/pixmaps/simplebulb/chat.png diff --git a/mod_webpresence/data/pixmaps/simplebulb/dnd.png b/mod_webpresence/priv/pixmaps/simplebulb/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/simplebulb/dnd.png rename to mod_webpresence/priv/pixmaps/simplebulb/dnd.png diff --git a/mod_webpresence/data/pixmaps/simplebulb/unavailable.png b/mod_webpresence/priv/pixmaps/simplebulb/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/simplebulb/unavailable.png rename to mod_webpresence/priv/pixmaps/simplebulb/unavailable.png diff --git a/mod_webpresence/data/pixmaps/simplebulb/xa.png b/mod_webpresence/priv/pixmaps/simplebulb/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/simplebulb/xa.png rename to mod_webpresence/priv/pixmaps/simplebulb/xa.png diff --git a/mod_webpresence/data/pixmaps/stellar/available.png b/mod_webpresence/priv/pixmaps/stellar/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/stellar/available.png rename to mod_webpresence/priv/pixmaps/stellar/available.png diff --git a/mod_webpresence/data/pixmaps/stellar/away.png b/mod_webpresence/priv/pixmaps/stellar/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/stellar/away.png rename to mod_webpresence/priv/pixmaps/stellar/away.png diff --git a/mod_webpresence/data/pixmaps/stellar/chat.png b/mod_webpresence/priv/pixmaps/stellar/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/stellar/chat.png rename to mod_webpresence/priv/pixmaps/stellar/chat.png diff --git a/mod_webpresence/data/pixmaps/stellar/dnd.png b/mod_webpresence/priv/pixmaps/stellar/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/stellar/dnd.png rename to mod_webpresence/priv/pixmaps/stellar/dnd.png diff --git a/mod_webpresence/data/pixmaps/stellar/unavailable.png b/mod_webpresence/priv/pixmaps/stellar/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/stellar/unavailable.png rename to mod_webpresence/priv/pixmaps/stellar/unavailable.png diff --git a/mod_webpresence/data/pixmaps/stellar/xa.png b/mod_webpresence/priv/pixmaps/stellar/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/stellar/xa.png rename to mod_webpresence/priv/pixmaps/stellar/xa.png diff --git a/mod_webpresence/data/pixmaps/stellar2/available.gif b/mod_webpresence/priv/pixmaps/stellar2/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/stellar2/available.gif rename to mod_webpresence/priv/pixmaps/stellar2/available.gif diff --git a/mod_webpresence/data/pixmaps/stellar2/away.gif b/mod_webpresence/priv/pixmaps/stellar2/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/stellar2/away.gif rename to mod_webpresence/priv/pixmaps/stellar2/away.gif diff --git a/mod_webpresence/data/pixmaps/stellar2/chat.gif b/mod_webpresence/priv/pixmaps/stellar2/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/stellar2/chat.gif rename to mod_webpresence/priv/pixmaps/stellar2/chat.gif diff --git a/mod_webpresence/data/pixmaps/stellar2/dnd.gif b/mod_webpresence/priv/pixmaps/stellar2/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/stellar2/dnd.gif rename to mod_webpresence/priv/pixmaps/stellar2/dnd.gif diff --git a/mod_webpresence/data/pixmaps/stellar2/unavailable.gif b/mod_webpresence/priv/pixmaps/stellar2/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/stellar2/unavailable.gif rename to mod_webpresence/priv/pixmaps/stellar2/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/stellar2/xa.gif b/mod_webpresence/priv/pixmaps/stellar2/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/stellar2/xa.gif rename to mod_webpresence/priv/pixmaps/stellar2/xa.gif diff --git a/mod_webpresence/data/pixmaps/sun/available.png b/mod_webpresence/priv/pixmaps/sun/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/sun/available.png rename to mod_webpresence/priv/pixmaps/sun/available.png diff --git a/mod_webpresence/data/pixmaps/sun/away.png b/mod_webpresence/priv/pixmaps/sun/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/sun/away.png rename to mod_webpresence/priv/pixmaps/sun/away.png diff --git a/mod_webpresence/data/pixmaps/sun/chat.png b/mod_webpresence/priv/pixmaps/sun/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/sun/chat.png rename to mod_webpresence/priv/pixmaps/sun/chat.png diff --git a/mod_webpresence/data/pixmaps/sun/dnd.png b/mod_webpresence/priv/pixmaps/sun/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/sun/dnd.png rename to mod_webpresence/priv/pixmaps/sun/dnd.png diff --git a/mod_webpresence/data/pixmaps/sun/unavailable.png b/mod_webpresence/priv/pixmaps/sun/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/sun/unavailable.png rename to mod_webpresence/priv/pixmaps/sun/unavailable.png diff --git a/mod_webpresence/data/pixmaps/sun/xa.png b/mod_webpresence/priv/pixmaps/sun/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/sun/xa.png rename to mod_webpresence/priv/pixmaps/sun/xa.png diff --git a/mod_webpresence/data/pixmaps/tux/available.gif b/mod_webpresence/priv/pixmaps/tux/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/tux/available.gif rename to mod_webpresence/priv/pixmaps/tux/available.gif diff --git a/mod_webpresence/data/pixmaps/tux/away.gif b/mod_webpresence/priv/pixmaps/tux/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/tux/away.gif rename to mod_webpresence/priv/pixmaps/tux/away.gif diff --git a/mod_webpresence/data/pixmaps/tux/chat.gif b/mod_webpresence/priv/pixmaps/tux/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/tux/chat.gif rename to mod_webpresence/priv/pixmaps/tux/chat.gif diff --git a/mod_webpresence/data/pixmaps/tux/dnd.gif b/mod_webpresence/priv/pixmaps/tux/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/tux/dnd.gif rename to mod_webpresence/priv/pixmaps/tux/dnd.gif diff --git a/mod_webpresence/data/pixmaps/tux/unavailable.gif b/mod_webpresence/priv/pixmaps/tux/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/tux/unavailable.gif rename to mod_webpresence/priv/pixmaps/tux/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/tux/xa.gif b/mod_webpresence/priv/pixmaps/tux/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/tux/xa.gif rename to mod_webpresence/priv/pixmaps/tux/xa.gif diff --git a/mod_webpresence/data/pixmaps/wpkontakt/available.gif b/mod_webpresence/priv/pixmaps/wpkontakt/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/wpkontakt/available.gif rename to mod_webpresence/priv/pixmaps/wpkontakt/available.gif diff --git a/mod_webpresence/data/pixmaps/wpkontakt/away.gif b/mod_webpresence/priv/pixmaps/wpkontakt/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/wpkontakt/away.gif rename to mod_webpresence/priv/pixmaps/wpkontakt/away.gif diff --git a/mod_webpresence/data/pixmaps/wpkontakt/chat.gif b/mod_webpresence/priv/pixmaps/wpkontakt/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/wpkontakt/chat.gif rename to mod_webpresence/priv/pixmaps/wpkontakt/chat.gif diff --git a/mod_webpresence/data/pixmaps/wpkontakt/dnd.gif b/mod_webpresence/priv/pixmaps/wpkontakt/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/wpkontakt/dnd.gif rename to mod_webpresence/priv/pixmaps/wpkontakt/dnd.gif diff --git a/mod_webpresence/data/pixmaps/wpkontakt/unavailable.gif b/mod_webpresence/priv/pixmaps/wpkontakt/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/wpkontakt/unavailable.gif rename to mod_webpresence/priv/pixmaps/wpkontakt/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/wpkontakt/xa.gif b/mod_webpresence/priv/pixmaps/wpkontakt/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/wpkontakt/xa.gif rename to mod_webpresence/priv/pixmaps/wpkontakt/xa.gif diff --git a/mod_webpresence/data/pixmaps/yipee/available.gif b/mod_webpresence/priv/pixmaps/yipee/available.gif similarity index 100% rename from mod_webpresence/data/pixmaps/yipee/available.gif rename to mod_webpresence/priv/pixmaps/yipee/available.gif diff --git a/mod_webpresence/data/pixmaps/yipee/away.gif b/mod_webpresence/priv/pixmaps/yipee/away.gif similarity index 100% rename from mod_webpresence/data/pixmaps/yipee/away.gif rename to mod_webpresence/priv/pixmaps/yipee/away.gif diff --git a/mod_webpresence/data/pixmaps/yipee/chat.gif b/mod_webpresence/priv/pixmaps/yipee/chat.gif similarity index 100% rename from mod_webpresence/data/pixmaps/yipee/chat.gif rename to mod_webpresence/priv/pixmaps/yipee/chat.gif diff --git a/mod_webpresence/data/pixmaps/yipee/dnd.gif b/mod_webpresence/priv/pixmaps/yipee/dnd.gif similarity index 100% rename from mod_webpresence/data/pixmaps/yipee/dnd.gif rename to mod_webpresence/priv/pixmaps/yipee/dnd.gif diff --git a/mod_webpresence/data/pixmaps/yipee/unavailable.gif b/mod_webpresence/priv/pixmaps/yipee/unavailable.gif similarity index 100% rename from mod_webpresence/data/pixmaps/yipee/unavailable.gif rename to mod_webpresence/priv/pixmaps/yipee/unavailable.gif diff --git a/mod_webpresence/data/pixmaps/yipee/xa.gif b/mod_webpresence/priv/pixmaps/yipee/xa.gif similarity index 100% rename from mod_webpresence/data/pixmaps/yipee/xa.gif rename to mod_webpresence/priv/pixmaps/yipee/xa.gif diff --git a/mod_webpresence/data/pixmaps/zyx/available.png b/mod_webpresence/priv/pixmaps/zyx/available.png similarity index 100% rename from mod_webpresence/data/pixmaps/zyx/available.png rename to mod_webpresence/priv/pixmaps/zyx/available.png diff --git a/mod_webpresence/data/pixmaps/zyx/away.png b/mod_webpresence/priv/pixmaps/zyx/away.png similarity index 100% rename from mod_webpresence/data/pixmaps/zyx/away.png rename to mod_webpresence/priv/pixmaps/zyx/away.png diff --git a/mod_webpresence/data/pixmaps/zyx/chat.png b/mod_webpresence/priv/pixmaps/zyx/chat.png similarity index 100% rename from mod_webpresence/data/pixmaps/zyx/chat.png rename to mod_webpresence/priv/pixmaps/zyx/chat.png diff --git a/mod_webpresence/data/pixmaps/zyx/dnd.png b/mod_webpresence/priv/pixmaps/zyx/dnd.png similarity index 100% rename from mod_webpresence/data/pixmaps/zyx/dnd.png rename to mod_webpresence/priv/pixmaps/zyx/dnd.png diff --git a/mod_webpresence/data/pixmaps/zyx/unavailable.png b/mod_webpresence/priv/pixmaps/zyx/unavailable.png similarity index 100% rename from mod_webpresence/data/pixmaps/zyx/unavailable.png rename to mod_webpresence/priv/pixmaps/zyx/unavailable.png diff --git a/mod_webpresence/data/pixmaps/zyx/xa.png b/mod_webpresence/priv/pixmaps/zyx/xa.png similarity index 100% rename from mod_webpresence/data/pixmaps/zyx/xa.png rename to mod_webpresence/priv/pixmaps/zyx/xa.png