From dd1078d1836e77c511f169d9b22cfd3c4677ec5b Mon Sep 17 00:00:00 2001 From: Nicolas Viennot Date: Sat, 19 Sep 2015 22:07:02 -0400 Subject: [PATCH] Refactoring --- Makefile.am | 6 +++--- ...e-client-decoder.c => tmate-daemon-decoder.c | 0 ...e-client-encoder.c => tmate-daemon-encoder.c | 2 +- tmate-slave.c | 17 ++++++++--------- tmate-ssh-client-pty.c | 2 +- tmate-ssh-client.c => tmate-ssh-daemon.c | 10 +++++----- tmate-ssh-server.c | 4 ++-- tmate.h | 16 +++++++--------- 8 files changed, 27 insertions(+), 30 deletions(-) rename tmate-client-decoder.c => tmate-daemon-decoder.c (100%) rename tmate-client-encoder.c => tmate-daemon-encoder.c (98%) rename tmate-ssh-client.c => tmate-ssh-daemon.c (93%) diff --git a/Makefile.am b/Makefile.am index 363e0462..2b510e6a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -179,13 +179,13 @@ dist_tmate_slave_SOURCES = \ signal.c \ status.c \ tmate-debug.c \ - tmate-client-decoder.c \ - tmate-client-encoder.c \ + tmate-daemon-decoder.c \ + tmate-daemon-encoder.c \ tmate-msgpack.c \ tmate-master.c \ tmate-slave.c \ tmate-ssh-client-pty.c \ - tmate-ssh-client.c \ + tmate-ssh-daemon.c \ tmate-ssh-server.c \ tmux-bare.c \ tty-acs.c \ diff --git a/tmate-client-decoder.c b/tmate-daemon-decoder.c similarity index 100% rename from tmate-client-decoder.c rename to tmate-daemon-decoder.c diff --git a/tmate-client-encoder.c b/tmate-daemon-encoder.c similarity index 98% rename from tmate-client-encoder.c rename to tmate-daemon-encoder.c index 3950097f..56c9bb94 100644 --- a/tmate-client-encoder.c +++ b/tmate-daemon-encoder.c @@ -1,7 +1,7 @@ #include "tmate.h" #include "tmate-protocol.h" -#define pack(what, ...) _pack(&tmate_session->client_encoder, what, __VA_ARGS__) +#define pack(what, ...) _pack(&tmate_session->daemon_encoder, what, __VA_ARGS__) static void __tmate_notify(const char *msg) { diff --git a/tmate-slave.c b/tmate-slave.c index a05001f2..a98082b3 100644 --- a/tmate-slave.c +++ b/tmate-slave.c @@ -161,7 +161,7 @@ static void set_session_token(struct tmate_session *session, memset(cmdline, 0, cmdline_end - cmdline); sprintf(cmdline, "tmate-slave [%s] %s %s", session->session_token, - session->ssh_client.role == TMATE_ROLE_SERVER ? "(server)" : "(client)", + session->ssh_client.role == TMATE_ROLE_DAEMON ? "(daemon)" : "(pty client)", session->ssh_client.ip_address); } static void create_session_ro_symlink(struct tmate_session *session) @@ -297,7 +297,7 @@ static void setup_ncurse(int fd, const char *name) tmate_fatal("Cannot setup terminal"); } -static void tmate_spawn_slave_server(struct tmate_session *session) +static void tmate_spawn_slave_daemon(struct tmate_session *session) { struct tmate_ssh_client *client = &session->ssh_client; @@ -342,7 +342,7 @@ static void tmate_spawn_slave_server(struct tmate_session *session) /* never reached */ } -static void tmate_spawn_slave_client(struct tmate_session *session) +static void tmate_spawn_slave_pty_client(struct tmate_session *session) { struct tmate_ssh_client *client = &session->ssh_client; char *argv_rw[] = {(char *)"attach", NULL}; @@ -400,7 +400,7 @@ static void tmate_spawn_slave_client(struct tmate_session *session) setup_ncurse(slave_pty, "screen-256color"); - tmate_ssh_client_pty_init(session); + tmate_client_pty_init(session); /* the unused session->master_fd will get closed automatically */ @@ -418,9 +418,8 @@ static void tmate_spawn_slave_client(struct tmate_session *session) void tmate_spawn_slave(struct tmate_session *session) { - - if (session->ssh_client.role == TMATE_ROLE_SERVER) - tmate_spawn_slave_server(session); - else - tmate_spawn_slave_client(session); + switch (session->ssh_client.role) { + case TMATE_ROLE_DAEMON: tmate_spawn_slave_daemon(session); break; + case TMATE_ROLE_PTY_CLIENT: tmate_spawn_slave_pty_client(session); break; + } } diff --git a/tmate-ssh-client-pty.c b/tmate-ssh-client-pty.c index 79f0230c..4c7ffebb 100644 --- a/tmate-ssh-client-pty.c +++ b/tmate-ssh-client-pty.c @@ -87,7 +87,7 @@ void tmate_flush_pty(struct tmate_session *session) close(session->pty); } -void tmate_ssh_client_pty_init(struct tmate_session *session) +void tmate_client_pty_init(struct tmate_session *session) { struct tmate_ssh_client *client = &session->ssh_client; diff --git a/tmate-ssh-client.c b/tmate-ssh-daemon.c similarity index 93% rename from tmate-ssh-client.c rename to tmate-ssh-daemon.c index 552ca4c1..8ca04dc4 100644 --- a/tmate-ssh-client.c +++ b/tmate-ssh-daemon.c @@ -18,7 +18,7 @@ static void on_master_read(struct bufferevent *bev, void *_session) master_in = bufferevent_get_input(session->bev_master); while (evbuffer_get_length(master_in)) { - tmate_decoder_get_buffer(&session->client_decoder, &buf, &len); + tmate_decoder_get_buffer(&session->daemon_decoder, &buf, &len); if (len == 0) tmate_fatal("No more room in client decoder. Message too big?"); @@ -93,7 +93,7 @@ static int on_ssh_channel_read(ssh_session _session, ssh_channel channel, size_t len; while (total_len) { - tmate_decoder_get_buffer(&session->client_decoder, &buf, &len); + tmate_decoder_get_buffer(&session->daemon_decoder, &buf, &len); if (len == 0) tmate_fatal("No more room in client decoder. Message too big?"); @@ -103,7 +103,7 @@ static int on_ssh_channel_read(ssh_session _session, ssh_channel channel, memcpy(buf, data, len); - tmate_decoder_commit(&session->client_decoder, len); + tmate_decoder_commit(&session->daemon_decoder, len); total_len -= len; written += len; @@ -169,8 +169,8 @@ void tmate_daemon_init(struct tmate_session *session) client->channel_cb.channel_data_function = on_ssh_channel_read, ssh_set_channel_callbacks(client->channel, &client->channel_cb); - tmate_encoder_init(&session->client_encoder, on_daemon_encoder_write, session); - tmate_decoder_init(&session->client_decoder, on_daemon_decoder_read, session); + tmate_encoder_init(&session->daemon_encoder, on_daemon_encoder_write, session); + tmate_decoder_init(&session->daemon_decoder, on_daemon_decoder_read, session); if (tmate_has_master()) init_master(session); diff --git a/tmate-ssh-server.c b/tmate-ssh-server.c index 21515e2c..d1ac14f1 100644 --- a/tmate-ssh-server.c +++ b/tmate-ssh-server.c @@ -45,7 +45,7 @@ static int shell_request(ssh_session session, ssh_channel channel, { struct tmate_ssh_client *client = userdata; - client->role = TMATE_ROLE_CLIENT; + client->role = TMATE_ROLE_PTY_CLIENT; return 0; } @@ -56,7 +56,7 @@ static int subsystem_request(ssh_session session, ssh_channel channel, struct tmate_ssh_client *client = userdata; if (!strcmp(subsystem, "tmate")) - client->role = TMATE_ROLE_SERVER; + client->role = TMATE_ROLE_DAEMON; return 0; } diff --git a/tmate.h b/tmate.h index ca027c93..724f9b4d 100644 --- a/tmate.h +++ b/tmate.h @@ -103,12 +103,10 @@ extern void unpack_array(struct tmate_unpacker *uk, struct tmate_unpacker *neste (tmp_uk)->argc > 0 && (init_unpacker(nested_uk, (tmp_uk)->argv[0]), 1); \ (tmp_uk)->argv++, (tmp_uk)->argc--) -/* tmate-client-encoder.c */ +/* tmate-daemon-encoder.c */ #define TMATE_LATEST_VERSION "1.8.10" -extern void tmate_client_encoder_init(struct tmate_encoder *encoder); - extern void printflike1 tmate_notify(const char *fmt, ...); extern void printflike2 tmate_notify_later(int timeout, const char *fmt, ...); extern void tmate_notify_client_join(struct client *c); @@ -122,7 +120,7 @@ extern int tmate_should_exec_cmd_locally(const struct cmd_entry *cmd); extern void tmate_send_env(const char *name, const char *value); extern void tmate_send_client_ready(void); -/* tmate-client-decoder.c */ +/* tmate-daemon-decoder.c */ #define TMATE_HLIMIT 2000 #define TMATE_PANE_ACTIVE 1 @@ -140,7 +138,7 @@ extern void tmate_daemon_init(struct tmate_session *session); /* tmate-ssh-client-pty.c */ -extern void tmate_ssh_client_pty_init(struct tmate_session *session); +extern void tmate_client_pty_init(struct tmate_session *session); extern void tmate_flush_pty(struct tmate_session *session); /* tmate-ssh-server.c */ @@ -148,8 +146,8 @@ extern void tmate_flush_pty(struct tmate_session *session); #define TMATE_SSH_BANNER "tmate" #define TMATE_SSH_KEEPALIVE 60 -#define TMATE_ROLE_SERVER 1 -#define TMATE_ROLE_CLIENT 2 +#define TMATE_ROLE_DAEMON 1 +#define TMATE_ROLE_PTY_CLIENT 2 struct tmate_ssh_client { char ip_address[64]; @@ -213,8 +211,8 @@ struct tmate_session { const char *session_token; const char *session_token_ro; - struct tmate_encoder client_encoder; - struct tmate_decoder client_decoder; + struct tmate_encoder daemon_encoder; + struct tmate_decoder daemon_decoder; int client_protocol_version; struct event ev_notify_timer;