Mercurial > prosody-modules
changeset 197:2686221255cf
restart authorize command if crashed or ended; added example shell script
author | Bjoern Kalkbrenner <terminar@cyberphoria.org> |
---|---|
date | Wed, 07 Jul 2010 13:27:46 +0200 (2010-07-07) |
parents | a1c2677257da |
children | a3b5810de3e4 |
files | mod_auth_external/authorize_example.sh mod_auth_external/mod_auth_external.lua |
diffstat | 2 files changed, 33 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_auth_external/authorize_example.sh Wed Jul 07 13:27:46 2010 +0200 @@ -0,0 +1,26 @@ +#!/bin/bash + +IFS=":" +AUTH_OK=1 +AUTH_FAILED=0 +LOGFILE="/var/log/prosody/auth.log" +USELOG=true + +while read ACTION USER HOST PASS ; do + + [ $USELOG == true ] && { echo "Date: $(date) Action: $ACTION User: $USER Host: $HOST Pass: $PASS" >> $LOGFILE; } + + case $ACTION in + "auth") + if [ $USER == "someone" ] ; then + echo $AUTH_OK + else + echo $AUTH_FAILED + fi + ;; + *) + echo $AUTH_FAILED + ;; + esac + +done
--- a/mod_auth_external/mod_auth_external.lua Wed Jul 07 17:31:31 2010 +0800 +++ b/mod_auth_external/mod_auth_external.lua Wed Jul 07 13:27:46 2010 +0200 @@ -30,10 +30,14 @@ local pid; local readfile; local writefile; + local function send_query(text) - -- if not proc then + if pid and lpc.wait(pid,1) ~= nil then + log("debug","error, process died, force reopen"); + pid=nil; + end if not pid then - log("debug", "Opening process"); + log("debug", "Opening process " .. command); -- proc = process.popen(command); pid, writefile, readfile = lpc.run(command); end @@ -44,6 +48,7 @@ end -- proc:write(text); -- proc:flush(); + writefile:write(text); writefile:flush(); if script_type == "ejabberd" then