int status_counter_dec(server *srv, const char *s, size_t len) { data_integer *di = status_counter_get_counter(srv, s, len); if (di->value > 0) di->value--; return 0; }
int status_counter_set(server *srv, const char *s, size_t len, int val) { data_integer *di = status_counter_get_counter(srv, s, len); di->value = val; return 0; }
/* dummies of the statistic framework functions * they will be moved to a statistics.c later */ int status_counter_inc(server *srv, const char *s, size_t len) { data_integer *di = status_counter_get_counter(srv, s, len); di->value++; return 0; }
static int magnet_status_get(lua_State *L) { data_integer *di; server *srv = magnet_get_server(L); /* __index: param 1 is the (empty) table the value was not found in */ const_buffer key = magnet_checkconstbuffer(L, 2); di = status_counter_get_counter(srv, key.ptr, key.len); lua_pushinteger(L, (lua_Integer)di->value); return 1; }
static int magnet_status_get(lua_State *L) { data_integer *di; server *srv; size_t key_len = 0; const char *key = luaL_checklstring(L, 2, &key_len); lua_pushstring(L, "lighty.srv"); lua_gettable(L, LUA_REGISTRYINDEX); srv = lua_touserdata(L, -1); lua_pop(L, 1); di = status_counter_get_counter(srv, key, key_len); lua_pushnumber(L, (double)di->value); return 1; }