diff options
Diffstat (limited to 'src/client.c')
-rw-r--r-- | src/client.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/client.c b/src/client.c index 5478547..8627c28 100644 --- a/src/client.c +++ b/src/client.c @@ -38,6 +38,7 @@ typedef struct gchar *account_path; gchar *contact_id; gchar *login; + gchar **ssh_opts; GList *accounts; guint n_readying_connections; @@ -176,7 +177,7 @@ create_tube_cb (GObject *source_object, ssh_socket_connected_cb, context); args = _client_create_exec_args (socket, context->contact_id, - context->login); + context->login, context->ssh_opts); /* spawn ssh client */ if (g_spawn_async (NULL, args, NULL, @@ -539,6 +540,7 @@ client_context_clear (ClientContext *context) g_free (context->account_path); g_free (context->contact_id); g_free (context->login); + g_strfreev (context->ssh_opts); g_list_foreach (context->accounts, (GFunc) g_object_unref, NULL); g_list_free (context->accounts); @@ -569,12 +571,16 @@ main (gint argc, gchar *argv[]) 0, G_OPTION_ARG_STRING, &context.login, "Specifies the user to log in as on the remote machine", NULL }, + { G_OPTION_REMAINING, 0, + 0, G_OPTION_ARG_STRING_ARRAY, &context.ssh_opts, + NULL, + NULL }, { NULL } }; g_type_init (); - optcontext = g_option_context_new ("- ssh-contact"); + optcontext = g_option_context_new ("-- [OPTIONS FOR SSH CLIENT]"); g_option_context_add_main_entries (optcontext, options, NULL); if (!g_option_context_parse (optcontext, &argc, &argv, &error)) { |