@@ -58,21 +58,10 @@
58 58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** payload. If g.json.resultCode is non-zero when this function
59 59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** returns then the top-level dispatcher will destroy any payload
60 60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** returned by this function and will output a JSON error response
61 61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** instead.
62 62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The depth parameter comes from the dispatcher and tells the
64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** callback what index in json_command_arg() its command/path starts.
65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** e.g. when dispatching /json/foo/bar, the foo callback will get a
66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** depth of 1 and the bar callback will get a depth of 2. This is only
67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** useful for callbacks which use json_command_arg(), and the only
68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** callbacks which do that are ones which dispatch to sub-pages
69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** (e.g. /json/wiki/...). This is a parameter, as opposed to simply
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** hard-coding the offset in each callback impl, so that refactoring
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** will (or should) be easier if we later reimplement the path/command
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** handling and arguments/path parts get moved around.
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
74 63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** All of the setup/response code is handled by the top dispatcher
75 64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** functions and the callbacks concern themselves only with generating
76 65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the payload.
77 66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
78 67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** It is imperitive that NO callback functions EVER output ANYTHING to
@@ -80,11 +69,11 @@
80 69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** almost certainly will corrupt any HTTP response headers. Output
81 70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** sent to stderr ends up in my apache log, so that might be useful
82 71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** for debuggering in some cases, but so such code should be left
83 72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** enabled for non-debuggering builds.
84 73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- typedef cson_value * (*fossil_json_f)(unsigned int depth);
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ typedef cson_value * (*fossil_json_f)();
86 75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
87 76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
88 77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Internal helpers to manipulate a byte array as a bitset. The B
89 78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** argument must be-a array at least (BIT/8+1) bytes long.
90 79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The BIT argument is the bit number to query/set/clear/toggle.
@@ -98,11 +87,11 @@
98 87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
99 88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
100 89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Placeholder /json/XXX page impl for NYI (Not Yet Implemented)
101 90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** (but planned) pages/commands.
102 91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_page_nyi(unsigned int depth){
92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_page_nyi(){
104 93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.json.resultCode = FSL_JSON_E_NYI;
105 94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return NULL;
106 95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
107 96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
108 97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -1189,11 +1178,11 @@
1189 1178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1190 1179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** /json/version implementation.
1191 1180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1192 1181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Returns the payload object (owned by the caller).
1193 1182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cson_value * json_page_version(unsigned int depth){
1183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cson_value * json_page_version(){
1195 1184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value * jval = NULL;
1196 1185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_object * jobj = NULL;
1197 1186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
jval = cson_value_new_object();
1198 1187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
jobj = cson_value_get_object(jval);
1199 1188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define FSET(X,K) cson_object_set( jobj, K, cson_value_new_string(X,strlen(X)))
@@ -1218,11 +1207,11 @@
1218 1207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** current user (what he may/may not do).
1219 1208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1220 1209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This is primarily intended for debuggering, but may have
1221 1210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** a use in client code. (?)
1222 1211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cson_value * json_page_cap(unsigned int depth){
1212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cson_value * json_page_cap(){
1224 1213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value * payload = cson_value_new_object();
1225 1214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value * sub = cson_value_new_object();
1226 1215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Stmt q;
1227 1216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_object * obj = cson_value_get_object(payload);
1228 1217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_prepare(&q, "SELECT login, cap FROM user WHERE uid=%d", g.userUid);
@@ -1274,11 +1263,11 @@
1274 1263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1275 1264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1276 1265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Implementation of the /json/login page.
1277 1266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1278 1267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1279 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cson_value * json_page_login(unsigned int depth){
1268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cson_value * json_page_login(){
1280 1269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static char preciseErrors = /* if true, "complete" JSON error codes are used,
1281 1270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
else they are "dumbed down" to a generic login
1282 1271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
error code.
1283 1272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1284 1273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#if 0
@@ -1404,11 +1393,11 @@
1404 1393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1405 1394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1406 1395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Impl of /json/logout.
1407 1396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1408 1397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cson_value * json_page_logout(unsigned int depth){
1398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cson_value * json_page_logout(){
1410 1399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value const *token = g.json.authToken;
1411 1400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Remember that json_mode_bootstrap() replaces the login cookie
1412 1401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
with the JSON auth token if the request contains it. If the
1413 1402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
reqest is missing the auth token then this will fetch fossil's
1414 1403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
original cookie. Either way, it's what we want :).
@@ -1429,11 +1418,11 @@
1429 1418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1430 1419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1431 1420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1432 1421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Implementation of the /json/anonymousPassword page.
1433 1422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cson_value * json_page_anon_password(unsigned int depth){
1423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cson_value * json_page_anon_password(){
1435 1424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value * v = cson_value_new_object();
1436 1425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_object * o = cson_value_get_object(v);
1437 1426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unsigned const int seed = captcha_seed();
1438 1427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * zCaptcha = captcha_decode(seed);
1439 1428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_object_set(o, "seed",
@@ -1448,11 +1437,11 @@
1448 1437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1449 1438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1450 1439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Implementation of the /json/stat page/command.
1451 1440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1452 1441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cson_value * json_page_stat(unsigned int depth){
1442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cson_value * json_page_stat(){
1454 1443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 t, fsize;
1455 1444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int n, m;
1456 1445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zDb;
1457 1446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
enum { BufLen = 1000 };
1458 1447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char zBuf[BufLen];
@@ -1543,14 +1532,14 @@
1543 1532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return jv;
1544 1533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#undef SETBUF
1545 1534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1546 1535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1547 1536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_wiki_list(unsigned int depth);
1549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_wiki_get(unsigned int depth);
1550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_wiki_save(unsigned int depth);
1551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_wiki_create(unsigned int depth);
1537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_wiki_list();
1538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_wiki_get();
1539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_wiki_save();
1540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_wiki_create();
1552 1541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1553 1542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1554 1543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Mapping of /json/wiki/XXX commands/paths to callbacks.
1555 1544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1556 1545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const JsonPageDef JsonPageDefs_Wiki[] = {
@@ -1567,21 +1556,21 @@
1567 1556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** depth should be the depth parameter passed to the fossil_json_f().
1568 1557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** pages must be an array of JsonPageDef commands which we can
1569 1558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** dispatch. The final item in the array MUST have a NULL name
1570 1559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** element.
1571 1560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This function takes json_comand_arg(1+depth) and searches pages
1573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** for a matching name. If found then that page's func() is called
1574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** to fetch the payload, which is returned to the caller.
1561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This function takes json_comand_arg(1+g.json.dispatchDepth) and
1562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** searches pages for a matching name. If found then that page's
1563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** func() is called to fetch the payload, which is returned to the
1564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** caller.
1575 1565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1576 1566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** On error, g.json.resultCode is set to one of the FossilJsonCodes
1577 1567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** values.
1578 1568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_page_dispatch_helper(unsigned int depth,
1580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- JsonPageDef const * pages){
1569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_page_dispatch_helper(JsonPageDef const * pages){
1581 1570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
JsonPageDef const * def;
1582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- char const * cmd = json_command_arg(1+depth);
1571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char const * cmd = json_command_arg(1+g.json.dispatchDepth);
1583 1572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
assert( NULL != pages );
1584 1573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ! cmd ){
1585 1574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.json.resultCode = FSL_JSON_E_MISSING_ARGS;
1586 1575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return NULL;
1587 1576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -1589,31 +1578,32 @@
1589 1578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!def){
1590 1579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.json.resultCode = FSL_JSON_E_UNKNOWN_COMMAND;
1591 1580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return NULL;
1592 1581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1593 1582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
else{
1594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return (*def->func)(1+depth);
1583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ++g.json.dispatchDepth;
1584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return (*def->func)();
1595 1585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1596 1586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1597 1587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1598 1588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1599 1589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Implements the /json/wiki family of pages/commands. Far from
1600 1590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** complete.
1601 1591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1602 1592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_page_wiki(unsigned int depth){
1604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return json_page_dispatch_helper(depth,&JsonPageDefs_Wiki[0]);
1593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_page_wiki(){
1594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return json_page_dispatch_helper(&JsonPageDefs_Wiki[0]);
1605 1595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1606 1596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1607 1597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1608 1598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1609 1599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Implementation of /json/wiki/get.
1610 1600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1611 1601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** TODO: add option to parse wiki output. It is currently
1612 1602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** unparsed.
1613 1603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_wiki_get(unsigned int depth){
1604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_wiki_get(){
1615 1605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rid;
1616 1606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Manifest *pWiki = 0;
1617 1607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * zBody = NULL;
1618 1608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * zPageName;
1619 1609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char doParse = 0/*not yet implemented*/;
@@ -1764,26 +1754,26 @@
1764 1754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1765 1755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1766 1756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1767 1757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Implementation of /json/wiki/create.
1768 1758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_wiki_create(unsigned int depth){
1759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_wiki_create(){
1770 1760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return json_wiki_create_or_save(1);
1771 1761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1772 1762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1773 1763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1774 1764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Implementation of /json/wiki/save.
1775 1765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_wiki_save(unsigned int depth){
1766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_wiki_save(){
1777 1767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* FIXME: add GET/POST.payload bool option createIfNotExists. */
1778 1768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return json_wiki_create_or_save(0);
1779 1769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1780 1770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1781 1771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1782 1772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Implementation of /json/wiki/list.
1783 1773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_wiki_list(unsigned int depth){
1774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_wiki_list(){
1785 1775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value * listV = NULL;
1786 1776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_array * list = NULL;
1787 1777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Stmt q;
1788 1778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !g.perm.RdWiki ){
1789 1779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.json.resultCode = FSL_JSON_E_DENIED;
@@ -1813,11 +1803,11 @@
1813 1803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(&q);
1814 1804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return listV;
1815 1805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1816 1806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1817 1807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_branch_list(unsigned int depth);
1808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_branch_list();
1819 1809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1820 1810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Mapping of /json/branch/XXX commands/paths to callbacks.
1821 1811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1822 1812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const JsonPageDef JsonPageDefs_Branch[] = {
1823 1813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"list", json_branch_list, 0},
@@ -1829,12 +1819,12 @@
1829 1819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1830 1820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Implements the /json/branch family of pages/commands. Far from
1831 1821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** complete.
1832 1822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1833 1823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_page_branch(unsigned int depth){
1835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return json_page_dispatch_helper(depth,&JsonPageDefs_Branch[0]);
1824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_page_branch(){
1825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return json_page_dispatch_helper(&JsonPageDefs_Branch[0]);
1836 1826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1837 1827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1838 1828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1839 1829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Impl for /json/branch/list
1840 1830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -1849,11 +1839,11 @@
1849 1839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** HTTP mode options:
1850 1840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1851 1841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** "range" GET/POST.payload parameter. FIXME: currently we also use
1852 1842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** POST, but really want to restrict this to POST.payload.
1853 1843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_branch_list(unsigned int depth){
1844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_branch_list(){
1855 1845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value * payV;
1856 1846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_object * pay;
1857 1847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value * listV;
1858 1848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_array * list;
1859 1849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * range = NULL;
@@ -1930,12 +1920,12 @@
1930 1920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1931 1921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1932 1922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return payV;
1933 1923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1934 1924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_timeline_ci(unsigned int depth);
1936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_timeline_wiki(unsigned int depth);
1925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_timeline_ci();
1926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_timeline_wiki();
1937 1927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1938 1928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Mapping of /json/timeline/XXX commands/paths to callbacks.
1939 1929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1940 1930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const JsonPageDef JsonPageDefs_Timeline[] = {
1941 1931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{"ci", json_timeline_ci, 0},
@@ -1947,12 +1937,12 @@
1947 1937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1948 1938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Implements the /json/timeline family of pages/commands. Far from
1949 1939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** complete.
1950 1940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
1951 1941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_page_timeline(unsigned int depth){
1953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return json_page_dispatch_helper(depth,&JsonPageDefs_Timeline[0]);
1942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_page_timeline(){
1943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return json_page_dispatch_helper(&JsonPageDefs_Timeline[0]);
1954 1944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1955 1945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1956 1946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
1957 1947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Create a temporary table suitable for storing timeline data.
1958 1948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
@@ -2013,11 +2003,11 @@
2013 2003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** of the "after" ("a") or "before" ("b") environment parameters.
2014 2004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This function gives "after" precedence over "before", and only
2015 2005 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** applies one of them.
2016 2006 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
2017 2007 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Returns -1 if it adds a "before" clause, 1 if it adds
2018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** an "after" clause, and 0 if it does not change pSql.
2008 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** an "after" clause, and 0 if adds only an order-by clause.
2019 2009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
2020 2010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static char json_timeline_add_time_clause(Blob *pSql){
2021 2011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * zAfter = NULL;
2022 2012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * zBefore = NULL;
2023 2013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.isHTTP ){
@@ -2052,10 +2042,11 @@
2052 2042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" AND event.mtime<=(SELECT julianday(%Q,'utc')) "
2053 2043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" ORDER BY event.mtime DESC ",
2054 2044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zBefore);
2055 2045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return -1;
2056 2046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
2047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(pSql," ORDER BY event.mtime DESC ", -1);
2057 2048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
2058 2049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2059 2050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2060 2051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
2061 2052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -2085,11 +2076,11 @@
2085 2076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Implementation of /json/timeline/ci.
2086 2077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
2087 2078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Still a few TODOs (like figuring out how to structure
2088 2079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** inheritance info).
2089 2080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
2090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_timeline_ci(unsigned int depth){
2081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_timeline_ci(){
2091 2082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value * payV = NULL;
2092 2083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_object * pay = NULL;
2093 2084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value * tmp = NULL;
2094 2085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value * listV = NULL;
2095 2086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_array * list = NULL;
@@ -2201,11 +2192,11 @@
2201 2192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
2202 2193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
2203 2194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Implementation of /json/timeline/wiki.
2204 2195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
2205 2196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
2206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_timeline_wiki(unsigned int depth){
2197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_timeline_wiki(){
2207 2198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* This code is 95% the same as json_timeline_ci(), by the way. */
2208 2199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value * payV = NULL;
2209 2200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_object * pay = NULL;
2210 2201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value * tmp = NULL;
2211 2202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value * listV = NULL;
@@ -2309,11 +2300,11 @@
2309 2300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
2310 2301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
2311 2302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
2312 2303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Implements the /json/whoami page/command.
2313 2304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
2314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static cson_value * json_page_whoami(unsigned int depth){
2305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static cson_value * json_page_whoami(){
2315 2306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value * payload = NULL;
2316 2307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_object * obj = NULL;
2317 2308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Stmt q;
2318 2309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_prepare(&q, "SELECT login, cap FROM user WHERE uid=%d", g.userUid);
2319 2310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db_step(&q)==SQLITE_ROW ){
@@ -2412,11 +2403,10 @@
2412 2403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
2413 2404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void json_page_top(void){
2414 2405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc = FSL_JSON_E_UNKNOWN_COMMAND;
2415 2406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * cmd;
2416 2407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value * payload = NULL;
2417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cson_value * root = NULL;
2418 2408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
JsonPageDef const * pageDef = NULL;
2419 2409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
json_mode_bootstrap();
2420 2410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cmd = json_command_arg(1);
2421 2411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*cgi_printf("{\"cmd\":\"%s\"}\n",cmd); return;*/
2422 2412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pageDef = json_handler_for_name(cmd,&JsonPageDefs[0]);
@@ -2425,17 +2415,18 @@
2425 2415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
2426 2416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( pageDef->runMode < 0 /*CLI only*/){
2427 2417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = FSL_JSON_E_WRONG_MODE;
2428 2418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
2429 2419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = 0;
2430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- payload = (*pageDef->func)(1);
2420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ g.json.dispatchDepth = 1;
2421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ payload = (*pageDef->func)();
2431 2422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2432 2423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.json.resultCode ){
2433 2424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
json_err(g.json.resultCode, NULL, 0);
2434 2425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
2435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- root = json_create_response(rc, NULL, payload);
2436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- json_send_response(payload);
2426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cson_value * root = json_create_response(rc, NULL, payload);
2427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ json_send_response(root);
2437 2428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cson_value_free(root);
2438 2429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2439 2430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2440 2431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
2441 2432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
@@ -2497,11 +2488,12 @@
2497 2488 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
2498 2489 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( pageDef->runMode > 0 /*HTTP only*/){
2499 2490 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = FSL_JSON_E_WRONG_MODE;
2500 2491 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
2501 2492 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = 0;
2502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- payload = (*pageDef->func)(1);
2493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ g.json.dispatchDepth = 1;
2494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ payload = (*pageDef->func)();
2503 2495 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2504 2496 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.json.resultCode ){
2505 2497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
json_err(g.json.resultCode, NULL, 1);
2506 2498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
2507 2499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
payload = json_create_response(rc, NULL, payload);
2508 2500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!