void Profiles::loadProfiles() { char **vals; Redis *redis = ntop->getRedis(); int rc; rc = (redis ? redis->hashKeys(CONST_PROFILES_PREFS, &vals) : -1); if(rc > 0) { rc = min_val(rc, MAX_NUM_PROFILES); for(int i = 0; i < rc; i++) { if(vals[i] != NULL) { char contents[2048]; if(redis->hashGet((char*)CONST_PROFILES_PREFS, vals[i], contents, sizeof(contents)) != -1) { Profile *c = addProfile(vals[i], contents); if(c) profiles[numProfiles++] = c; } free(vals[i]); } } free(vals); } }
static int ntop_get_hash_keys_redis(lua_State* vm) { char *key, **vals; Redis *redis = ntop->getRedis(); int rc, i; if(ntop_lua_check(vm, __FUNCTION__, 1, LUA_TSTRING)) return(CONST_LUA_ERROR); if((key = (char*)lua_tostring(vm, 1)) == NULL) return(CONST_LUA_PARAM_ERROR); rc = redis->hashKeys(key, &vals); if(rc > 0) { lua_newtable(vm); for(i = 0; i < rc; i++) { lua_push_str_table_entry(vm, vals[i], (char*)""); free(vals[i]); } free(vals); } else lua_pushnil(vm); return(CONST_LUA_OK); }