diff options
author | Steven Barth <steven@midlink.org> | 2009-03-30 11:27:43 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2009-03-30 11:27:43 +0000 |
commit | 0ef46dc967b53f09254033027ffc9d6e129e4d4f (patch) | |
tree | 3c575b8ec7fe66406ece2f80be21582f06f79e07 /libs/luanet/src/main.c | |
parent | 5396d3115e1acf7abf8ae8ef448b7a55504f30b1 (diff) |
Import luanet library
Relicensed with author's permission
Thanks John
Diffstat (limited to 'libs/luanet/src/main.c')
-rw-r--r-- | libs/luanet/src/main.c | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/libs/luanet/src/main.c b/libs/luanet/src/main.c new file mode 100644 index 0000000000..0a42276cba --- /dev/null +++ b/libs/luanet/src/main.c @@ -0,0 +1,95 @@ +/* + * 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. + * + * Copyright (C) 2008 John Crispin <blogic@openwrt.org> + * Copyright (C) 2008 Steven Barth <steven@midlink.org> + */ + +#include <stdio.h> +#include <unistd.h> + +#include <lua.h> +#include <lualib.h> +#include <lauxlib.h> + +#include "route.h" +#include "bridge.h" +#include "ifconfig.h" +#include "iwconfig.h" +#include "vconfig.h" +#include "df.h" +#include "base64.h" + +int psleep(lua_State *L) +{ + int s; + if(lua_gettop(L) != 1) + { + lua_pushstring(L, "invalid arg list"); + lua_error(L); + return 0; + } + + s = (int)lua_tointeger (L, 1); + sleep(s); + return 0; +} + +static luaL_reg func[] = { + {"ifc_getall", ifc_getall}, + {"ifc_setip", ifc_setip}, + {"ifc_setnetmask", ifc_setnetmask}, + {"ifc_setbroadcast", ifc_setbroadcast}, + {"ifc_setmtu", ifc_setmtu}, + {"ifc_up", ifc_up}, + {"ifc_down", ifc_down}, + {"bridge_getall", bridge_getall}, + {"bridge_new", bridge_new}, + {"bridge_del", bridge_del}, + {"bridge_addif", bridge_addif}, + {"bridge_delif", bridge_delif}, + {"iwc_getall", iwc_getall}, + {"iwc_set_essid", iwc_set_essid}, + {"iwc_set_mode", iwc_set_mode}, + {"iwc_set_channel", iwc_set_channel}, + {"iwc_scan", iwc_scan}, + {"vlan_getall", vlan_getall}, + {"vlan_add", vlan_add}, + {"vlan_del", vlan_del}, + {"df", df}, + {"b64_encode", b64_encode}, + {"b64_decode", b64_decode}, + {"sleep", psleep}, + {NULL, NULL} +}; + +int luaopen_luanet(lua_State *L) +{ + ifc_startup(); + bridge_startup(); + iwc_startup(); + luaL_openlib(L, "luanet", func, 0); + lua_pushstring(L, "_VERSION"); + lua_pushstring(L, "1.0"); + lua_rawset(L, -3); + return 1; +} + +int luaclose_luanet(lua_State *L) +{ + ifc_shutdown(); + bridge_shutdown(); + iwc_shutdown(); + lua_pushstring(L, "Called"); + return 1; +} |