diff options
author | Steven Barth <steven@midlink.org> | 2009-03-03 22:44:26 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2009-03-03 22:44:26 +0000 |
commit | e38c438771d10231e7ce1b74c027b4914acd6c78 (patch) | |
tree | 91ca365e48919d9af60e11ec7564f47538208289 /libs/nixio/src/nixio.c | |
parent | a3079828b4e0c0fabd96dfca87b99a5b5d9529e5 (diff) |
nixio:
Use POSIX file functions
introduce dup()
introduce fork() wait() kill()
more signal interrupt wrappers
more POSIX / UNIX standard compliance
Diffstat (limited to 'libs/nixio/src/nixio.c')
-rw-r--r-- | libs/nixio/src/nixio.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/libs/nixio/src/nixio.c b/libs/nixio/src/nixio.c index ae1af7a16..e44f5fd47 100644 --- a/libs/nixio/src/nixio.c +++ b/libs/nixio/src/nixio.c @@ -20,6 +20,7 @@ #include <stdio.h> #include <string.h> #include <errno.h> +#include <signal.h> #define VERSION 0.1 @@ -53,12 +54,6 @@ nixio_sock* nixio__checksock(lua_State *L) { return sock; } -FILE* nixio__checkfile(lua_State *L) { - FILE **fpp = (FILE**)luaL_checkudata(L, 1, NIXIO_FILE_META); - luaL_argcheck(L, *fpp, 1, "invalid file object"); - return *fpp; -} - /* read fd from nixio_sock object */ int nixio__checksockfd(lua_State *L) { return nixio__checksock(L)->fd; @@ -80,7 +75,9 @@ int nixio__tofd(lua_State *L, int ud) { luaL_getmetatable(L, LUA_FILEHANDLE); if (lua_rawequal(L, -3, -4)) { fd = ((nixio_sock*)udata)->fd; - } else if (lua_rawequal(L, -2, -4) || lua_rawequal(L, -1, -4)) { + } else if (lua_rawequal(L, -2, -4)) { + fd = *((int*)udata); + } else if (lua_rawequal(L, -1, -4)) { fd = (*((FILE **)udata)) ? fileno(*((FILE **)udata)) : -1; } lua_pop(L, 4); @@ -124,6 +121,7 @@ LUALIB_API int luaopen_nixio(lua_State *L) { nixio_open_poll(L); nixio_open_io(L); nixio_open_splice(L); + nixio_open_process(L); nixio_open_tls_context(L); nixio_open_tls_socket(L); @@ -132,7 +130,7 @@ LUALIB_API int luaopen_nixio(lua_State *L) { lua_setfield(L, -2, "version"); /* some constants */ - lua_createtable(L, 0, 7); + lua_createtable(L, 0, 11); NIXIO_PUSH_CONSTANT(EACCES); NIXIO_PUSH_CONSTANT(ENOSYS); @@ -141,6 +139,10 @@ LUALIB_API int luaopen_nixio(lua_State *L) { NIXIO_PUSH_CONSTANT(EAGAIN); NIXIO_PUSH_CONSTANT(ENOMEM); NIXIO_PUSH_CONSTANT(ENOENT); + NIXIO_PUSH_CONSTANT(SIGALRM); + NIXIO_PUSH_CONSTANT(SIGINT); + NIXIO_PUSH_CONSTANT(SIGTERM); + NIXIO_PUSH_CONSTANT(SIGKILL); lua_setfield(L, -2, "const"); |