@@ -109,22 +109,25 @@
109 109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --admin-user|-A USERNAME Make USERNAME the administrator
110 110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --once Don't save url.
111 111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --private Also clone private branches
112 112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --ssl-identity=filename Use the SSL identity if requested by the server
113 113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --ssh-command|-c 'command' Use this SSH command
114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** --httpauth|-B Add HTTP Basic Authorization to requests
114 115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
115 116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** See also: init
116 117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
117 118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void clone_cmd(void){
118 119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zPassword;
119 120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zDefaultUser; /* Optional name of the default user */
121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int fUseHttpAuth; /* Use HTTP auth if requested by user */
120 122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nErr = 0;
121 123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bPrivate = 0; /* Also clone private branches */
122 124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int urlFlags = URL_PROMPT_PW | URL_REMEMBER;
123 125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
124 126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( find_option("private",0,0)!=0 ) bPrivate = SYNC_PRIVATE;
125 127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( find_option("once",0,0)!=0) urlFlags &= ~URL_REMEMBER;
128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fUseHttpAuth = find_option("httpauth","B",0)!=0;
126 129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zDefaultUser = find_option("admin-user","A",1);
127 130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
clone_ssh_find_options();
128 131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
url_proxy_options();
129 132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.argc < 4 ){
130 133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
usage("?OPTIONS? FILE-OR-URL NEW-REPOSITORY");
@@ -159,10 +162,11 @@
159 162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_initial_setup(0, 0, zDefaultUser, 0);
160 163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
user_select();
161 164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_set("content-schema", CONTENT_SCHEMA, 0);
162 165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_set("aux-schema", AUX_SCHEMA, 0);
163 166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_set("rebuilt", get_version(), 0);
167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ remember_http_auth(fUseHttpAuth,g.argv[2]);
164 168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
url_remember();
165 169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.zSSLIdentity!=0 ){
166 170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the --ssl-identity option was specified, store it as a setting */
167 171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob fn;
168 172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_zero(&fn);
@@ -195,10 +199,23 @@
195 199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("project-id: %s\n", db_get("project-code", 0));
196 200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin);
197 201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("admin-user: %s (password is \"%s\")\n", g.zLogin, zPassword);
198 202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_end_transaction(0);
199 203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If user chooses to use HTTP Authentication over unencrypted HTTP,
207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** remember decision. Otherwise, if the URL is being changed and no preference
208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** has been indicated, err on the safe side and revert the decision.
209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void remember_http_auth(int fUseHttpAuth, const char *zUrl){
211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( fUseHttpAuth==1 ){
212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_set_int("use-http-auth", 1, 0);
213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( zUrl && zUrl[0] ){
214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_unset("use-http-auth", 0);
215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
200 217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
201 218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
202 219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Look for SSH clone command line options and setup in globals.
203 220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
204 221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void clone_ssh_find_options(void){
205 222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!