Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Removed a duplicated function (different name, same code). |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
116a098610a8e07f041ee96435992e4c |
User & Date: | stephan 2012-03-16 19:01:09.927 |
Context
2012-03-16
| ||
19:17 | More tinkering with the /json/dir?name=xxx handling, so that CLI/HTML modes behave consistently vis-a-vis each other. ... (check-in: b8043269 user: stephan tags: trunk) | |
19:01 | Removed a duplicated function (different name, same code). ... (check-in: 116a0986 user: stephan tags: trunk) | |
17:44 | Fixed /json/dir to work over HTTP mode, too. ... (check-in: 857a6d91 user: stephan tags: trunk) | |
Changes
Changes to src/json.c.
︙ | ︙ | |||
564 565 566 567 568 569 570 571 572 573 574 575 576 577 | assert(NULL != zKey); if(!g.isHTTP){ rc = find_option(zCLILong ? zCLILong : zKey, zCLIShort, 1); } if(!rc && fossil_has_json()){ rc = json_getenv_cstr(zKey); } if(!rc && (argPos>=0)){ rc = json_command_arg((unsigned char)argPos); } return rc; } | > > > | 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 | assert(NULL != zKey); if(!g.isHTTP){ rc = find_option(zCLILong ? zCLILong : zKey, zCLIShort, 1); } if(!rc && fossil_has_json()){ rc = json_getenv_cstr(zKey); if(!rc && zCLIShort){ rc = cson_value_get_cstr( cson_object_get( g.json.param.o, zCLIShort) ); } } if(!rc && (argPos>=0)){ rc = json_command_arg((unsigned char)argPos); } return rc; } |
︙ | ︙ | |||
778 779 780 781 782 783 784 | } } } return g.json.authToken; } /* | | | < | > > | 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 | } } } return g.json.authToken; } /* ** If g.json.reqPayload.o is NULL then NULL is returned, else the ** given property is searched for in the request payload. If found it ** is returned. The returned value is owned by (or shares ownership ** with) g.json, and must NOT be cson_value_free()'d by the ** caller. */ cson_value * json_req_payload_get(char const *pKey){ return g.json.reqPayload.o ? cson_object_get(g.json.reqPayload.o,pKey) : NULL; } |
︙ | ︙ | |||
1225 1226 1227 1228 1229 1230 1231 | if(g.json.cmd.offset < 0){ return NULL; }else{ ndx = g.json.cmd.offset + ndx; return cson_string_cstr(cson_value_get_string(cson_array_get( ar, g.json.cmd.offset + ndx ))); } } | < < < < < < < < < < < < < < | 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 | if(g.json.cmd.offset < 0){ return NULL; }else{ ndx = g.json.cmd.offset + ndx; return cson_string_cstr(cson_value_get_string(cson_array_get( ar, g.json.cmd.offset + ndx ))); } } /* Returns the C-string form of json_auth_token(), or NULL ** if json_auth_token() returns NULL. */ char const * json_auth_token_cstr(){ return cson_value_get_cstr( json_auth_token() ); } |
︙ | ︙ |
Changes to src/json_login.c.
︙ | ︙ | |||
50 51 52 53 54 55 56 | Summary: If we check for P("name") first, then P("n"), then ONLY a GET param of "name" will match ("n" is not recognized). If we reverse the order of the checks then both forms work. Strangely enough, the "p"/"password" check is not affected by this. */ | | | | 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 | Summary: If we check for P("name") first, then P("n"), then ONLY a GET param of "name" will match ("n" is not recognized). If we reverse the order of the checks then both forms work. Strangely enough, the "p"/"password" check is not affected by this. */ char const * name = cson_value_get_cstr(json_req_payload_get("name")); char const * pw = NULL; char const * anonSeed = NULL; cson_value * payload = NULL; int uid = 0; /* reminder to self: Fossil internally (for the sake of /wiki) interprets paths in the form /foo/bar/baz such that P("name") == "bar/baz". This collides with our name/password checking, and thus we do some rather elaborate name=... checking. */ pw = cson_value_get_cstr(json_req_payload_get("password")); if( !pw ){ pw = PD("p",NULL); if( !pw ){ pw = PD("password",NULL); } } if(!pw){ |
︙ | ︙ | |||
97 98 99 100 101 102 103 | 80-digit number. */ }; static char seedBuffer[SeedBufLen]; cson_value const * jseed = json_getenv(FossilJsonKeys.anonymousSeed); seedBuffer[0] = 0; if( !jseed ){ | | | 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | 80-digit number. */ }; static char seedBuffer[SeedBufLen]; cson_value const * jseed = json_getenv(FossilJsonKeys.anonymousSeed); seedBuffer[0] = 0; if( !jseed ){ jseed = json_req_payload_get(FossilJsonKeys.anonymousSeed); if( !jseed ){ jseed = json_getenv("cs") /* name used by HTML interface */; } } if(jseed){ if( cson_value_is_number(jseed) ){ sprintf(seedBuffer, "%"CSON_INT_T_PFMT, cson_value_get_integer(jseed)); |
︙ | ︙ |