diff options
-rw-r--r-- | src/sledjchisl/sledjchisl.c | 82 |
1 files changed, 41 insertions, 41 deletions
diff --git a/src/sledjchisl/sledjchisl.c b/src/sledjchisl/sledjchisl.c index cddb167..0f05001 100644 --- a/src/sledjchisl/sledjchisl.c +++ b/src/sledjchisl/sledjchisl.c | |||
@@ -23,7 +23,7 @@ config SLEDJCHISL | |||
23 | start Welcome.shini | 23 | start Welcome.shini |
24 | start "Welcome sim" | 24 | start "Welcome sim" |
25 | Start a sim or everything. | 25 | Start a sim or everything. |
26 | -q when starting everything wont show the tmux console. | 26 | -q when starting everything won't show the tmux console. |
27 | backup | 27 | backup |
28 | backup -m | 28 | backup -m |
29 | backup -m "Joan Smith" | 29 | backup -m "Joan Smith" |
@@ -78,7 +78,7 @@ config SLEDJCHISL | |||
78 | 78 | ||
79 | // TODO - remember to rebuild all of toybox if any of the above changes. | 79 | // TODO - remember to rebuild all of toybox if any of the above changes. |
80 | // Toybox's strend overrides another strend that causes MariaDB library to crash. Renaming it to tb_strend helps. | 80 | // Toybox's strend overrides another strend that causes MariaDB library to crash. Renaming it to tb_strend helps. |
81 | // I deal with that by using a sed invokation when building toybox. | 81 | // I deal with that by using a sed invocation when building toybox. |
82 | #define FOR_sledjchisl | 82 | #define FOR_sledjchisl |
83 | #include "toys.h" | 83 | #include "toys.h" |
84 | 84 | ||
@@ -117,7 +117,7 @@ They are obsolete now, should remove them. | |||
117 | #else | 117 | #else |
118 | extern char **environ; | 118 | extern char **environ; |
119 | #endif | 119 | #endif |
120 | // Don't overide standard stdio stuff. | 120 | // Don't override standard stdio stuff. |
121 | #define NO_FCGI_DEFINES | 121 | #define NO_FCGI_DEFINES |
122 | #include <fcgi_stdio.h> | 122 | #include <fcgi_stdio.h> |
123 | #undef NO_FCGI_DEFINES | 123 | #undef NO_FCGI_DEFINES |
@@ -144,7 +144,7 @@ extern char **environ; | |||
144 | #include "lib/json-builder.h" | 144 | #include "lib/json-builder.h" |
145 | 145 | ||
146 | // Both my_config.h and fcgi_config.h define the same PACKAGE* variables, which we don't use anyway, | 146 | // Both my_config.h and fcgi_config.h define the same PACKAGE* variables, which we don't use anyway, |
147 | // I deal with that by using a sed invokation when building fcgi2. | 147 | // I deal with that by using a sed invocation when building fcgi2. |
148 | 148 | ||
149 | // https://mariadb.com/kb/en/about-mariadb-connector-c/ Official docs. | 149 | // https://mariadb.com/kb/en/about-mariadb-connector-c/ Official docs. |
150 | // http://dev.mysql.com/doc/refman/5.5/en/c-api-function-overview.html MySQL docs. | 150 | // http://dev.mysql.com/doc/refman/5.5/en/c-api-function-overview.html MySQL docs. |
@@ -571,7 +571,7 @@ qlist_t *dbRequests; | |||
571 | 571 | ||
572 | // TODO - log to file. The problem is we don't know where to log until after we have loaded the configs, and before that we are spewing log messages. | 572 | // TODO - log to file. The problem is we don't know where to log until after we have loaded the configs, and before that we are spewing log messages. |
573 | // Now that we are using spawn-fcgi, all the logs are going to STDERR, which we can capture and write to a file. | 573 | // Now that we are using spawn-fcgi, all the logs are going to STDERR, which we can capture and write to a file. |
574 | // Unfortunately spawn-fcgi in deamon mode sends all the output to /dev/null or something. | 574 | // Unfortunately spawn-fcgi in daemon mode sends all the output to /dev/null or something. |
575 | // A better idea, when we spawn tmux or spawn-fcgi, capture STDERR, full log everything to that, filtered log to the tmux console (STDOUT). | 575 | // A better idea, when we spawn tmux or spawn-fcgi, capture STDERR, full log everything to that, filtered log to the tmux console (STDOUT). |
576 | // Then we can use STDOUT / STDIN to run the console stuff. | 576 | // Then we can use STDOUT / STDIN to run the console stuff. |
577 | 577 | ||
@@ -2297,7 +2297,7 @@ void startSim(simData *simd, char *sim, char *type, int count, int window, int p | |||
2297 | } | 2297 | } |
2298 | else | 2298 | else |
2299 | { | 2299 | { |
2300 | // TODO - some compromise, do a premptive load check if we are not doing a wait anyway. | 2300 | // TODO - some compromise, do a preemptive load check if we are not doing a wait anyway. |
2301 | } | 2301 | } |
2302 | ourSims->doIt = ((count + 1) % bulkSims); | 2302 | ourSims->doIt = ((count + 1) % bulkSims); |
2303 | } | 2303 | } |
@@ -2342,9 +2342,9 @@ void stopSim(simData *simd, char *sim, char *type, int count, int window, int pa | |||
2342 | // There's three things that might happen - | 2342 | // There's three things that might happen - |
2343 | // Sim will quit, tmux pane will go away before we can see the shutdown message. | 2343 | // Sim will quit, tmux pane will go away before we can see the shutdown message. |
2344 | // pane-exited hook might be useful here. | 2344 | // pane-exited hook might be useful here. |
2345 | // Sim will quit, tmux pane wont go away. Dunno yet if waitTmuxText() will still work. | 2345 | // Sim will quit, tmux pane won't go away. Dunno yet if waitTmuxText() will still work. |
2346 | // pane-died hook might be useful here. | 2346 | // pane-died hook might be useful here. |
2347 | // Sim fails to quit, error message on the pane that we want to read, wont see the shutdown message. | 2347 | // Sim fails to quit, error message on the pane that we want to read, won't see the shutdown message. |
2348 | // Also sim might not have finished starting up, and may even not be accepting comands yet. | 2348 | // Also sim might not have finished starting up, and may even not be accepting comands yet. |
2349 | // TODO - cater for and test them all. | 2349 | // TODO - cater for and test them all. |
2350 | // Could also loop on checkSimIsRunning(sim) | 2350 | // Could also loop on checkSimIsRunning(sim) |
@@ -2391,8 +2391,8 @@ void gitar(simData *simd, char *sim, int count, int window, int panes, int pane, | |||
2391 | /* Work around OpenSims slow database corruption bug by using git to store all old backups. | 2391 | /* Work around OpenSims slow database corruption bug by using git to store all old backups. |
2392 | Try to squeeze every last byte out of the tarballs. Seems to cut the total storage size down to one third the size of just the raw I/OAR files. | 2392 | Try to squeeze every last byte out of the tarballs. Seems to cut the total storage size down to one third the size of just the raw I/OAR files. |
2393 | Saves even more if there's been no changes. | 2393 | Saves even more if there's been no changes. |
2394 | On the other hand, these backup files will grow indefinately, the more changes, the faster it grows. I can live with that for more reliable backups that go back further. | 2394 | On the other hand, these backup files will grow indefinitely, the more changes, the faster it grows. I can live with that for more reliable backups that go back further. |
2395 | Tries to avoid loosing data if things go wrong. I think the main remaining problem would be running out of space, in which case you have bigger problems to deal with. | 2395 | Tries to avoid losing data if things go wrong. I think the main remaining problem would be running out of space, in which case you have bigger problems to deal with. |
2396 | 2396 | ||
2397 | Strategy - unpack the last one, unpack and commit any old I/OARs, pack up the result, delete it's working directory, THEN run the save i/oar. | 2397 | Strategy - unpack the last one, unpack and commit any old I/OARs, pack up the result, delete it's working directory, THEN run the save i/oar. |
2398 | Avoids having to sync with OpenSim finishing the current I/OAR, and as a bonus, an easy to deliver latest I/OAR for people that want it. | 2398 | Avoids having to sync with OpenSim finishing the current I/OAR, and as a bonus, an easy to deliver latest I/OAR for people that want it. |
@@ -2455,7 +2455,7 @@ TODO - | |||
2455 | if (strcmp(fullName, sim) != 0) | 2455 | if (strcmp(fullName, sim) != 0) |
2456 | ungitar(simd, fullName, count, window, panes, pane, FLAG(m), member, last); | 2456 | ungitar(simd, fullName, count, window, panes, pane, FLAG(m), member, last); |
2457 | ungitar(simd, sim, count, window, panes, pane, FLAG(m), member, last); | 2457 | ungitar(simd, sim, count, window, panes, pane, FLAG(m), member, last); |
2458 | if (!qfile_mkdir(dir, S_IRWXU | S_IRGRP | S_IXGRP, true)) E("Faild to make directory %s!", dir); | 2458 | if (!qfile_mkdir(dir, S_IRWXU | S_IRGRP | S_IXGRP, true)) E("Failed to make directory %s!", dir); |
2459 | if (shellMeFail("mv %s %s", gtr1, dir)) E("Failed to move %s!", gtr1); | 2459 | if (shellMeFail("mv %s %s", gtr1, dir)) E("Failed to move %s!", gtr1); |
2460 | if (qfile_exist(gtr)) | 2460 | if (qfile_exist(gtr)) |
2461 | { | 2461 | { |
@@ -2469,7 +2469,7 @@ TODO - | |||
2469 | { | 2469 | { |
2470 | I("Found ancient gitar %s", gtr1); | 2470 | I("Found ancient gitar %s", gtr1); |
2471 | ungitar(simd, sim, count, window, panes, pane, FLAG(m), member, last); | 2471 | ungitar(simd, sim, count, window, panes, pane, FLAG(m), member, last); |
2472 | if (!qfile_mkdir(dir, S_IRWXU | S_IRGRP | S_IXGRP, true)) E("Faild to make directory %s!", dir); | 2472 | if (!qfile_mkdir(dir, S_IRWXU | S_IRGRP | S_IXGRP, true)) E("Failed to make directory %s!", dir); |
2473 | if (shellMeFail("mv %s %s", gtr1, dir)) E("Failed to move %s!", gtr1); | 2473 | if (shellMeFail("mv %s %s", gtr1, dir)) E("Failed to move %s!", gtr1); |
2474 | if (qfile_exist(gtr)) | 2474 | if (qfile_exist(gtr)) |
2475 | { | 2475 | { |
@@ -2482,7 +2482,7 @@ TODO - | |||
2482 | // Either unpack the old gitAR, or create a new one. | 2482 | // Either unpack the old gitAR, or create a new one. |
2483 | if (!qfile_exist(dir)) | 2483 | if (!qfile_exist(dir)) |
2484 | { | 2484 | { |
2485 | if (!qfile_mkdir(dir, S_IRWXU | S_IRGRP | S_IXGRP, true)) E("Faild to make directory %s!", dir); | 2485 | if (!qfile_mkdir(dir, S_IRWXU | S_IRGRP | S_IXGRP, true)) E("Failed to make directory %s!", dir); |
2486 | } | 2486 | } |
2487 | if (qfile_exist(gtr)) | 2487 | if (qfile_exist(gtr)) |
2488 | { | 2488 | { |
@@ -2511,8 +2511,8 @@ TODO - | |||
2511 | if (shellMeFail("cd %s/%s; git config user.email \"opensim@$(hostname -A | cut -d ' ' -f 1)\"", dir, gar)) E("Failed to git config user.email!"); | 2511 | if (shellMeFail("cd %s/%s; git config user.email \"opensim@$(hostname -A | cut -d ' ' -f 1)\"", dir, gar)) E("Failed to git config user.email!"); |
2512 | if (shellMeFail("cd %s/%s; git config user.name \"opensim\"", dir, gar)) E("Failed to git config user.name!"); | 2512 | if (shellMeFail("cd %s/%s; git config user.name \"opensim\"", dir, gar)) E("Failed to git config user.name!"); |
2513 | 2513 | ||
2514 | // Coz git insists on having something comitted before it can change the branch name. | 2514 | // Coz git insists on having something committed before it can change the branch name. |
2515 | if (-1 == qfile_save(gab, gad, strlen(gad), false)) E("Faild to write %s file!", gad); | 2515 | if (-1 == qfile_save(gab, gad, strlen(gad), false)) E("Failed to write %s file!", gad); |
2516 | if (shellMeFail("cd %s/%s; git add .gitattributes >>%s", dir, gar, gerr)) E("Failed to git add!"); | 2516 | if (shellMeFail("cd %s/%s; git add .gitattributes >>%s", dir, gar, gerr)) E("Failed to git add!"); |
2517 | V("Committing initial git."); | 2517 | V("Committing initial git."); |
2518 | if (shellMeFail("cd %s/%s; git commit -qm \"Initial commit\" >>%s || echo \"ERROR - Could not commit!\" >>%s", | 2518 | if (shellMeFail("cd %s/%s; git commit -qm \"Initial commit\" >>%s || echo \"ERROR - Could not commit!\" >>%s", |
@@ -2520,7 +2520,7 @@ TODO - | |||
2520 | if (shellMeFail("cd %s/%s; git branch -m master Domme >>%s", dir, gar, gerr)) E("Failed to git branch -m master Domme!"); | 2520 | if (shellMeFail("cd %s/%s; git branch -m master Domme >>%s", dir, gar, gerr)) E("Failed to git branch -m master Domme!"); |
2521 | } | 2521 | } |
2522 | // Doing these each time, to catch those old ones that didn't have them. | 2522 | // Doing these each time, to catch those old ones that didn't have them. |
2523 | // Coz otherwise git commit starts a gc run IN THE BACKGROUD, which screws up trying to tarball it. | 2523 | // Coz otherwise git commit starts a gc run IN THE BACKGROUND, which screws up trying to tarball it. |
2524 | if (shellMeFail("cd %s/%s; git config gc.autodetach false", dir, gar)) E("Failed to git config gc.autodetach!"); | 2524 | if (shellMeFail("cd %s/%s; git config gc.autodetach false", dir, gar)) E("Failed to git config gc.autodetach!"); |
2525 | // Don't want it running in the foreground either, coz it dumps on the console, we do a gc --quiet later anyway. | 2525 | // Don't want it running in the foreground either, coz it dumps on the console, we do a gc --quiet later anyway. |
2526 | if (shellMeFail("cd %s/%s; git config gc.auto 0", dir, gar)) E("Failed to git config gc.auto!"); | 2526 | if (shellMeFail("cd %s/%s; git config gc.auto 0", dir, gar)) E("Failed to git config gc.auto!"); |
@@ -2580,7 +2580,7 @@ TODO - | |||
2580 | // The \\* bit is to escape the \ from snprintf, which itself escapes the * from the shell. | 2580 | // The \\* bit is to escape the \ from snprintf, which itself escapes the * from the shell. |
2581 | if (shellMeFail("cd %s/%s; git add */\\* >>%s", dir, gar, gerr)) E("Failed to git add!"); | 2581 | if (shellMeFail("cd %s/%s; git add */\\* >>%s", dir, gar, gerr)) E("Failed to git add!"); |
2582 | // Gotta add this again, coz of the rm. Apparently rm removes dotfiles, but add doesn't! | 2582 | // Gotta add this again, coz of the rm. Apparently rm removes dotfiles, but add doesn't! |
2583 | if (-1 == qfile_save(gab, gad, strlen(gad), false)) E("Faild to write %s file!", gab); | 2583 | if (-1 == qfile_save(gab, gad, strlen(gad), false)) E("Failed to write %s file!", gab); |
2584 | if (shellMeFail("cd %s/%s; git add .gitattributes >>%s", dir, gar, gerr)) E("Failed to git add!"); | 2584 | if (shellMeFail("cd %s/%s; git add .gitattributes >>%s", dir, gar, gerr)) E("Failed to git add!"); |
2585 | 2585 | ||
2586 | // Magic needed to figure out if there's anything to commit. | 2586 | // Magic needed to figure out if there's anything to commit. |
@@ -2645,7 +2645,7 @@ gitARend: | |||
2645 | 2645 | ||
2646 | void ungitar(simData *simd, char *sim, int count, int window, int panes, int pane, int m, int member, char *last) | 2646 | void ungitar(simData *simd, char *sim, int count, int window, int panes, int pane, int m, int member, char *last) |
2647 | { | 2647 | { |
2648 | /* Extact all the I/OAR files from a gitAR file. | 2648 | /* Extract all the I/OAR files from a gitAR file. |
2649 | 2649 | ||
2650 | Gotta do it the hard way, OpenSim expects the "control file" to be first file in the archive. I guess that's archive.xml, which would normally end up last. | 2650 | Gotta do it the hard way, OpenSim expects the "control file" to be first file in the archive. I guess that's archive.xml, which would normally end up last. |
2651 | 2651 | ||
@@ -3085,7 +3085,7 @@ void dbFreeFields(dbFields *flds, boolean all) | |||
3085 | { | 3085 | { |
3086 | flds->count--; | 3086 | flds->count--; |
3087 | 3087 | ||
3088 | // TODO - sigh, looks to be inconsistant why some do and some don't leak. | 3088 | // TODO - sigh, looks to be inconsistent why some do and some don't leak. |
3089 | // I guess the ones that don't leak are the ones that crash? | 3089 | // I guess the ones that don't leak are the ones that crash? |
3090 | // It's only a tiny leak anyway, 80 bytes total. | 3090 | // It's only a tiny leak anyway, 80 bytes total. |
3091 | // if ((0 >= flds->count) || all) // CRASHY | 3091 | // if ((0 >= flds->count) || all) // CRASHY |
@@ -3525,7 +3525,7 @@ t("Database timeout test %lf > %lf", ((t - n) / 1000000000.0), (dbTimeout / 2.0) | |||
3525 | } | 3525 | } |
3526 | if (0 == i) | 3526 | if (0 == i) |
3527 | { | 3527 | { |
3528 | E("Statement prepare for INSERT must have in paramaters."); | 3528 | E("Statement prepare for INSERT must have in parameters."); |
3529 | ret++; | 3529 | ret++; |
3530 | free(values); | 3530 | free(values); |
3531 | values = xmprintf(""); | 3531 | values = xmprintf(""); |
@@ -5262,10 +5262,10 @@ static void HTMLfooter(reqData *Rd) | |||
5262 | compare the level field to the linky type in the linky URL, new users -200 would be "../validateUser/.." and not "../resetPassword/.." | 5262 | compare the level field to the linky type in the linky URL, new users -200 would be "../validateUser/.." and not "../resetPassword/.." |
5263 | . delete the linky token | 5263 | . delete the linky token |
5264 | . Particularly important for the forgotten password email, since now that token is in the wild, and is used to reset a password. | 5264 | . Particularly important for the forgotten password email, since now that token is in the wild, and is used to reset a password. |
5265 | Which begs the question, other than being able to recieve the email, how do we tell it's them? | 5265 | Which begs the question, other than being able to receive the email, how do we tell it's them? |
5266 | Security questions suck, too easily guessed. | 5266 | Security questions suck, too easily guessed. |
5267 | Ask their DoB. Still sucky, coz "hey it's my birthday today" is way too leaky. | 5267 | Ask their DoB. Still sucky, coz "hey it's my birthday today" is way too leaky. |
5268 | This is what Multi Factor Autentication is good for, and that's on the TODO list. | 5268 | This is what Multi Factor Authentication is good for, and that's on the TODO list. |
5269 | Also, admins should have a harder time doing password resets. | 5269 | Also, admins should have a harder time doing password resets. |
5270 | Must be approved by another admin? | 5270 | Must be approved by another admin? |
5271 | Must log onto the server via other means to twiddle something there? | 5271 | Must log onto the server via other means to twiddle something there? |
@@ -5504,10 +5504,10 @@ char *checkLinky(reqData *Rd) | |||
5504 | "You should add that email address to your contacts, or otherwise let it through your spam filter. " | 5504 | "You should add that email address to your contacts, or otherwise let it through your spam filter. " |
5505 | "It will be from %s@%s, and it might be in your spam folder, coz these sorts of emails sometimes end up there. " | 5505 | "It will be from %s@%s, and it might be in your spam folder, coz these sorts of emails sometimes end up there. " |
5506 | "You should add that email address to your contacts, or otherwise let it through your spam filter. " | 5506 | "You should add that email address to your contacts, or otherwise let it through your spam filter. " |
5507 | "If your email client wont let you click the validation link, just copy and paste it into your web browser. " | 5507 | "If your email client won't let you click the validation link, just copy and paste it into your web browser. " |
5508 | "If your email client wont let you click the validation link, just copy and paste it into your web browser. " | 5508 | "If your email client won't let you click the validation link, just copy and paste it into your web browser. " |
5509 | "If your email client wont let you click the validation link, just copy and paste it into your web browser. " | 5509 | "If your email client won't let you click the validation link, just copy and paste it into your web browser. " |
5510 | "If your email client wont let you click the validation link, just copy and paste it into your web browser. " | 5510 | "If your email client won't let you click the validation link, just copy and paste it into your web browser. " |
5511 | // "<a href='https://%s%s?hashish=%s'>%s</a>" | 5511 | // "<a href='https://%s%s?hashish=%s'>%s</a>" |
5512 | "</b></font></p>\n", | 5512 | "</b></font></p>\n", |
5513 | "grid_no_reply", Rd->Host, | 5513 | "grid_no_reply", Rd->Host, |
@@ -5737,13 +5737,13 @@ t("Write shs %s", tnm4); | |||
5737 | "Please go to this web link to validate your new account -\n" | 5737 | "Please go to this web link to validate your new account -\n" |
5738 | "https://%s%s?hashish=%s\n" | 5738 | "https://%s%s?hashish=%s\n" |
5739 | "THE FOLLOWING IS REPEATED, COZ PEOPLE JUST DON'T FOLLOW DIRECTIONS!\n" | 5739 | "THE FOLLOWING IS REPEATED, COZ PEOPLE JUST DON'T FOLLOW DIRECTIONS!\n" |
5740 | "If your email client wont let you click the validation\n" | 5740 | "If your email client won't let you click the validation\n" |
5741 | "link, just copy and paste it into your web browser.\n" | 5741 | "link, just copy and paste it into your web browser.\n" |
5742 | "If your email client wont let you click the validation\n" | 5742 | "If your email client won't let you click the validation\n" |
5743 | "link, just copy and paste it into your web browser.\n" | 5743 | "link, just copy and paste it into your web browser.\n" |
5744 | "If your email client wont let you click the validation\n" | 5744 | "If your email client won't let you click the validation\n" |
5745 | "link, just copy and paste it into your web browser.\n" | 5745 | "link, just copy and paste it into your web browser.\n" |
5746 | "If your email client wont let you click the validation\n" | 5746 | "If your email client won't let you click the validation\n" |
5747 | "link, just copy and paste it into your web browser.\n" | 5747 | "link, just copy and paste it into your web browser.\n" |
5748 | "\n" | 5748 | "\n" |
5749 | "\n" | 5749 | "\n" |
@@ -6452,7 +6452,7 @@ I("Validated session for %s.", shs->name); | |||
6452 | { | 6452 | { |
6453 | V("Validated session linky."); | 6453 | V("Validated session linky."); |
6454 | addStrL(Rd->messages, "Congratulations, you have validated your new account. Now you can log onto the web site."); | 6454 | addStrL(Rd->messages, "Congratulations, you have validated your new account. Now you can log onto the web site."); |
6455 | addStrL(Rd->messages, "NOTE - you wont be able to log onto the grid until your new account has been approved."); | 6455 | addStrL(Rd->messages, "NOTE - you won't be able to log onto the grid until your new account has been approved."); |
6456 | Rd->lnk = xzalloc(sizeof(sesh)); | 6456 | Rd->lnk = xzalloc(sizeof(sesh)); |
6457 | Rd->lnk->status = SHS_NUKE; | 6457 | Rd->lnk->status = SHS_NUKE; |
6458 | qstrcpy(Rd->lnk->leaf, sizeof(Rd->lnk->leaf), leaf); | 6458 | qstrcpy(Rd->lnk->leaf, sizeof(Rd->lnk->leaf), leaf); |
@@ -6741,7 +6741,7 @@ static int emailValidate(reqData *Rd, inputForm *iF, inputValue *iV) | |||
6741 | char *t0 = qurl_encode(email, strlen(email)); | 6741 | char *t0 = qurl_encode(email, strlen(email)); |
6742 | 6742 | ||
6743 | // In theory it's the correct thing to do to NOT load email into stuff on failure, | 6743 | // In theory it's the correct thing to do to NOT load email into stuff on failure, |
6744 | // In practice, that means it wont show the old email and emayl in the create page when they don't match. | 6744 | // In practice, that means it won't show the old email and emayl in the create page when they don't match. |
6745 | if ((0 == ret) || notSame) | 6745 | if ((0 == ret) || notSame) |
6746 | Rd->stuff->putstrf(Rd->stuff, "email", "%s", t0); | 6746 | Rd->stuff->putstrf(Rd->stuff, "email", "%s", t0); |
6747 | free(t0); | 6747 | free(t0); |
@@ -7971,7 +7971,7 @@ void sessionStateEngine(reqData *Rd, char *type) | |||
7971 | switch (Rd->shs.status) | 7971 | switch (Rd->shs.status) |
7972 | { | 7972 | { |
7973 | case SHS_UNKNOWN: d("sessionStateEngine(SHS_UNKNOWN, %s)", type); break; | 7973 | case SHS_UNKNOWN: d("sessionStateEngine(SHS_UNKNOWN, %s)", type); break; |
7974 | case SHS_NONE: d("sessionStateEngine(SHS_NONE, %s)", type); break; | 7974 | case SHS_NONE: d("sessionStateEngine(SHS_NONE, %s)", type); break; |
7975 | case SHS_BOGUS: d("sessionStateEngine(SHS_BOGUS, %s)", type); break; | 7975 | case SHS_BOGUS: d("sessionStateEngine(SHS_BOGUS, %s)", type); break; |
7976 | case SHS_PROBLEM: d("sessionStateEngine(SHS_PROBLEM, %s)", type); break; | 7976 | case SHS_PROBLEM: d("sessionStateEngine(SHS_PROBLEM, %s)", type); break; |
7977 | case SHS_VALID: d("sessionStateEngine(SHS_VALID, %s)", type); break; | 7977 | case SHS_VALID: d("sessionStateEngine(SHS_VALID, %s)", type); break; |
@@ -8281,7 +8281,7 @@ void account_html(char *file, reqData *Rd, HTMLfile *thisFile) | |||
8281 | sessionStateEngine(Rd, "CANCELLED"); | 8281 | sessionStateEngine(Rd, "CANCELLED"); |
8282 | } | 8282 | } |
8283 | 8283 | ||
8284 | sessionStateEngine(Rd, "submited"); | 8284 | sessionStateEngine(Rd, "submitted"); |
8285 | switch (Rd->shs.status) | 8285 | switch (Rd->shs.status) |
8286 | { | 8286 | { |
8287 | case SHS_RENEW: | 8287 | case SHS_RENEW: |
@@ -8955,7 +8955,7 @@ Copy correct config/config.ini to there. | |||
8955 | 8955 | ||
8956 | // A bit chicken and egg here. | 8956 | // A bit chicken and egg here. |
8957 | // We need to be the correct user to set the correct perms on the scRun directory | 8957 | // We need to be the correct user to set the correct perms on the scRun directory |
8958 | // But we wont be the correct user until we run tmux as that user. | 8958 | // But we won't be the correct user until we run tmux as that user. |
8959 | // The path to the web socket needs to be readable by the www-data group. So the FCGI socket will work. | 8959 | // The path to the web socket needs to be readable by the www-data group. So the FCGI socket will work. |
8960 | // AND it needs to be group sticky on opensimsc group. So the tmux socket will work. | 8960 | // AND it needs to be group sticky on opensimsc group. So the tmux socket will work. |
8961 | // Put both in scRun, and make it other readable? | 8961 | // Put both in scRun, and make it other readable? |
@@ -9543,7 +9543,7 @@ if ((strcmp("HTTP_COOKIE", ky) == 0) || (strcmp("CONTENT_LENGTH", ky) == 0) || ( | |||
9543 | free(k); | 9543 | free(k); |
9544 | } | 9544 | } |
9545 | 9545 | ||
9546 | // The FCGI paramaters sent from the server, are converted to environment variablse for the fcgi2 SDK. | 9546 | // The FCGI parameters sent from the server, are converted to environment variables for the fcgi2 SDK. |
9547 | // The FCGI spec doesn't mention what these are. except FCGI_WEB_SERVER_ADDRS. | 9547 | // The FCGI spec doesn't mention what these are. except FCGI_WEB_SERVER_ADDRS. |
9548 | char *Role = Rd->headers->getstr(Rd->headers, "FCGI_ROLE", false); | 9548 | char *Role = Rd->headers->getstr(Rd->headers, "FCGI_ROLE", false); |
9549 | Rd->Path = Rd->headers->getstr(Rd->headers, "PATH_INFO", false); | 9549 | Rd->Path = Rd->headers->getstr(Rd->headers, "PATH_INFO", false); |
@@ -9677,7 +9677,7 @@ t("BODY"); | |||
9677 | Rd->Rheaders->putstr(Rd->Rheaders, "Status", "200 OK"); | 9677 | Rd->Rheaders->putstr(Rd->Rheaders, "Status", "200 OK"); |
9678 | Rd->Rheaders->putstr(Rd->Rheaders, "Content-type", "text/html"); | 9678 | Rd->Rheaders->putstr(Rd->Rheaders, "Content-type", "text/html"); |
9679 | // TODO - check these. | 9679 | // TODO - check these. |
9680 | // This is all dynamic web pages, and likeley secure to. | 9680 | // This is all dynamic web pages, and likely secure to. |
9681 | // Most of these are from https://www.smashingmagazine.com/2017/04/secure-web-app-http-headers/ | 9681 | // Most of these are from https://www.smashingmagazine.com/2017/04/secure-web-app-http-headers/ |
9682 | // https://www.twilio.com/blog/a-http-headers-for-the-responsible-developer is good to, and includes useful compression and image stuff. | 9682 | // https://www.twilio.com/blog/a-http-headers-for-the-responsible-developer is good to, and includes useful compression and image stuff. |
9683 | // On the other hand, .css files are referenced, which might be better off being cached, so should tweak some of thees. | 9683 | // On the other hand, .css files are referenced, which might be better off being cached, so should tweak some of thees. |
@@ -9827,13 +9827,13 @@ sendReply: | |||
9827 | tmp0 = Rd->Rheaders->getstr(Rd->Rheaders, "Status", false); | 9827 | tmp0 = Rd->Rheaders->getstr(Rd->Rheaders, "Status", false); |
9828 | if (NULL == tmp0) | 9828 | if (NULL == tmp0) |
9829 | { | 9829 | { |
9830 | E("Some sort of error happpened! Status: UNKNOWN!!"); | 9830 | E("Some sort of error happened! Status: UNKNOWN!!"); |
9831 | FCGI_printf("Some sort of error happpened! Status: UNKNOWN!!"); | 9831 | FCGI_printf("Some sort of error happened! Status: UNKNOWN!!"); |
9832 | } | 9832 | } |
9833 | else | 9833 | else |
9834 | { | 9834 | { |
9835 | E("Some sort of error happpened! Status: %s", tmp0); | 9835 | E("Some sort of error happened! Status: %s", tmp0); |
9836 | FCGI_printf("Some sort of error happpened! Status: %s", tmp0); | 9836 | FCGI_printf("Some sort of error happened! Status: %s", tmp0); |
9837 | } | 9837 | } |
9838 | } | 9838 | } |
9839 | else | 9839 | else |