|
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.
|