chiark
/
gitweb
/
~mdw
/
disorder
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
The redirection after login now works properly.
[disorder]
/
server
/
dcgi.c
diff --git
a/server/dcgi.c
b/server/dcgi.c
index b9e4b60fc62db4a3a6ce91016b973fc7e5d8065c..f14d8bf4aaf0c74027d669af66392a5e2595298d 100644
(file)
--- a/
server/dcgi.c
+++ b/
server/dcgi.c
@@
-104,8
+104,8
@@
static const char *front_url(void) {
static void redirect(struct sink *output) {
const char *back;
static void redirect(struct sink *output) {
const char *back;
- cgi_header(output, "Location",
-
(back = cgi_get("back"))
? back : front_url());
+ back = cgi_get("back");
+
cgi_header(output, "Location", back && *back
? back : front_url());
cgi_body(output);
}
cgi_body(output);
}
@@
-460,6
+460,14
@@
static void act_login(cgi_sink *output,
expand_template(ds, output, "login");
}
expand_template(ds, output, "login");
}
+static void act_logout(cgi_sink *output,
+ dcgi_state *ds) {
+ disorder_revoke(ds->g->client);
+ login_cookie = 0;
+ /* Back to the login page */
+ expand_template(ds, output, "login");
+}
+
static void act_register(cgi_sink *output,
dcgi_state *ds) {
const char *username, *password, *email;
static void act_register(cgi_sink *output,
dcgi_state *ds) {
const char *username, *password, *email;
@@
-508,6
+516,7
@@
static const struct action {
{ "disable", act_disable },
{ "enable", act_enable },
{ "login", act_login },
{ "disable", act_disable },
{ "enable", act_enable },
{ "login", act_login },
+ { "logout", act_logout },
{ "move", act_move },
{ "pause", act_pause },
{ "play", act_play },
{ "move", act_move },
{ "pause", act_pause },
{ "play", act_play },