You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by vn...@apache.org on 2018/11/10 01:43:11 UTC

[1/3] guacamole-server git commit: GUACAMOLE-649: Add support for setting LANG environment variable via SSH.

Repository: guacamole-server
Updated Branches:
  refs/heads/master 6f4919464 -> e132c7934


GUACAMOLE-649: Add support for setting LANG environment variable via SSH.


Project: http://git-wip-us.apache.org/repos/asf/guacamole-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-server/commit/45468297
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-server/tree/45468297
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-server/diff/45468297

Branch: refs/heads/master
Commit: 454682979e057b88a1f75fc60c47af4ba59b73f0
Parents: 6f49194
Author: Michael Jumper <mj...@apache.org>
Authored: Sun Oct 21 23:30:53 2018 -0700
Committer: Michael Jumper <mj...@apache.org>
Committed: Sun Nov 4 21:20:47 2018 -0800

----------------------------------------------------------------------
 src/protocols/ssh/settings.c | 17 +++++++++++++++++
 src/protocols/ssh/settings.h |  6 ++++++
 src/protocols/ssh/ssh.c      | 11 +++++++++++
 3 files changed, 34 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/guacamole-server/blob/45468297/src/protocols/ssh/settings.c
----------------------------------------------------------------------
diff --git a/src/protocols/ssh/settings.c b/src/protocols/ssh/settings.c
index e0be6cf..82f7eb2 100644
--- a/src/protocols/ssh/settings.c
+++ b/src/protocols/ssh/settings.c
@@ -60,6 +60,7 @@ const char* GUAC_SSH_CLIENT_ARGS[] = {
     "backspace",
     "terminal-type",
     "scrollback",
+    "locale",
     NULL
 };
 
@@ -238,6 +239,14 @@ enum SSH_ARGS_IDX {
      */
     IDX_SCROLLBACK,
 
+    /**
+     * The locale that should be forwarded to the remote system via the LANG
+     * environment variable. By default, no locale is forwarded. This setting
+     * will only have an effect if the SSH server allows the LANG environment
+     * variable to be set.
+     */
+    IDX_LOCALE,
+
     SSH_ARGS_COUNT
 };
 
@@ -396,6 +405,11 @@ guac_ssh_settings* guac_ssh_parse_args(guac_user* user,
         guac_user_parse_args_string(user, GUAC_SSH_CLIENT_ARGS, argv,
                 IDX_TERMINAL_TYPE, "linux");
 
+    /* Read locale */
+    settings->locale =
+        guac_user_parse_args_string(user, GUAC_SSH_CLIENT_ARGS, argv,
+                IDX_LOCALE, NULL);
+
     /* Parsing was successful */
     return settings;
 
@@ -435,6 +449,9 @@ void guac_ssh_settings_free(guac_ssh_settings* settings) {
     /* Free terminal emulator type. */
     free(settings->terminal_type);
 
+    /* Free locale */
+    free(settings->locale);
+
     /* Free overall structure */
     free(settings);
 

http://git-wip-us.apache.org/repos/asf/guacamole-server/blob/45468297/src/protocols/ssh/settings.h
----------------------------------------------------------------------
diff --git a/src/protocols/ssh/settings.h b/src/protocols/ssh/settings.h
index 81dcd69..03abd91 100644
--- a/src/protocols/ssh/settings.h
+++ b/src/protocols/ssh/settings.h
@@ -248,6 +248,12 @@ typedef struct guac_ssh_settings {
      */
     char* terminal_type;
 
+    /**
+     * The locale that should be forwarded to the remote system via the LANG
+     * environment variable.
+     */
+    char* locale;
+
 } guac_ssh_settings;
 
 /**

http://git-wip-us.apache.org/repos/asf/guacamole-server/blob/45468297/src/protocols/ssh/ssh.c
----------------------------------------------------------------------
diff --git a/src/protocols/ssh/ssh.c b/src/protocols/ssh/ssh.c
index cddb2fe..fa2aaf6 100644
--- a/src/protocols/ssh/ssh.c
+++ b/src/protocols/ssh/ssh.c
@@ -320,6 +320,17 @@ void* ssh_client_thread(void* data) {
         return NULL;
     }
 
+    /* Forward specified locale */
+    if (settings->locale != NULL) {
+        if (libssh2_channel_setenv(ssh_client->term_channel, "LANG",
+                    settings->locale)) {
+            guac_client_abort(client, GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR,
+                    "Unable to forward locale: SSH server refused to set "
+                    "\"LANG\" environment variable.");
+            return NULL;
+        }
+    }
+
     /* If a command is specified, run that instead of a shell */
     if (settings->command != NULL) {
         if (libssh2_channel_exec(ssh_client->term_channel, settings->command)) {


[3/3] guacamole-server git commit: GUACAMOLE-649: Merge add support for setting LANG environment variable via SSH.

Posted by vn...@apache.org.
GUACAMOLE-649: Merge add support for setting LANG environment variable via SSH.


Project: http://git-wip-us.apache.org/repos/asf/guacamole-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-server/commit/e132c793
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-server/tree/e132c793
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-server/diff/e132c793

Branch: refs/heads/master
Commit: e132c793480dfc5a82f9d0ab62464b5d201de0d8
Parents: 6f49194 edbdd08
Author: Nick Couchman <vn...@apache.org>
Authored: Fri Nov 9 20:40:29 2018 -0500
Committer: Nick Couchman <vn...@apache.org>
Committed: Fri Nov 9 20:40:29 2018 -0500

----------------------------------------------------------------------
 src/protocols/ssh/settings.c | 17 +++++++++++++++++
 src/protocols/ssh/settings.h |  6 ++++++
 src/protocols/ssh/ssh.c      | 10 ++++++++++
 3 files changed, 33 insertions(+)
----------------------------------------------------------------------



[2/3] guacamole-server git commit: GUACAMOLE-649: Allow SSH connection to continue despite failure to set LANG environment variable.

Posted by vn...@apache.org.
GUACAMOLE-649: Allow SSH connection to continue despite failure to set LANG environment variable.


Project: http://git-wip-us.apache.org/repos/asf/guacamole-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/guacamole-server/commit/edbdd084
Tree: http://git-wip-us.apache.org/repos/asf/guacamole-server/tree/edbdd084
Diff: http://git-wip-us.apache.org/repos/asf/guacamole-server/diff/edbdd084

Branch: refs/heads/master
Commit: edbdd08476df063297af0f8977e2df59c7c4fd02
Parents: 4546829
Author: Michael Jumper <mj...@apache.org>
Authored: Thu Nov 8 19:29:10 2018 -0800
Committer: Michael Jumper <mj...@apache.org>
Committed: Thu Nov 8 19:29:32 2018 -0800

----------------------------------------------------------------------
 src/protocols/ssh/ssh.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/guacamole-server/blob/edbdd084/src/protocols/ssh/ssh.c
----------------------------------------------------------------------
diff --git a/src/protocols/ssh/ssh.c b/src/protocols/ssh/ssh.c
index fa2aaf6..80b84de 100644
--- a/src/protocols/ssh/ssh.c
+++ b/src/protocols/ssh/ssh.c
@@ -324,10 +324,9 @@ void* ssh_client_thread(void* data) {
     if (settings->locale != NULL) {
         if (libssh2_channel_setenv(ssh_client->term_channel, "LANG",
                     settings->locale)) {
-            guac_client_abort(client, GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR,
+            guac_client_log(client, GUAC_LOG_WARNING,
                     "Unable to forward locale: SSH server refused to set "
                     "\"LANG\" environment variable.");
-            return NULL;
         }
     }