diff options
author | Matthew Wild <mwild1@gmail.com> | 2009-01-15 20:59:36 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2009-01-15 20:59:36 +0000 |
commit | b1f16033b0399c3c85ff4559f839800bf7a463b6 (patch) | |
tree | 78858ebd6f2c09ae6804664d5c2358c8805ea890 /util-src/pposix.c | |
parent | 333914c98df72a4feb622d35222f4f2b8a2afb51 (diff) | |
download | prosody-b1f16033b0399c3c85ff4559f839800bf7a463b6.tar.gz prosody-b1f16033b0399c3c85ff4559f839800bf7a463b6.zip |
mod_posix/pposix: Fix reporting of incorrect PID on daemonization. Log correct PID, and support writing a pidfile (pidfile = '/path/to/prosody.pid' in config). Added getpid() to pposix and improved function names.
Diffstat (limited to 'util-src/pposix.c')
-rw-r--r-- | util-src/pposix.c | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/util-src/pposix.c b/util-src/pposix.c index eaf68a7b..6e7d250c 100644 --- a/util-src/pposix.c +++ b/util-src/pposix.c @@ -37,7 +37,7 @@ /* Daemonization support */ -static int daemonize(lua_State *L) +static int lc_daemonize(lua_State *L) { pid_t pid; @@ -147,7 +147,7 @@ int facility_constants[] = { */ char* syslog_ident = NULL; -int syslog_open(lua_State* L) +int lc_syslog_open(lua_State* L) { int facility = luaL_checkoption(L, 2, "daemon", &facility_strings); facility = facility_constants[facility]; @@ -179,7 +179,7 @@ int level_constants[] = { LOG_EMERG, -1 }; -int syslog_log(lua_State* L) +int lc_syslog_log(lua_State* L) { int level = luaL_checkoption(L, 1, "notice", &level_strings); level = level_constants[level]; @@ -190,7 +190,7 @@ int syslog_log(lua_State* L) return 0; } -int syslog_close(lua_State* L) +int lc_syslog_close(lua_State* L) { closelog(); if(syslog_ident) @@ -201,21 +201,34 @@ int syslog_close(lua_State* L) return 0; } +/* getpid */ + +int lc_getpid(lua_State* L) +{ + lua_pushinteger(L, getpid()); + return 1; +} + +/* Register functions */ + int luaopen_util_pposix(lua_State *L) { lua_newtable(L); - lua_pushcfunction(L, daemonize); + lua_pushcfunction(L, lc_daemonize); lua_setfield(L, -2, "daemonize"); - lua_pushcfunction(L, syslog_open); + lua_pushcfunction(L, lc_syslog_open); lua_setfield(L, -2, "syslog_open"); - lua_pushcfunction(L, syslog_close); + lua_pushcfunction(L, lc_syslog_close); lua_setfield(L, -2, "syslog_close"); - lua_pushcfunction(L, syslog_log); + lua_pushcfunction(L, lc_syslog_log); lua_setfield(L, -2, "syslog_log"); + lua_pushcfunction(L, lc_getpid); + lua_setfield(L, -2, "getpid"); + return 1; }; |