diff options
Diffstat (limited to 'libs/nixio/src/protoent.c')
-rw-r--r-- | libs/nixio/src/protoent.c | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/libs/nixio/src/protoent.c b/libs/nixio/src/protoent.c deleted file mode 100644 index bda68a584..000000000 --- a/libs/nixio/src/protoent.c +++ /dev/null @@ -1,103 +0,0 @@ -/* - * nixio - Linux I/O library for lua - * - * Copyright (C) 2011 Jo-Philipp Wich <jow@openwrt.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" - -#ifndef __WINNT__ -#include <netdb.h> -#endif - -/** - * protoent conversion helper - */ -static int nixio__pushprotoent(lua_State *L, struct protoent *e) { - int i; - if (e) { - lua_newtable(L); - - lua_pushstring(L, e->p_name); - lua_setfield(L, -2, "name"); - - lua_pushnumber(L, e->p_proto); - lua_setfield(L, -2, "proto"); - - lua_newtable(L); - for (i = 0; e->p_aliases[i]; i++) { - lua_pushstring(L, e->p_aliases[i]); - lua_rawseti(L, -2, i+1); - } - lua_setfield(L, -2, "aliases"); - return 1; - } else { - return 0; - } -} - -/** - * getprotobyname(name) - */ -static int nixio_getprotobyname(lua_State *L) { - const char *name = luaL_checkstring(L, 1); - struct protoent *res = getprotobyname(name); - return nixio__pushprotoent(L, res); -} - -/** - * getprotobynumber(proto) - */ -static int nixio_getprotobynumber(lua_State *L) { - int proto = luaL_checkinteger(L, 1); - struct protoent *res = getprotobynumber(proto); - return nixio__pushprotoent(L, res); -} - -/** - * getproto(name_or_proto) - */ -static int nixio_getproto(lua_State *L) { - int i = 1; - struct protoent *res; - if (lua_isnumber(L, 1)) { - return nixio_getprotobynumber(L); - } else if (lua_isstring(L, 1)) { - return nixio_getprotobyname(L); - } else if (lua_isnoneornil(L, 1)) { - setprotoent(1); - lua_newtable(L); - while ((res = getprotoent()) != NULL) { - nixio__pushprotoent(L, res); - lua_rawseti(L, -2, i++); - } - endprotoent(); - return 1; - } else { - return luaL_argerror(L, 1, "supported values: <protoname>, <protonumber>"); - } -} - -/* module table */ -static const luaL_reg R[] = { - {"getprotobyname", nixio_getprotobyname}, - {"getprotobynumber", nixio_getprotobynumber}, - {"getproto", nixio_getproto}, - {NULL, NULL} -}; - -void nixio_open_protoent(lua_State *L) { - luaL_register(L, NULL, R); -} |