aboutsummaryrefslogtreecommitdiff
path: root/ssh/client.c
diff options
context:
space:
mode:
Diffstat (limited to 'ssh/client.c')
-rw-r--r--ssh/client.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/ssh/client.c b/ssh/client.c
index e6376cd..b293a33 100644
--- a/ssh/client.c
+++ b/ssh/client.c
@@ -244,6 +244,12 @@ static bool handle_line(
} else if (sv_equals(command, "create_room")) {
ret = tomsg_create_room(client);
+ } else if (sv_equals(command, "leave") || sv_equals(command, "leave_room")) {
+ if (parse_args(line, args, num_args = 1, false)) {
+ autocomplete_roomname(state, &args[0]);
+ ret = tomsg_leave_room(client, args[0]);
+ }
+
} else if (sv_equals(command, "invite")) {
if (parse_args(line, args, num_args = 2, false)) {
autocomplete_roomname(state, &args[0]);
@@ -368,6 +374,7 @@ static const char* event_type_descr(enum tomsg_event_type type) {
case TOMSG_EV_LIST_ROOMS: return "list_rooms";
case TOMSG_EV_LIST_MEMBERS: return "list_members";
case TOMSG_EV_CREATE_ROOM: return "create_room";
+ case TOMSG_EV_LEAVE_ROOM: return "leave_room";
case TOMSG_EV_INVITE: return "invite";
case TOMSG_EV_SEND: return "send";
case TOMSG_EV_HISTORY: return "history";
@@ -379,6 +386,7 @@ static const char* event_type_descr(enum tomsg_event_type type) {
case TOMSG_EV_PUSH_MESSAGE: return "push_message";
case TOMSG_EV_PUSH_INVITE: return "push_invite";
case TOMSG_EV_PUSH_JOIN: return "push_join";
+ case TOMSG_EV_PUSH_LEAVE: return "push_leave";
}
return "?unknown type?";
@@ -445,6 +453,10 @@ static void handle_event(struct state *state, const struct tomsg_event event) {
printf(" Created room %s\n", event.create_room.room_name);
break;
+ case TOMSG_EV_LEAVE_ROOM:
+ printf(" Left room %s\n", event.leave_room.room_name);
+ break;
+
case TOMSG_EV_INVITE:
printf(" Invited %s to %s\n",
event.join.username, event.join.room_name);
@@ -504,6 +516,11 @@ static void handle_event(struct state *state, const struct tomsg_event event) {
printf(" %s has joined %s\n",
event.join.username, event.join.room_name);
break;
+
+ case TOMSG_EV_PUSH_LEAVE:
+ printf(" %s has left room %s\n",
+ event.push_leave.username, event.push_leave.room_name);
+ break;
}
}