[BACK]Return to session.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/session.c between version 1.18 and 1.19

version 1.18, 2000/06/17 22:52:33 version 1.19, 2000/06/18 04:05:02
Line 26 
Line 26 
 #include "bufaux.h"  #include "bufaux.h"
 #include "ssh2.h"  #include "ssh2.h"
 #include "auth.h"  #include "auth.h"
   #include "auth-options.h"
   
 /* types */  /* types */
   
Line 79 
Line 80 
 #define MAX_SESSIONS 10  #define MAX_SESSIONS 10
 Session sessions[MAX_SESSIONS];  Session sessions[MAX_SESSIONS];
   
 /* Flags set in auth-rsa from authorized_keys flags.  These are set in auth-rsa.c. */  
 int no_port_forwarding_flag = 0;  
 int no_agent_forwarding_flag = 0;  
 int no_x11_forwarding_flag = 0;  
 int no_pty_flag = 0;  
   
 /* RSA authentication "command=" option. */  
 char *forced_command = NULL;  
   
 /* RSA authentication "environment=" options. */  
 struct envstring *custom_environment = NULL;  
   
 /*  /*
  * Remove local Xauthority file.   * Remove local Xauthority file.
  */   */
Line 1174 
Line 1163 
         unsigned int len;          unsigned int len;
         char *term_modes;       /* encoded terminal modes */          char *term_modes;       /* encoded terminal modes */
   
           if (no_pty_flag)
                   return 0;
         if (s->ttyfd != -1)          if (s->ttyfd != -1)
                 return 0;                  return 0;
         s->term = packet_get_string(&len);          s->term = packet_get_string(&len);
Line 1244 
Line 1235 
 int  int
 session_x11_req(Session *s)  session_x11_req(Session *s)
 {  {
           if (!no_port_forwarding_flag) {
                   debug("X11 forwarding disabled in user configuration file.");
                   return 0;
           }
         if (!options.x11_forwarding) {          if (!options.x11_forwarding) {
                 debug("X11 forwarding disabled in server configuration file.");                  debug("X11 forwarding disabled in server configuration file.");
                 return 0;                  return 0;
Line 1290 
Line 1285 
         return 1;          return 1;
 }  }
   
   int
   session_shell_req(Session *s)
   {
           /* if forced_command == NULL, the shell is execed */
           char *shell = forced_command;
           packet_done();
           s->extended = 1;
           if (s->ttyfd == -1)
                   do_exec_no_pty(s, shell, s->pw);
           else
                   do_exec_pty(s, shell, s->pw);
           return 1;
   }
   
   int
   session_exec_req(Session *s)
   {
           char *command = packet_get_string(&len);
           packet_done();
           if (forced_command) {
                   xfree(command);
                   command = forced_command;
                   debug("Forced command '%.500s'", forced_command);
           }
           s->extended = 1;
           if (s->ttyfd == -1)
                   do_exec_no_pty(s, command, s->pw);
           else
                   do_exec_pty(s, command, s->pw);
           if (forced_command == NULL)
                   xfree(command);
           return 1;
   }
   
 void  void
 session_input_channel_req(int id, void *arg)  session_input_channel_req(int id, void *arg)
 {  {
Line 1319 
Line 1348 
          */           */
         if (c->type == SSH_CHANNEL_LARVAL) {          if (c->type == SSH_CHANNEL_LARVAL) {
                 if (strcmp(rtype, "shell") == 0) {                  if (strcmp(rtype, "shell") == 0) {
                         packet_done();                          success = session_shell_req(s);
                         s->extended = 1;  
                         if (s->ttyfd == -1)  
                                 do_exec_no_pty(s, NULL, s->pw);  
                         else  
                                 do_exec_pty(s, NULL, s->pw);  
                         success = 1;  
                 } else if (strcmp(rtype, "exec") == 0) {                  } else if (strcmp(rtype, "exec") == 0) {
                         char *command = packet_get_string(&len);                          success = session_exec_req(s);
                         packet_done();  
                         s->extended = 1;  
                         if (s->ttyfd == -1)  
                                 do_exec_no_pty(s, command, s->pw);  
                         else  
                                 do_exec_pty(s, command, s->pw);  
                         xfree(command);  
                         success = 1;  
                 } else if (strcmp(rtype, "pty-req") == 0) {                  } else if (strcmp(rtype, "pty-req") == 0) {
                         success =  session_pty_req(s);                          success =  session_pty_req(s);
                 } else if (strcmp(rtype, "x11-req") == 0) {                  } else if (strcmp(rtype, "x11-req") == 0) {

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.19