Overview
Artifact ID: | 514070952ad441b9ba992a6862eff71e89cfacd8 |
---|---|
Ticket: | 40d9dbd3ade39488a6786cd4588c0915974a9961
ssh scheme incompatible with tcsh |
User & Date: | anonymous 2011-03-28 19:29:18 |
Changes
- 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>
- resolution changed to: "Open"
- status changed to: "Open"