Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Refactored [23e138e808] a bit to move some new json-only code from main.c to json.c. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
b2ac21832530a457833b97b9a4549082 |
| User & Date: | stephan 2020-07-09 12:53:37.774 |
References
|
2020-07-21
| ||
| 02:47 | Corrected [b2ac2183] to work with CGI directory-serving mode. Renamed the two JSON bootstrap routines to be more descriptive and made it a harmless no-op to call json_bootstrap_early() (formerly json_main_bootstrap()) multiple times in order to simplify some code. Several minor code style fixes in related code. ... (check-in: e7f13b82b6 user: stephan tags: trunk) | |
Context
|
2020-07-09
| ||
| 14:53 | Change the height at which scrolling kicks in for forum posts from 40em to 100em. This is an experiment. ... (check-in: 29f7da9318 user: drh tags: trunk) | |
| 12:53 | Refactored [23e138e808] a bit to move some new json-only code from main.c to json.c. ... (check-in: b2ac218325 user: stephan tags: trunk) | |
| 03:13 | JS fossil.fetch(): moved an XHR.setRequestHeader() call to after the XHR.open() call because FF now says it must be done in that order. ... (check-in: 98f3c05c09 user: stephan tags: trunk) | |
Changes
Changes to src/json.c.
| ︙ | ︙ | |||
49 50 51 52 53 54 55 56 57 58 59 60 61 62 | "mtime" /*mtime*/, "payload" /* payload */, "requestId" /*requestId*/, "resultCode" /*resultCode*/, "resultText" /*resultText*/, "timestamp" /*timestamp*/ }; /* ** Returns true (non-0) if fossil appears to be running in JSON mode. ** and either has JSON POSTed input awaiting consumption or fossil is ** running in HTTP mode (in which case certain JSON data *might* be ** available via GET parameters). */ | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
"mtime" /*mtime*/,
"payload" /* payload */,
"requestId" /*requestId*/,
"resultCode" /*resultCode*/,
"resultText" /*resultText*/,
"timestamp" /*timestamp*/
};
/*
** Given the current request path string, this function returns true
** if it refers to a JSON API path. i.e. if (1) it starts with /json
** or (2) g.zCmdName is "server" and the path starts with
** /somereponame/json. Specifically, it returns 1 in the former case
** and 2 for the latter.
*/
int json_request_is_json_api(const char * zPathInfo){
int rc = 0;
if(zPathInfo==0){
rc = 0;
}else if(0==strncmp("/json",zPathInfo,5)
&& (zPathInfo[5]==0 || zPathInfo[5]=='/')){
rc = 1;
}else if(g.zCmdName!=0 && 0==strcmp("server",g.zCmdName)){
/* When running in server "directory" mode, zPathInfo is
** prefixed with the repository's name, so in order to determine
** whether or not we're really running in json mode we have to
** try a bit harder. Problem reported here:
** https://fossil-scm.org/forum/forumpost/e4953666d6
*/
ReCompiled * pReg = 0;
const char * zErr = re_compile(&pReg, "^/[^/]+/json(/.*)?", 0);
assert(zErr==0 && "Regex compilation failed?");
if(zErr==0 &&
re_match(pReg, (const unsigned char *)zPathInfo, -1)){
rc = 2;
}
re_free(pReg);
}
return rc;
}
/*
** Returns true (non-0) if fossil appears to be running in JSON mode.
** and either has JSON POSTed input awaiting consumption or fossil is
** running in HTTP mode (in which case certain JSON data *might* be
** available via GET parameters).
*/
|
| ︙ | ︙ |
Changes to src/main.c.
| ︙ | ︙ | |||
1525 1526 1527 1528 1529 1530 1531 |
}
cgi_redirect_with_status(zURL, 301, "Moved Permanently");
return 1;
}
return 0;
}
| < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 |
}
cgi_redirect_with_status(zURL, 301, "Moved Permanently");
return 1;
}
return 0;
}
/*
** Preconditions:
**
** * Environment variables are set up according to the CGI standard.
**
** If the repository is known, it has already been opened. If unknown,
** then g.zRepositoryName holds the directory that contains the repository
|
| ︙ | ︙ |