add header table for lua calls
authorFelix Fietkau <nbd@openwrt.org>
Sat, 5 Jan 2013 13:13:14 +0000 (14:13 +0100)
committerFelix Fietkau <nbd@openwrt.org>
Sat, 5 Jan 2013 13:13:14 +0000 (14:13 +0100)
lua.c

diff --git a/lua.c b/lua.c
index e404add..0dd4d4c 100644 (file)
--- a/lua.c
+++ b/lua.c
@@ -192,11 +192,13 @@ error:
 
 static void lua_main(struct client *cl, struct path_info *pi, const char *url)
 {
 
 static void lua_main(struct client *cl, struct path_info *pi, const char *url)
 {
+       struct blob_attr *cur;
        const char *error;
        struct env_var *var;
        lua_State *L = _L;
        int path_len, prefix_len;
        char *str;
        const char *error;
        struct env_var *var;
        lua_State *L = _L;
        int path_len, prefix_len;
        char *str;
+       int rem;
 
        lua_getglobal(L, UH_LUA_CB);
 
 
        lua_getglobal(L, UH_LUA_CB);
 
@@ -227,6 +229,13 @@ static void lua_main(struct client *cl, struct path_info *pi, const char *url)
        lua_pushnumber(L, 0.9 + (cl->request.version / 10.0));
        lua_setfield(L, -2, "HTTP_VERSION");
 
        lua_pushnumber(L, 0.9 + (cl->request.version / 10.0));
        lua_setfield(L, -2, "HTTP_VERSION");
 
+       lua_newtable(L);
+       blob_for_each_attr(cur, cl->hdr.head, rem) {
+               lua_pushstring(L, blobmsg_data(cur));
+               lua_setfield(L, -2, blobmsg_name(cur));
+       }
+       lua_setfield(L, -2, "headers");
+
        switch(lua_pcall(L, 1, 0, 0)) {
        case LUA_ERRMEM:
        case LUA_ERRRUN:
        switch(lua_pcall(L, 1, 0, 0)) {
        case LUA_ERRMEM:
        case LUA_ERRRUN: