DEF_LUA_MODIFY_GSTRING(path) DEF_LUA_MODIFY_GSTRING(doc_root) DEF_LUA_MODIFY_GSTRING(pathinfo) #undef DEF_LUA_MODIFY_GSTRING #define AR(m) { #m, lua_physical_attr_read_##m, NULL } #define AW(m) { #m, NULL, lua_physical_attr_write_##m } #define ARW(m) { #m, lua_physical_attr_read_##m, lua_physical_attr_write_##m } static const struct { const char* key; lua_Physical_Attrib read_attr, write_attr; } physical_attribs[] = { ARW(path), ARW(doc_root), ARW(pathinfo), { NULL, NULL, NULL } }; #undef AR #undef AW #undef ARW static int lua_physical_index(lua_State *L) { liPhysical *phys; const char *key; int i;
} static int lua_chunkqueue_attr_write_is_closed(liChunkQueue *cq, lua_State *L) { cq->is_closed = lua_toboolean(L, 3); return 0; } #define AR(m) { #m, lua_chunkqueue_attr_read_##m, NULL } #define AW(m) { #m, NULL, lua_chunkqueue_attr_write_##m } #define ARW(m) { #m, lua_chunkqueue_attr_read_##m, lua_chunkqueue_attr_write_##m } static const struct { const char* key; lua_ChunkQueue_Attrib read_attr, write_attr; } chunkqueue_attribs[] = { ARW(is_closed), { NULL, NULL, NULL } }; static int lua_chunkqueue_index(lua_State *L) { liChunkQueue *cq; const char *key; int i; if (lua_gettop(L) != 2) { lua_pushstring(L, "incorrect number of arguments"); lua_error(L); } if (li_lua_metatable_index(L)) return 1;
DEF_LUA_MODIFY_GSTRING(authority) DEF_LUA_MODIFY_GSTRING(path) DEF_LUA_MODIFY_GSTRING(query) DEF_LUA_MODIFY_GSTRING(host) #undef DEF_LUA_MODIFY_GSTRING #define AR(m) { #m, lua_requesturi_attr_read_##m, NULL } #define AW(m) { #m, NULL, lua_requesturi_attr_write_##m } #define ARW(m) { #m, lua_requesturi_attr_read_##m, lua_requesturi_attr_write_##m } static const struct { const char* key; lua_RequestUri_Attrib read_attr, write_attr; } requesturi_attribs[] = { ARW(raw), ARW(raw_path), ARW(raw_orig_path), ARW(scheme), ARW(authority), ARW(path), ARW(query), ARW(host), { NULL, NULL, NULL } }; #undef AR #undef AW #undef ARW