comparison svr-chansession.c @ 1499:2d450c1056e3

options: Complete the transition to numeric toggles (`#if') For the sake of review, this commit alters only the code; the affiliated comments within the source files also need to be updated, but doing so now would obscure the operational changes that have been made here. * All on/off options have been switched to the numeric `#if' variant; that is the only way to make this `default_options.h.in' thing work in a reasonable manner. * There is now some very minor compile-time checking of the user's choice of options. * NO_FAST_EXPTMOD doesn't seem to be used, so it has been removed. * ENABLE_USER_ALGO_LIST was supposed to be renamed DROPBEAR_USER_ALGO_LIST, and this commit completes that work. * DROPBEAR_FUZZ seems to be a relatively new, as-yet undocumented option, which was added by the following commit: commit 6e0b539e9ca0b5628c6c5a3d118ad6a2e79e8039 Author: Matt Johnston <[email protected]> Date: Tue May 23 22:29:21 2017 +0800 split out checkpubkey_line() separately It has now been added to `sysoptions.h' and defined as `0' by default. * The configuration option `DROPBEAR_PASSWORD_ENV' is no longer listed in `default_options.h.in'; it is no longer meant to be set by the user, and is instead left to be defined in `sysoptions.h' (where it was already being defined) as merely the name of the environment variable in question: DROPBEAR_PASSWORD To enable or disable use of that environment variable, the user must now toggle `DROPBEAR_USE_DROPBEAR_PASSWORD'. * The sFTP support is now toggled by setting `DROPBEAR_SFTPSERVER', and the path of the sFTP server program is set independently through the usual SFTPSERVER_PATH.
author Michael Witten <mfwitten@gmail.com>
date Thu, 20 Jul 2017 19:38:26 +0000
parents da3bed08607b
children 47f36d8565cf
comparison
equal deleted inserted replaced
1497:bf9c06b8dad9 1499:2d450c1056e3
661 /* TODO - send error - too long ? */ 661 /* TODO - send error - too long ? */
662 return DROPBEAR_FAILURE; 662 return DROPBEAR_FAILURE;
663 } 663 }
664 } 664 }
665 if (issubsys) { 665 if (issubsys) {
666 #ifdef SFTPSERVER_PATH 666 #if DROPBEAR_SFTPSERVER
667 if ((cmdlen == 4) && strncmp(chansess->cmd, "sftp", 4) == 0) { 667 if ((cmdlen == 4) && strncmp(chansess->cmd, "sftp", 4) == 0) {
668 m_free(chansess->cmd); 668 m_free(chansess->cmd);
669 chansess->cmd = m_strdup(SFTPSERVER_PATH); 669 chansess->cmd = m_strdup(SFTPSERVER_PATH);
670 } else 670 } else
671 #endif 671 #endif
685 /* take public key option 'command' into account */ 685 /* take public key option 'command' into account */
686 svr_pubkey_set_forced_command(chansess); 686 svr_pubkey_set_forced_command(chansess);
687 } 687 }
688 688
689 689
690 #ifdef LOG_COMMANDS 690 #if LOG_COMMANDS
691 if (chansess->cmd) { 691 if (chansess->cmd) {
692 dropbear_log(LOG_INFO, "User %s executing '%s'", 692 dropbear_log(LOG_INFO, "User %s executing '%s'",
693 ses.authstate.pw_name, chansess->cmd); 693 ses.authstate.pw_name, chansess->cmd);
694 } else { 694 } else {
695 dropbear_log(LOG_INFO, "User %s executing login shell", 695 dropbear_log(LOG_INFO, "User %s executing login shell",
772 * Returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE */ 772 * Returns DROPBEAR_SUCCESS or DROPBEAR_FAILURE */
773 static int ptycommand(struct Channel *channel, struct ChanSess *chansess) { 773 static int ptycommand(struct Channel *channel, struct ChanSess *chansess) {
774 774
775 pid_t pid; 775 pid_t pid;
776 struct logininfo *li = NULL; 776 struct logininfo *li = NULL;
777 #ifdef DO_MOTD 777 #if DO_MOTD
778 buffer * motdbuf = NULL; 778 buffer * motdbuf = NULL;
779 int len; 779 int len;
780 struct stat sb; 780 struct stat sb;
781 char *hushpath = NULL; 781 char *hushpath = NULL;
782 #endif 782 #endif
824 * terminal used for stdout with the dup2 above */ 824 * terminal used for stdout with the dup2 above */
825 li = chansess_login_alloc(chansess); 825 li = chansess_login_alloc(chansess);
826 login_login(li); 826 login_login(li);
827 login_free_entry(li); 827 login_free_entry(li);
828 828
829 #ifdef DO_MOTD 829 #if DO_MOTD
830 if (svr_opts.domotd && !chansess->cmd) { 830 if (svr_opts.domotd && !chansess->cmd) {
831 /* don't show the motd if ~/.hushlogin exists */ 831 /* don't show the motd if ~/.hushlogin exists */
832 832
833 /* 12 == strlen("/.hushlogin\0") */ 833 /* 12 == strlen("/.hushlogin\0") */
834 len = strlen(ses.authstate.pw_dir) + 12; 834 len = strlen(ses.authstate.pw_dir) + 12;