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;
}
}