Ticket Change Details
Not logged in
Overview

Artifact ID: 514070952ad441b9ba992a6862eff71e89cfacd8
Ticket: 40d9dbd3ade39488a6786cd4588c0915974a9961
ssh scheme incompatible with tcsh
User & Date: anonymous 2011-03-28 19:29:18
Changes

  1. Appended to comment:
    
    
    <hr /><i>anonymous claiming to be seanc added on 2011-03-28 19:29:18 UTC:</i><br />
    I disagree that this is an external bug.
    
    fossil could/should execute the /bin/sh command as its command to execute on the remote side because fossil is requiring a particular shell, in this case, sh.
    
    Or, if that's not possible, have it fire off an 'exec bin/sh' as its first command upon establishing an ssh connection. Something like (one of the two options should work - dry coded, unfortunately):
    
    <verbatim>Index: src/http_transport.c
    ===================================================================
    --- src/http_transport.c
    +++ src/http_transport.c
    @@ -147,17 +147,23 @@
         }else{
           zHost = mprintf("%s", g.urlName);
         }
         blob_append(&zCmd, " ", 1);
         shell_escape(&zCmd, zHost);
    +    blob_append(&zCmd, " ", 1);
    +    shell_escape(&zCmd, "/bin/sh");
         printf(" %s\n", zHost);  /* Show the conclusion of the SSH command */
         free(zHost);
         popen2(blob_str(&zCmd), &sshIn, &sshOut, &sshPid);
         if( sshPid==0 ){
           fossil_fatal("cannot start ssh tunnel using [%b]", &zCmd);
         }
         blob_reset(&zCmd);
    +
    +    /* Start sh(1) */
    +    fprintf(sshOut, "exec /bin/sh\n");
    +    fflush(sshOut);
     
         /* Send an "echo" command to the other side to make sure that the
         ** connection is up and working.
         */
         fprintf(sshOut, "echo test\n");
    
    </verbatim>
    
  2. resolution changed to: "Open"
  3. status changed to: "Open"