5d3ef9ba0c
PS1 is not supposed to be an environment variable (i.e. will not be listed in `printenv` but only in `set`). Its value should also be shell-specific. With this commit we can stop exporting a static PS1 as env var on the java side. The prompt would now indicate whether the current user is root.
50 lines
1.9 KiB
Diff
50 lines
1.9 KiB
Diff
diff --git a/session.c.orig b/session.c
|
|
index 58826db..890e452 100644
|
|
--- a/session.c.orig
|
|
+++ b/session.c
|
|
@@ -199,7 +199,7 @@ auth_input_request_forwarding(struct ssh *ssh, struct passwd * pw)
|
|
temporarily_use_uid(pw);
|
|
|
|
/* Allocate a buffer for the socket name, and format the name. */
|
|
- auth_sock_dir = xstrdup("/tmp/ssh-XXXXXXXXXX");
|
|
+ auth_sock_dir = xstrdup("@TERMUX_PREFIX@/tmp/ssh-XXXXXXXXXX");
|
|
|
|
/* Create private directory for socket */
|
|
if (mkdtemp(auth_sock_dir) == NULL) {
|
|
@@ -802,7 +802,7 @@ do_motd(void)
|
|
f = fopen(login_getcapstr(lc, "welcome", "/etc/motd",
|
|
"/etc/motd"), "r");
|
|
#else
|
|
- f = fopen("/etc/motd", "r");
|
|
+ f = fopen("@TERMUX_PREFIX@/etc/motd", "r");
|
|
#endif
|
|
if (f) {
|
|
while (fgets(buf, sizeof(buf), f))
|
|
@@ -1044,8 +1044,10 @@ do_setup_env(struct ssh *ssh, Session *s, const char *shell)
|
|
# endif /* HAVE_CYGWIN */
|
|
#endif /* HAVE_LOGIN_CAP */
|
|
|
|
+#ifdef _PATH_MAILDIR
|
|
snprintf(buf, sizeof buf, "%.200s/%.50s", _PATH_MAILDIR, pw->pw_name);
|
|
child_set_env(&env, &envsize, "MAIL", buf);
|
|
+#endif
|
|
|
|
/* Normal systems set SHELL by default. */
|
|
child_set_env(&env, &envsize, "SHELL", shell);
|
|
@@ -1053,6 +1055,15 @@ do_setup_env(struct ssh *ssh, Session *s, const char *shell)
|
|
if (getenv("TZ"))
|
|
child_set_env(&env, &envsize, "TZ", getenv("TZ"));
|
|
|
|
+#ifdef __ANDROID__
|
|
+ char const* envs_to_keep[] = {"LD_LIBRARY_PATH", "PATH", "ANDROID_ROOT", "ANDROID_DATA", "EXTERNAL_STORAGE", "LANG", "PREFIX", "TMPDIR"};
|
|
+ for (i = 0; i < (sizeof(envs_to_keep) / sizeof(envs_to_keep[0])); i++) {
|
|
+ char const* env_to_keep_name = envs_to_keep[i];
|
|
+ char const* env_to_keep_value = getenv(env_to_keep_name);
|
|
+ if (env_to_keep_value) child_set_env(&env, &envsize, env_to_keep_name, env_to_keep_value);
|
|
+ }
|
|
+#endif
|
|
+
|
|
/* Set custom environment options from pubkey authentication. */
|
|
if (options.permit_user_env) {
|
|
for (n = 0 ; n < auth_opts->nenv; n++) {
|