@@ -32,10 +32,11 @@
32 32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
typedef struct HttpRequest HttpRequest;
33 33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct HttpRequest {
34 34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int id; /* ID counter */
35 35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SOCKET s; /* Socket on which to receive data */
36 36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
SOCKADDR_IN addr; /* Address from which data is coming */
37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int flags; /* Flags passed to win32_http_server() */
37 38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zOptions; /* --notfound and/or --localauth options */
38 39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
39 40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
40 41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
41 42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Prefix for a temporary file.
@@ -111,17 +112,24 @@
111 112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
112 113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
wanted -= got;
113 114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
114 115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fclose(out);
115 116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
out = 0;
116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_snprintf(sizeof(zCmd), zCmd, "%s%s\n%s\n%s",
117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- get_utf8_bom(0), zRequestFName, zReplyFName, inet_ntoa(p->addr.sin_addr)
118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- );
119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* if g.zLocalRoot is set, then we are in a checkout directory,
120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** even if the db handle is now closed */
121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !g.zLocalRoot || !g.zLocalRoot[0] ){
122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sqlite3_snprintf(sizeof(zCmd), zCmd, "%s\n%s", zCmd, g.zRepositoryName);
117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The repository name is only needed if there was no open checkout. This
119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is designed to allow the open checkout for the interactive user to work
120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** with the local Fossil server started via the "ui" command.
121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.zRepositoryName && (p->flags&HTTP_SERVER_HAD_CHECKOUT)==0 ){
123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_snprintf(sizeof(zCmd), zCmd, "%s%s\n%s\n%s\n%s",
124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ get_utf8_bom(0), zRequestFName, zReplyFName, inet_ntoa(p->addr.sin_addr),
125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ g.zRepositoryName
126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_snprintf(sizeof(zCmd), zCmd, "%s%s\n%s\n%s",
129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ get_utf8_bom(0), zRequestFName, zReplyFName, inet_ntoa(p->addr.sin_addr)
130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
123 131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
124 132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
out = fossil_fopen(zCmdFName, "wb");
125 133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( out==0 ) goto end_request;
126 134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fwrite(zCmd, 1, strlen(zCmd), out);
127 135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fclose(out);
@@ -185,13 +193,13 @@
185 193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
wanted += got;
186 194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
187 195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fclose(out);
188 196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
out = 0;
189 197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_snprintf(sizeof(zCmd), zCmd,
190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "\"%s\" http \"%s\" %s %s %s --scgi --nossl%s",
191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.nameOfExe, g.zRepositoryName, zRequestFName, zReplyFName,
192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- inet_ntoa(p->addr.sin_addr), p->zOptions
198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "\"%s\" http \"%s\" \"%s\" %s \"%s\" --scgi --nossl%s",
199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ g.nameOfExe, zRequestFName, zReplyFName, inet_ntoa(p->addr.sin_addr),
200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ g.zRepositoryName, p->zOptions
193 201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
194 202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_system(zCmd);
195 203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
in = fossil_fopen(zReplyFName, "rb");
196 204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( in ){
197 205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( (got = fread(zHdr, 1, sizeof(zHdr), in))>0 ){
@@ -322,10 +330,11 @@
322 330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
323 331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p = fossil_malloc( sizeof(*p) );
324 332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->id = ++idCnt;
325 333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->s = client;
326 334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->addr = client_addr;
335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->flags = flags;
327 336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->zOptions = blob_str(&options);
328 337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( flags & HTTP_SERVER_SCGI ){
329 338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
_beginthread(win32_scgi_request, 0, (void*)p);
330 339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
331 340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
_beginthread(win32_http_request, 0, (void*)p);
332 341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!