Posted to tcl by evilotto at Thu Apr 21 21:13:40 GMT 2011view raw
- Index: src/branch.c
- ===================================================================
- --- src/branch.c
- +++ src/branch.c
- @@ -52,10 +52,11 @@
- if( g.argc<5 ){
- usage("new BRANCH-NAME CHECK-IN ?-bgcolor COLOR?");
- }
- db_find_and_open_repository(0, 0);
- noSign = db_get_int("omitsign", 0)|noSign;
- + if( db_get_boolean("clearsign", 0)==0 ){ noSign = 1; }
- /* fossil branch new name */
- zBranch = g.argv[3];
- if( zBranch==0 || zBranch[0]==0 ){
- fossil_panic("branch name cannot be empty");
- Index: src/http_ssl.c
- ===================================================================
- --- src/http_ssl.c
- +++ src/http_ssl.c
- @@ -130,10 +130,11 @@
- */
- int ssl_open(void){
- X509 *cert;
- int hasSavedCertificate = 0;
- char *connStr ;
- + BIO *sBio; /* socket BIO */
- ssl_global_init();
- /* Get certificate for current server from global config and
- * (if we have it in config) add it to certificate store.
- */
- @@ -142,28 +143,48 @@
- X509_STORE_add_cert(SSL_CTX_get_cert_store(sslCtx), cert);
- X509_free(cert);
- hasSavedCertificate = 1;
- }
- - iBio = BIO_new_ssl_connect(sslCtx);
- - BIO_get_ssl(iBio, &ssl);
- - SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY);
- - if( iBio==NULL ) {
- - ssl_set_errmsg("SSL: cannot open SSL (%s)",
- - ERR_reason_error_string(ERR_get_error()));
- - return 1;
- - }
- -
- connStr = mprintf("%s:%d", g.urlName, g.urlPort);
- - BIO_set_conn_hostname(iBio, connStr);
- + sBio=BIO_new_connect(connStr);
- free(connStr);
- -
- - if( BIO_do_connect(iBio)<=0 ){
- +
- + if( BIO_do_connect(sBio)<=0 ){
- ssl_set_errmsg("SSL: cannot connect to host %s:%d (%s)",
- g.urlName, g.urlPort, ERR_reason_error_string(ERR_get_error()));
- ssl_close();
- return 1;
- + }
- +
- + if (g.useProxy){
- + char ibuf[1024];
- + char c;
- + int s=0;
- + connStr = mprintf("CONNECT %s:443 HTTP/1.0\r\n\r\n", g.urlHostname);
- + BIO_write(sBio,connStr,strlen(connStr));
- + free( connStr);
- + while (s < 4) {
- + BIO_read(sBio,&c,1);
- + fprintf(stderr,"%c",c);
- + switch (s) {
- + case 0: case 2: if (c == '\r') s++; else s=0; break;
- + case 1: case 3: if (c == '\n') s++; else s=0; break;
- + }
- + }
- + g.urlPath=g.proxyUrlPath;
- + }
- +
- + iBio=BIO_new_ssl(sslCtx,1);
- + BIO_set_conn_hostname(iBio,g.urlHostname);
- + BIO_get_ssl(iBio,&ssl);
- + SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY);
- + BIO_push(iBio,sBio);
- + if( iBio==NULL ) {
- + ssl_set_errmsg("SSL: cannot open SSL (%s)",
- + ERR_reason_error_string(ERR_get_error()));
- + return 1;
- }
- if( BIO_do_handshake(iBio)<=0 ) {
- ssl_set_errmsg("Error establishing SSL connection %s:%d (%s)",
- g.urlName, g.urlPort, ERR_reason_error_string(ERR_get_error()));
- Index: src/main.c
- ===================================================================
- --- src/main.c
- +++ src/main.c
- @@ -102,10 +102,12 @@
- char *urlPasswd; /* Password for http: */
- char *urlCanonical; /* Canonical representation of the URL */
- char *urlProxyAuth; /* Proxy-Authorizer: string */
- char *urlFossil; /* The path of the ?fossil=path suffix on ssh: */
- int dontKeepUrl; /* Do not persist the URL */
- + int useProxy;
- + char *proxyUrlPath;
- const char *zLogin; /* Login name. "" if not logged in. */
- int useLocalauth; /* No login required if from 127.0.0.1 */
- int noPswd; /* Logged in without password (on 127.0.0.1) */
- int userUid; /* Integer user id */
- Index: src/url.c
- ===================================================================
- --- src/url.c
- +++ src/url.c
- @@ -65,10 +65,11 @@
- int iStart;
- char *zLogin;
- char *zExe;
- g.urlIsFile = 0;
- + g.useProxy=0;
- if( zUrl[4]=='s' ){
- g.urlIsHttps = 1;
- g.urlProtocol = "https";
- g.urlDfltPort = 443;
- iStart = 8;
- @@ -273,10 +274,12 @@
- if( zProxy && zProxy[0] && !is_false(zProxy) ){
- char *zOriginalUrl = g.urlCanonical;
- char *zOriginalHost = g.urlHostname;
- char *zOriginalUser = g.urlUser;
- char *zOriginalPasswd = g.urlPasswd;
- + char *zOriginalPath = g.urlPath;
- + int zOriginalUrlIsHttps = g.urlIsHttps;
- g.urlUser = 0;
- g.urlPasswd = "";
- url_parse(zProxy);
- if( zMsg ) printf("%s%s\n", zMsg, g.urlCanonical);
- g.urlPath = zOriginalUrl;
- @@ -287,10 +290,13 @@
- g.urlProxyAuth = mprintf("Basic %z", zCredentials2);
- free(zCredentials1);
- }
- g.urlUser = zOriginalUser;
- g.urlPasswd = zOriginalPasswd;
- + g.urlIsHttps = zOriginalUrlIsHttps;
- + g.useProxy = 1;
- + g.proxyUrlPath=zOriginalPath;
- }
- }
- #if INTERFACE
- /*