From: <abe...@us...> - 2013-01-08 00:38:03
|
Revision: 5873 http://astlinux.svn.sourceforge.net/astlinux/?rev=5873&view=rev Author: abelbeck Date: 2013-01-08 00:37:56 +0000 (Tue, 08 Jan 2013) Log Message: ----------- prosody, prosody.init is completed along with documentation in /stat/etc/rc.conf Modified Paths: -------------- branches/1.0/package/prosody/prosody.init branches/1.0/project/astlinux/target_skeleton/stat/etc/rc.conf Modified: branches/1.0/package/prosody/prosody.init =================================================================== --- branches/1.0/package/prosody/prosody.init 2013-01-07 15:43:22 UTC (rev 5872) +++ branches/1.0/package/prosody/prosody.init 2013-01-08 00:37:56 UTC (rev 5873) @@ -2,9 +2,121 @@ . /etc/rc.conf +DEFAULT_MODULES="roster saslauth tls dialback disco \ +private vcard \ +legacyauth version uptime time ping pep register adhoc \ +admin_adhoc" + +mod_in_list() +{ + local match="$1" list="$2" IFS + + unset IFS + for i in $list; do + if [ "$match" = "$i" ]; then + return 0 + fi + done + + return 1 +} + +gen_xmpp_config() +{ + local m ADD_MODS="" modules="" admins="" hostname cert key log syslog error + local SSL_OK LOG_OK SYSLOG_OK ERROR_LOG IFS + + unset IFS + for m in $XMPP_ENABLE_MODULES; do + if ! mod_in_list "$m" "$DEFAULT_MODULES"; then + ADD_MODS="$ADD_MODS${ADD_MODS:+ }$m" + fi + done + for m in $DEFAULT_MODULES $ADD_MODS; do + if ! mod_in_list "$m" "$XMPP_DISABLE_MODULES"; then + modules="$modules${modules:+, }\"$m\"" + fi + done + + SSL_OK="-- " + cert="${XMPP_CERT:-/etc/prosody/certs/server.crt}" + key="${XMPP_KEY:-/etc/prosody/certs/server.key}" + if [ -f "$cert" -a -f "$key" ]; then + if [ "$(stat -c '%U:%G' "$cert")" = "prosody:prosody" -a "$(stat -c '%U:%G' "$key")" = "prosody:prosody" ]; then + SSL_OK="" + fi + fi + + for m in $XMPP_ADMIN_USERS; do + admins="$admins${admins:+, }\"$m\"" + done + + hostname="${XMPP_HOSTNAME:-$HOSTNAME.$DOMAIN}" + + log="${XMPP_LOG:-none}" + if [ "$log" = "warn" -o "$log" = "info" -o "$log" = "debug" ]; then + LOG_OK="" + else + LOG_OK="-- " + log="info" + fi + + syslog="${XMPP_SYSLOG:-warn}" + if [ "$syslog" = "error" -o "$syslog" = "warn" -o "$syslog" = "info" ]; then + SYSLOG_OK="" + else + SYSLOG_OK="-- " + syslog="warn" + fi + + error="${XMPP_ERROR_LOG:-no}" + if [ "$error" = "yes" -o "$error" = "error" ]; then + ERROR_LOG="" + else + ERROR_LOG="-- " + fi + + echo " +pidfile = \"/var/run/prosody/prosody.pid\" + +prosody_user = \"prosody\" +prosody_group = \"prosody\" + +allow_registration = false + +authentication = \"internal_plain\" + +admins = { $admins } + +log = { +${LOG_OK} $log = \"/var/log/prosody/prosody.log\", +${SYSLOG_OK} $syslog = \"*syslog\", +${ERROR_LOG} error = \"/var/log/prosody/prosody.err\", +} + +${SSL_OK}ssl = { +${SSL_OK} certificate = \"$cert\", +${SSL_OK} key = \"$key\", +${SSL_OK}} + +modules_enabled = { \"posix\", $modules } + +modules_disabled = { } + +VirtualHost \"$hostname\" +" + + if [ -n "$XMPP_CONFERENCE" ]; then + echo "Component \"$XMPP_CONFERENCE\" \"muc\"" + fi +} + init () { if [ "$XMPP_ENABLE" != "yes" ]; then + if [ -f /mnt/kd/prosody/prosody.cfg.lua ]; then + rm /mnt/kd/prosody/prosody.cfg.lua + fi exit fi @@ -17,19 +129,32 @@ mkdir /mnt/kd/prosody mkdir /mnt/kd/prosody/data mkdir /mnt/kd/prosody/certs - cp /stat/etc/prosody/prosody.cfg.lua /mnt/kd/prosody/prosody.cfg.lua find /mnt/kd/prosody -print0 | xargs -0 chown prosody:prosody chmod 750 /mnt/kd/prosody/data fi ln -snf /mnt/kd/prosody /tmp/etc/prosody chown prosody:prosody /tmp/etc/prosody + # Use SIP TLS certs if they exist and ours don't exist + if [ -f /mnt/kd/ssl/sip-tls/keys/server.crt ] && [ ! -f /mnt/kd/prosody/certs/server.crt ]; then + cp -a /mnt/kd/ssl/sip-tls/keys/server.crt /mnt/kd/prosody/certs/server.crt + chown prosody:prosody /mnt/kd/prosody/certs/server.crt + fi + if [ -f /mnt/kd/ssl/sip-tls/keys/server.key ] && [ ! -f /mnt/kd/prosody/certs/server.key ]; then + cp -a /mnt/kd/ssl/sip-tls/keys/server.key /mnt/kd/prosody/certs/server.key + chown prosody:prosody /mnt/kd/prosody/certs/server.key + fi + if [ -f /mnt/kd/prosody/prosody.conf ]; then echo "-- Autogenerated. Edit /mnt/kd/prosody/prosody.conf file. " >/mnt/kd/prosody/prosody.cfg.lua cat /mnt/kd/prosody/prosody.conf >>/mnt/kd/prosody/prosody.cfg.lua else - : # Autogenerate /mnt/kd/prosody/prosody.cfg.lua + # Autogenerate /mnt/kd/prosody/prosody.cfg.lua + echo "-- Autogenerated. Do not edit. +-- A manually generated prosody.cfg.lua config will use /mnt/kd/prosody/prosody.conf if it exists. +" >/mnt/kd/prosody/prosody.cfg.lua + gen_xmpp_config >>/mnt/kd/prosody/prosody.cfg.lua fi chown prosody:prosody /mnt/kd/prosody/prosody.cfg.lua @@ -42,7 +167,7 @@ start () { - if [ "$XMPP_ENABLE" = "yes" ] && grep -q '^[^-]*"posix"' /etc/prosody/prosody.cfg.lua; then + if [ -f /etc/prosody/prosody.cfg.lua ] && grep -q '^[^-]*"posix"' /etc/prosody/prosody.cfg.lua; then echo "Starting XMPP Server..." su -p -c "/usr/bin/prosody" prosody 2>/dev/null Modified: branches/1.0/project/astlinux/target_skeleton/stat/etc/rc.conf =================================================================== --- branches/1.0/project/astlinux/target_skeleton/stat/etc/rc.conf 2013-01-07 15:43:22 UTC (rev 5872) +++ branches/1.0/project/astlinux/target_skeleton/stat/etc/rc.conf 2013-01-08 00:37:56 UTC (rev 5873) @@ -437,6 +437,21 @@ #UPNP_BITRATE_DOWN=10000000 #UPNP_SECURE_MODE="no" +## XMPP (Jabber) Server - Prosody +## Data stored in /mnt/kd/prosody/ symlinked from /etc/prosody/ +## Enable XMPP server by setting XMPP_ENABLE="yes" +#XMPP_ENABLE="yes" +#XMPP_HOSTNAME="host.example.com" # Defaults to "$HOSTNAME.$DOMAIN" +#XMPP_CERT="" # Defaults to "/etc/prosody/certs/server.crt" +#XMPP_KEY="" # Defaults to "/etc/prosody/certs/server.key" +#XMPP_ADMIN_USERS="" # Space separated list of accounts that are admins for the server. +#XMPP_ENABLE_MODULES="" # Space separated list of modules to enable, not enabled by default. +#XMPP_DISABLE_MODULES="" # Space separated list of default modules not to enable. +#XMPP_CONFERENCE="" # Enable a multi-user chat room server, ie. conference.host.example.com +#XMPP_LOG="none" # Enable /var/log/prosody/prosody.log: "none", "warn", "info", "debug" +#XMPP_SYSLOG="warn" # Enable syslog logging: "none", "error", "warn", "info" +#XMPP_ERROR_LOG="no" # Enable error logging /var/log/prosody/prosody.err: "no", "yes" + ## Proxy ENV variables (http_proxy, ftp_proxy, etc.) for curl, wget, etc. ## Format: http://user:pass@proxyhost:proxyport" ## The "user" and "pass" are optional This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |