Rework LuCI build system
[project/luci.git] / libs / nixio / src / user.c
diff --git a/libs/nixio/src/user.c b/libs/nixio/src/user.c
deleted file mode 100644 (file)
index b701bac..0000000
+++ /dev/null
@@ -1,263 +0,0 @@
-/*
- * nixio - Linux I/O library for lua
- *
- *   Copyright (C) 2009 Steven Barth <steven@midlink.org>
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-#include "nixio.h"
-#include <sys/types.h>
-#include <errno.h>
-#include <unistd.h>
-#include <sys/param.h>
-
-#ifndef __WINNT__
-
-#include <grp.h>
-#include <pwd.h>
-
-#ifndef BSD
-#ifndef NO_SHADOW
-#include <shadow.h>
-#endif
-#include <crypt.h>
-#endif
-
-int nixio__check_group(lua_State *L, int idx) {
-       if (lua_isnumber(L, idx)) {
-               return lua_tointeger(L, idx);
-       } else if (lua_isstring(L, idx)) {
-               struct group *g = getgrnam(lua_tostring(L, idx));
-               return (!g) ? -1 : g->gr_gid;
-       } else {
-               return luaL_argerror(L, idx, "supported values: <groupname>, <gid>");
-       }
-}
-
-int nixio__check_user(lua_State *L, int idx) {
-       if (lua_isnumber(L, idx)) {
-               return lua_tointeger(L, idx);
-       } else if (lua_isstring(L, idx)) {
-               struct passwd *p = getpwnam(lua_tostring(L, idx));
-               return (!p) ? -1 : p->pw_uid;
-       } else {
-               return luaL_argerror(L, idx, "supported values: <username>, <uid>");
-       }
-}
-
-
-static int nixio__push_group(lua_State *L, struct group *gr) {
-       lua_createtable(L, 0, 4);
-       lua_pushstring(L, gr->gr_name);
-       lua_setfield(L, -2, "name");
-       lua_pushstring(L, gr->gr_passwd);
-       lua_setfield(L, -2, "passwd");
-       lua_pushinteger(L, gr->gr_gid);
-       lua_setfield(L, -2, "gid");
-       lua_newtable(L);
-
-       for (int i=0; gr->gr_mem[i]; i++) {
-               lua_pushstring(L, gr->gr_mem[i]);
-               lua_rawseti(L, -2, i+1);
-       }
-
-       lua_setfield(L, -2, "mem");
-       return 1;
-}
-
-static int nixio_getgr(lua_State *L) {
-       struct group *gr;
-       errno = 0;
-       if (lua_isnumber(L, 1)) {
-               gr = getgrgid(lua_tointeger(L, 1));
-       } else if (lua_isstring(L, 1)) {
-               gr = getgrnam(lua_tostring(L, 1));
-       } else if (lua_isnoneornil(L, 1)) {
-               lua_newtable(L);
-               int i = 0;
-
-               setgrent();
-               while ((gr = getgrent())) {
-                       nixio__push_group(L, gr);
-                       lua_rawseti(L, -2, ++i);
-               }
-
-               if (errno) {
-                       return nixio__perror(L);
-               }
-
-               endgrent();
-               return 1;
-       } else {
-               return luaL_argerror(L, 1, "supported values: <groupname>, <gid>");
-       }
-
-       if (!gr) {
-               return nixio__perror(L);
-       } else {
-               return nixio__push_group(L, gr);
-       }
-}
-
-static int nixio__push_passwd(lua_State *L, struct passwd *pw) {
-       lua_createtable(L, 0, 7);
-       lua_pushstring(L, pw->pw_name);
-       lua_setfield(L, -2, "name");
-       lua_pushstring(L, pw->pw_passwd);
-       lua_setfield(L, -2, "passwd");
-       lua_pushinteger(L, pw->pw_gid);
-       lua_setfield(L, -2, "gid");
-       lua_pushinteger(L, pw->pw_uid);
-       lua_setfield(L, -2, "uid");
-       lua_pushstring(L, pw->pw_dir);
-       lua_setfield(L, -2, "dir");
-       lua_pushstring(L, pw->pw_gecos);
-       lua_setfield(L, -2, "gecos");
-       lua_pushstring(L, pw->pw_shell);
-       lua_setfield(L, -2, "shell");
-       return 1;
-}
-
-static int nixio_getpw(lua_State *L) {
-       struct passwd *pw;
-       errno = 0;
-       if (lua_isnumber(L, 1)) {
-               pw = getpwuid(lua_tointeger(L, 1));
-       } else if (lua_isstring(L, 1)) {
-               pw = getpwnam(lua_tostring(L, 1));
-       } else if (lua_isnoneornil(L, 1)) {
-               lua_newtable(L);
-               int i = 0;
-
-               setpwent();
-               while ((pw = getpwent())) {
-                       nixio__push_passwd(L, pw);
-                       lua_rawseti(L, -2, ++i);
-               }
-
-               if (errno) {
-                       return nixio__perror(L);
-               }
-
-               endpwent();
-               return 1;
-       } else {
-               return luaL_argerror(L, 1, "supported values: <username>, <uid>");
-       }
-
-       if (!pw) {
-               return nixio__perror(L);
-       } else {
-               return nixio__push_passwd(L, pw);
-       }
-}
-
-#ifndef BSD
-#ifndef NO_SHADOW
-static int nixio__push_spwd(lua_State *L, struct spwd *sp) {
-       lua_createtable(L, 0, 9);
-       lua_pushstring(L, sp->sp_namp);
-       lua_setfield(L, -2, "namp");
-       lua_pushinteger(L, sp->sp_expire);
-       lua_setfield(L, -2, "expire");
-       lua_pushinteger(L, sp->sp_flag);
-       lua_setfield(L, -2, "flag");
-       lua_pushinteger(L, sp->sp_inact);
-       lua_setfield(L, -2, "inact");
-       lua_pushinteger(L, sp->sp_lstchg);
-       lua_setfield(L, -2, "lstchg");
-       lua_pushinteger(L, sp->sp_max);
-       lua_setfield(L, -2, "max");
-       lua_pushinteger(L, sp->sp_min);
-       lua_setfield(L, -2, "min");
-       lua_pushinteger(L, sp->sp_warn);
-       lua_setfield(L, -2, "warn");
-       lua_pushstring(L, sp->sp_pwdp);
-       lua_setfield(L, -2, "pwdp");
-       return 1;
-}
-
-static int nixio_getsp(lua_State *L) {
-       struct spwd *sp;
-       errno = 0;
-       if (lua_isstring(L, 1)) {
-               sp = getspnam(lua_tostring(L, 1));
-       } else if (lua_isnoneornil(L, 1)) {
-               lua_newtable(L);
-               int i = 0;
-
-               setspent();
-               while ((sp = getspent())) {
-                       nixio__push_spwd(L, sp);
-                       lua_rawseti(L, -2, ++i);
-               }
-
-               if (errno) {
-                       return nixio__perror(L);
-               }
-
-               endspent();
-               return 1;
-       } else {
-               return luaL_argerror(L, 1, "supported values: <username>");
-       }
-
-       if (!sp) {
-               return nixio__perror(L);
-       } else {
-               return nixio__push_spwd(L, sp);
-       }
-}
-#endif /* !NO_SHADOW */
-#endif /* !BSD */
-
-static int nixio_crypt(lua_State *L) {
-       const char *key = luaL_checkstring(L, 1);
-       const char *salt = luaL_checkstring(L, 2);
-       const char *hash = crypt(key, salt);
-
-       if (hash) {
-               lua_pushstring(L, hash);
-       } else {
-               lua_pushnil(L);
-       }
-
-       return 1;
-}
-
-
-/* module table */
-static const luaL_reg R[] = {
-       {"crypt",               nixio_crypt},
-       {"getgr",               nixio_getgr},
-       {"getpw",               nixio_getpw},
-#ifndef BSD
-#ifndef NO_SHADOW
-       {"getsp",               nixio_getsp},
-#endif
-#endif
-       {NULL,                  NULL}
-};
-
-#else /* __WINNT__ */
-
-static const luaL_reg R[] = {
-               {NULL,                  NULL}
-};
-
-#endif
-
-void nixio_open_user(lua_State *L) {
-       luaL_register(L, NULL, R);
-}