/** * set proxy.global.backends.addslave * * add slave server into mysql backends * * @return nil or the backend */ static int proxy_backends_set(lua_State *L) { network_backends_t *bs = *(network_backends_t **)luaL_checkself(L); gsize keysize = 0; const char *key = luaL_checklstring(L, 2, &keysize); if (strleq(key, keysize, C("addslave"))) { network_backends_add(bs, g_strdup(lua_tostring(L, -1)), BACKEND_TYPE_RO); } else if (strleq(key, keysize, C("addmaster"))) { network_backends_add(bs, g_strdup(lua_tostring(L, -1)), BACKEND_TYPE_RW); } else if (strleq(key, keysize, C("removebackend"))) { network_backends_remove(bs, lua_tointeger(L, -1)); } else { return luaL_error(L, "proxy.global.backends.%s is not writable", key); } return 1; }
static int proxy_backends_set(lua_State *L) { network_backends_t *bs = *(network_backends_t **)luaL_checkself(L); gsize keysize = 0; const char *key = luaL_checklstring(L, 2, &keysize); if (strleq(key, keysize, C("addslave"))) { network_backends_add(bs, g_strdup(lua_tostring(L, -1)), BACKEND_TYPE_RO); } else if (strleq(key, keysize, C("addmaster"))) { network_backends_add(bs, g_strdup(lua_tostring(L, -1)), BACKEND_TYPE_RW); } else if (strleq(key, keysize, C("changemaster"))) { //change_standby_to_master(bs); GThread* t = g_thread_new("change_master_thread", change_master_thread_func, srv); // g_thread_join(t); } else if (strleq(key, keysize, C("addstandby"))) { network_backends_add(bs, g_strdup(lua_tostring(L, -1)), BACKEND_TYPE_SY); } else if (strleq(key, keysize, C("removebackend"))) { network_backends_remove(bs, lua_tointeger(L, -1)); } else if (strleq(key, keysize, C("addpwds"))) { gchar* pwds = g_strdup(lua_tostring(L, -1)); network_backends_add_pwds(srv, pwds); g_free(pwds); } else if (strleq(key, keysize, C("addenpwds"))) { gchar* enpwds = convert_pwds(lua_tostring(L, -1)); network_backends_add_pwds(srv, enpwds); g_free(enpwds); } else if (strleq(key, keysize, C("removepwds"))) { gchar* users = g_strdup(lua_tostring(L, -1)); network_backends_remove_pwds(srv, users); g_free(users); } else if (strleq(key, keysize, C("saveconfig"))) { network_save_config(srv); } else { return luaL_error(L, "proxy.global.backends.%s is not writable", key); } return 1; }