Skip to content

Commit 656f3e5

Browse files
committed
Core(impl): impl /server list
1 parent 72b13a0 commit 656f3e5

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

src/core/chat_command.c

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,31 @@ SrnRet on_command_server(SrnCommand *cmd, void *user_data){
191191
return ret;
192192
}
193193

194+
if (g_ascii_strcasecmp(subcmd, "list") == 0){
195+
GList *lst;
196+
GList *srv_cfg_lst;
197+
GString *str;
198+
199+
// Get a list of server name
200+
ret = srn_config_manager_read_server_config_list(
201+
app->cfg_mgr, &srv_cfg_lst);
202+
if (!RET_IS_OK(ret)){
203+
return ret;
204+
}
205+
206+
str = g_string_new(NULL);
207+
for (lst = srv_cfg_lst; lst; lst = g_list_next(lst)) {
208+
g_string_append_c(str, ' ');
209+
g_string_append(str, lst->data);
210+
}
211+
ret = RET_OK(_("%1$d available server(s):%2$s"),
212+
g_list_length(srv_cfg_lst), str->str);
213+
g_string_free(str, TRUE);
214+
g_list_free_full(srv_cfg_lst, g_free);
215+
216+
return ret;
217+
}
218+
194219
return RET_ERR(_("Unknown sub command: %1$s"), subcmd);
195220
}
196221

src/core/chat_command.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,9 @@ static SrnCommandBinding cmd_bindings[] = {
5656
},
5757
{
5858
.name = "/server",
59-
.subcmd = {"connect", "disconnect", NULL},
59+
.subcmd = {"connect", "disconnect", "list", NULL},
6060
.argc = 1, // <name>
61+
.flags = SRN_COMMAND_FLAG_OMIT_ARG,
6162
.cb = on_command_server,
6263
},
6364
{

0 commit comments

Comments
 (0)