| | @@ -129,16 +129,16 @@ |
| 129 | 129 | /* Only win32 (and specifically PLINK.EXE) support the -pw option */ |
| 130 | 130 | if( g.urlPasswd && g.urlPasswd[0] ){ |
| 131 | 131 | Blob pw; |
| 132 | 132 | blob_zero(&pw); |
| 133 | 133 | if( g.urlPasswd[0]=='*' ){ |
| 134 | | - char *zPrompt; |
| 135 | | - zPrompt = mprintf("Password for [%s]: ", zHost); |
| 136 | | - prompt_for_password(zPrompt, &pw, 0); |
| 137 | | - free(zPrompt); |
| 134 | + char *zPrompt; |
| 135 | + zPrompt = mprintf("Password for [%s]: ", zHost); |
| 136 | + prompt_for_password(zPrompt, &pw, 0); |
| 137 | + free(zPrompt); |
| 138 | 138 | }else{ |
| 139 | | - blob_init(&pw, g.urlPasswd, -1); |
| 139 | + blob_init(&pw, g.urlPasswd, -1); |
| 140 | 140 | } |
| 141 | 141 | blob_append(&zCmd, " -pw ", -1); |
| 142 | 142 | shell_escape(&zCmd, blob_str(&pw)); |
| 143 | 143 | blob_reset(&pw); |
| 144 | 144 | fossil_print(" -pw ********"); /* Do not show the password text */ |
| | @@ -148,13 +148,13 @@ |
| 148 | 148 | zHost = mprintf("%s", g.urlName); |
| 149 | 149 | } |
| 150 | 150 | n = blob_size(&zCmd); |
| 151 | 151 | blob_append(&zCmd, " ", 1); |
| 152 | 152 | shell_escape(&zCmd, zHost); |
| 153 | | - if( g.fSshFossilCmd && g.fSshFossilCmd[0] ){ |
| 153 | + if( g.zSshFossilCmd && g.zSshFossilCmd[0] ){ |
| 154 | 154 | blob_append(&zCmd, " ", 1); |
| 155 | | - shell_escape(&zCmd, mprintf("%s", g.fSshFossilCmd)); |
| 155 | + shell_escape(&zCmd, mprintf("%s", g.zSshFossilCmd)); |
| 156 | 156 | }else{ |
| 157 | 157 | blob_append(&zCmd, " fossil", 7); |
| 158 | 158 | } |
| 159 | 159 | blob_append(&zCmd, " http", 5); |
| 160 | 160 | if( g.urlPath && g.urlPath[0] ){ |
| | @@ -467,24 +467,32 @@ |
| 467 | 467 | } |
| 468 | 468 | if( g.fSshTrace ) printf("Got line: [%s]\n", &transport.pBuf[iStart]); |
| 469 | 469 | return &transport.pBuf[iStart]; |
| 470 | 470 | } |
| 471 | 471 | |
| 472 | +/* |
| 473 | +** Global transport shutdown |
| 474 | +*/ |
| 472 | 475 | void transport_global_shutdown(void){ |
| 473 | | - transport_ssh_close(); |
| 476 | + if( g.urlIsSsh ){ |
| 477 | + transport_ssh_close(); |
| 478 | + } |
| 474 | 479 | if( g.urlIsHttps ){ |
| 475 | 480 | #ifdef FOSSIL_ENABLE_SSL |
| 476 | 481 | ssl_global_shutdown(); |
| 477 | 482 | #endif |
| 478 | 483 | }else{ |
| 479 | 484 | socket_global_shutdown(); |
| 480 | 485 | } |
| 481 | 486 | } |
| 482 | 487 | |
| 488 | +/* |
| 489 | +** Close SSH transport. |
| 490 | +*/ |
| 483 | 491 | void transport_ssh_close(void){ |
| 484 | | - if( g.urlIsSsh && sshPid ){ |
| 492 | + if( sshPid ){ |
| 485 | 493 | /*printf("Closing SSH tunnel: ");*/ |
| 486 | 494 | fflush(stdout); |
| 487 | 495 | pclose2(sshIn, sshOut, sshPid); |
| 488 | 496 | sshPid = 0; |
| 489 | 497 | } |
| 490 | 498 | } |
| 491 | 499 | |