Mercurial > prosody-modules
comparison mod_auth_external/mod_auth_external.lua @ 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 |
| parents | cd8492748985 |
| children | 3da3d6480e65 |
comparison
equal
deleted
inserted
replaced
| 196:a1c2677257da | 197:2686221255cf |
|---|---|
| 28 | 28 |
| 29 --local proc; | 29 --local proc; |
| 30 local pid; | 30 local pid; |
| 31 local readfile; | 31 local readfile; |
| 32 local writefile; | 32 local writefile; |
| 33 | |
| 33 local function send_query(text) | 34 local function send_query(text) |
| 34 -- if not proc then | 35 if pid and lpc.wait(pid,1) ~= nil then |
| 36 log("debug","error, process died, force reopen"); | |
| 37 pid=nil; | |
| 38 end | |
| 35 if not pid then | 39 if not pid then |
| 36 log("debug", "Opening process"); | 40 log("debug", "Opening process " .. command); |
| 37 -- proc = process.popen(command); | 41 -- proc = process.popen(command); |
| 38 pid, writefile, readfile = lpc.run(command); | 42 pid, writefile, readfile = lpc.run(command); |
| 39 end | 43 end |
| 40 -- if not proc then | 44 -- if not proc then |
| 41 if not pid then | 45 if not pid then |
| 42 log("debug", "Process failed to open"); | 46 log("debug", "Process failed to open"); |
| 43 return nil; | 47 return nil; |
| 44 end | 48 end |
| 45 -- proc:write(text); | 49 -- proc:write(text); |
| 46 -- proc:flush(); | 50 -- proc:flush(); |
| 51 | |
| 47 writefile:write(text); | 52 writefile:write(text); |
| 48 writefile:flush(); | 53 writefile:flush(); |
| 49 if script_type == "ejabberd" then | 54 if script_type == "ejabberd" then |
| 50 -- return proc:read(4); -- FIXME do properly | 55 -- return proc:read(4); -- FIXME do properly |
| 51 return readfile:read(4); -- FIXME do properly | 56 return readfile:read(4); -- FIXME do properly |
