Print this page
First stab at the full Joyent wad (still needs work!!!)
        
@@ -1,10 +1,10 @@
-From e47c600f563b6acdcfc5c5fb5751d85335f2225a Mon Sep 17 00:00:00 2001
+From 71b520b3fdbd211fc92f455903a3c218250f44b8 Mon Sep 17 00:00:00 2001
 From: Alex Wilson <alex.wilson@joyent.com>
 Date: Fri, 4 Sep 2015 11:04:30 -0700
-Subject: [PATCH] Accept LANG and LC_* environment variables from clients by
- default
+Subject: [PATCH 32/36] Accept LANG and LC_* environment variables from clients
+ by default
 
 This preserves most of the old SunSSH locale negotiation
 behaviour (at least the parts that are most commonly used).
 ---
  servconf.c    | 27 +++++++++++++++++++++++++--
@@ -76,14 +76,14 @@
 +       if (src->num_n != 0 && src->num_n != -1) { \
                 for (dst->num_n = 0; dst->num_n < src->num_n; dst->num_n++) \
                         dst->n[dst->num_n] = xstrdup(src->n[dst->num_n]); \
         } \
 diff --git a/session.c b/session.c
-index 5a64715..57f179d 100644
+index ab0ac1c..88cd9f0 100644
 --- a/session.c
 +++ b/session.c
-@@ -1010,6 +1010,18 @@ child_set_env(char ***envp, u_int *envsizep, const char *name,
+@@ -1019,6 +1019,18 @@ child_set_env(char ***envp, u_int *envsizep, const char *name,
  }
  
  /*
 + * If the given environment variable is set in the daemon's environment,
 + * push it into the new child as well. If it is unset, do nothing.
@@ -98,11 +98,11 @@
 +
 +/*
   * Reads environment variables from the given file and adds/overrides them
   * into the environment.  If the file does not exist, this does nothing.
   * Otherwise, it must consist of empty lines, comments (line starts with '#')
-@@ -1171,6 +1183,16 @@ do_setup_env(Session *s, const char *shell)
+@@ -1180,6 +1192,16 @@ do_setup_env(Session *s, const char *shell)
         ssh_gssapi_do_child(&env, &envsize);
  #endif
  
 +       /* Default to the system-wide locale/language settings. */
 +       child_inherit_env(&env, &envsize, "LANG");
@@ -115,21 +115,21 @@
 +       child_inherit_env(&env, &envsize, "LC_MESSAGES");
 +
         if (!options.use_login) {
                 /* Set basic environment. */
                 for (i = 0; i < s->num_env; i++)
-@@ -1215,8 +1237,8 @@ do_setup_env(Session *s, const char *shell)
+@@ -1224,8 +1246,8 @@ do_setup_env(Session *s, const char *shell)
                 /* Normal systems set SHELL by default. */
                 child_set_env(&env, &envsize, "SHELL", shell);
         }
 -       if (getenv("TZ"))
 -               child_set_env(&env, &envsize, "TZ", getenv("TZ"));
 +
 +       child_inherit_env(&env, &envsize, "TZ");
  
-        /* Set custom environment options from RSA authentication. */
-        if (!options.use_login) {
+ #ifdef PER_SESSION_XAUTHFILE
+         if (s->auth_file != NULL)
 diff --git a/sshd_config b/sshd_config
 index 0048f98..bbdc6ae 100644
 --- a/sshd_config
 +++ b/sshd_config
 @@ -38,6 +38,10 @@ HostKey /var/ssh/ssh_host_ed25519_key
@@ -166,7 +166,7 @@
 +to specify that no environment variables should be passed.
  .It Cm AddressFamily
  Specifies which address family should be used by
  .Xr sshd 1M .
 -- 
-2.3.2 (Apple Git-55)
+2.5.4 (Apple Git-61)