Fossil

Diff
Login

Differences From Artifact [86d1edfe7d]:

To Artifact [81e5a67dc2]:


127
128
129
130
131
132
133
134
135
136
137




138
139

140
141
142
143
144
145
146
147
148
149
150
151
152
153

154
155

156
157
158
159
160
161
162
127
128
129
130
131
132
133




134
135
136
137
138

139
140
141
142
143
144
145
146
147
148
149
150
151
152

153
154

155
156
157
158
159
160
161
162







-
-
-
-
+
+
+
+

-
+













-
+

-
+







    zHost = mprintf("%s@%s", g.urlUser, g.urlName);
#ifdef __MINGW32__
    /* Only win32 (and specifically PLINK.EXE) support the -pw option */
    if( g.urlPasswd && g.urlPasswd[0] ){
      Blob pw;
      blob_zero(&pw);
      if( g.urlPasswd[0]=='*' ){
	char *zPrompt;
	zPrompt = mprintf("Password for [%s]: ", zHost);
	prompt_for_password(zPrompt, &pw, 0);
	free(zPrompt);
        char *zPrompt;
        zPrompt = mprintf("Password for [%s]: ", zHost);
        prompt_for_password(zPrompt, &pw, 0);
        free(zPrompt);
      }else{
	blob_init(&pw, g.urlPasswd, -1);
        blob_init(&pw, g.urlPasswd, -1);
      }
      blob_append(&zCmd, " -pw ", -1);
      shell_escape(&zCmd, blob_str(&pw));
      blob_reset(&pw);
      fossil_print(" -pw ********");  /* Do not show the password text */
    }
#endif
  }else{
    zHost = mprintf("%s", g.urlName);
  }
  n = blob_size(&zCmd);
  blob_append(&zCmd, " ", 1);
  shell_escape(&zCmd, zHost);
  if( g.fSshFossilCmd && g.fSshFossilCmd[0] ){
  if( g.zSshFossilCmd && g.zSshFossilCmd[0] ){
    blob_append(&zCmd, " ", 1);
    shell_escape(&zCmd, mprintf("%s", g.fSshFossilCmd));
    shell_escape(&zCmd, mprintf("%s", g.zSshFossilCmd));
  }else{
    blob_append(&zCmd, " fossil", 7);
  }
  blob_append(&zCmd, " http", 5);
  if( g.urlPath && g.urlPath[0] ){
    blob_append(&zCmd, " ", 1);
    shell_escape(&zCmd, mprintf("%s", g.urlPath));
465
466
467
468
469
470
471



472

473


474
475
476
477
478
479
480
481
482



483
484

485
486
487
488
489
490
465
466
467
468
469
470
471
472
473
474
475
476

477
478
479
480
481
482
483
484
485
486
487
488
489
490
491

492
493
494
495
496
497
498







+
+
+

+
-
+
+









+
+
+

-
+






    }
    i++;
  }
  if( g.fSshTrace ) printf("Got line: [%s]\n", &transport.pBuf[iStart]);
  return &transport.pBuf[iStart];
}

/*
** Global transport shutdown
*/
void transport_global_shutdown(void){
  if( g.urlIsSsh ){
  transport_ssh_close();
    transport_ssh_close();
  }
  if( g.urlIsHttps ){
    #ifdef FOSSIL_ENABLE_SSL
    ssl_global_shutdown();
    #endif
  }else{
    socket_global_shutdown();
  }
}

/*
** Close SSH transport.
*/
void transport_ssh_close(void){
  if( g.urlIsSsh && sshPid ){
  if( sshPid ){
    /*printf("Closing SSH tunnel: ");*/
    fflush(stdout);
    pclose2(sshIn, sshOut, sshPid);
    sshPid = 0;
  }
}