static int meth_setstats(lua_State *L) { p_unix un = (p_unix) auxiliar_checkclass(L, "unix{client}", 1); return ls_buffer_meth_setstats(L, &un->buf); }
static int serial_tozip(lua_State *L) { serial_type *s = (serial_type*)auxiliar_checkclass(L, "core{serial}", 1); int ktype, etype; bool skip; /* Allows & disallows */ lua_rawgeti(L, LUA_REGISTRYINDEX, s->allow); // -5 lua_rawgeti(L, LUA_REGISTRYINDEX, s->disallow); // -4 lua_rawgeti(L, LUA_REGISTRYINDEX, s->disallow2); // -3 /* table is in the stack at index 't' */ lua_pushvalue(L, 2); /* table */ lua_pushnil(L); /* first key */ const char *filename = get_name(L, s, -2); /* Init the buffer */ s->buf = malloc(2 * 1024); s->buflen = 2 * 1024; s->bufpos = 0; writeTblFixed(s, "d={}\n", 5); writeTblFixed(s, "setLoaded('", 11); writeTbl(s, get_name(L, s, -2)); writeTblFixed(s, "', d)\n", 6); while (lua_next(L, -2) != 0) { skip = FALSE; ktype = lua_type(L, -2); etype = lua_type(L, -1); if (s->allow != LUA_REFNIL) { lua_pushvalue(L, -2); lua_rawget(L, -7); skip = lua_isnil(L, -1); lua_pop(L, 1); } else if (s->disallow != LUA_REFNIL) { lua_pushvalue(L, -2); lua_rawget(L, -6); skip = !lua_isnil(L, -1); lua_pop(L, 1); } if (s->disallow2 != LUA_REFNIL) { lua_pushvalue(L, -2); lua_rawget(L, -5); skip = !lua_isnil(L, -1); lua_pop(L, 1); } if (!skip) { writeTblFixed(s, "d[", 2); tbl_basic_serialize(L, s, ktype, -2); writeTblFixed(s, "]=", 2); tbl_basic_serialize(L, s, etype, -1); writeTblFixed(s, "\n", 1); } /* removes 'value'; keeps 'key' for next iteration */ lua_pop(L, 1); } writeTblFixed(s, "\nreturn d", 9); push_save(s->zf, s->zfname, filename, s->buf, s->bufpos); lua_pushboolean(L, TRUE); return 1; }
static int meth_getstats(lua_State *L) { p_unix un = (p_unix) auxiliar_checkclass(L, "serial{client}", 1); return buffer_meth_getstats(L, &un->buf); }
static int meth_setstats(lua_State *L) { p_tcp tcp = (p_tcp) auxiliar_checkclass(L, "tcp{client}", 1); return buffer_meth_setstats(L, &tcp->buf); }