From c4244b7286dc0b0ac5ba8e0d5ad425a250c68892 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=EA=A6=AB=EA=A6=B6=EA=A6=8F=EA=A7=80=EA=A6=A6?= =?UTF-8?q?=EA=A6=BF=EA=A6=A7=EA=A6=AE=EA=A6=91=EA=A6=A9=EA=A6=AD=EA=A7=80?= Date: Wed, 8 Mar 2023 17:58:59 +0800 Subject: Interface for setting login next page --- admin.c | 5 +++-- interchange/admin.h | 3 ++- interchange/member.h | 3 ++- login.c | 2 +- login.h | 8 +++++--- member.c | 7 ++++--- 6 files changed, 17 insertions(+), 11 deletions(-) diff --git a/admin.c b/admin.c index 7e498a5..8fe16e4 100644 --- a/admin.c +++ b/admin.c @@ -7,10 +7,11 @@ #include "interchange/admin.h" void interchange_admin_login(const char *username, const char *password, - const char *failpage, void (*handler)(interchange_response *), + const char *nextpage, const char *failpage, + void (*handler)(interchange_response *), void (*callback)(struct interchange_admin *)) { - login(username, password, NULL, "MMLogin", failpage, handler, + login(username, password, NULL, "MMLogin", nextpage, failpage, handler, (void (*)(void *))callback); } diff --git a/interchange/admin.h b/interchange/admin.h index 50a0957..d50a1e4 100644 --- a/interchange/admin.h +++ b/interchange/admin.h @@ -22,7 +22,8 @@ extern "C" { #endif void interchange_admin_login(const char *username, const char *password, - const char *failpage, void (*handler)(interchange_response *), + const char *nextpage, const char *failpage, + void (*handler)(interchange_response *), void (*callback)(struct interchange_admin *)); void interchange_admin_new_admin(const char *username, const char *password, const char *name, bool super, enum interchange_admin_group group, void (*handler)(interchange_response *)); diff --git a/interchange/member.h b/interchange/member.h index 0611861..e18b752 100644 --- a/interchange/member.h +++ b/interchange/member.h @@ -68,7 +68,8 @@ void interchange_member_newaccount(const char *username, const char *password, void (*handler)(interchange_response *), void (*callback)(struct interchange_member *)); void interchange_member_login(const char *username, const char *password, - const char *failpage, void (*handler)(interchange_response *), + const char *nextpage, const char *failpage, + void (*handler)(interchange_response *), void (*callback)(struct interchange_member *)); /*! diff --git a/login.c b/login.c index bd9318c..278055b 100644 --- a/login.c +++ b/login.c @@ -1,5 +1,5 @@ #include "login.h" extern inline void login(const char *, const char *, const char *, const char *, - const char *, void (*)(interchange_response *), + const char *, const char *, void (*)(interchange_response *), void (*)(void *)); diff --git a/login.h b/login.h index acabf85..856c2d2 100644 --- a/login.h +++ b/login.h @@ -4,15 +4,17 @@ #include "request.h" static inline void login(const char *username, const char *password, - const char *verify, const char *click, const char *failpage, - void (*handler)(interchange_response *), + const char *verify, const char *click, const char *nextpage, + const char *failpage, void (*handler)(interchange_response *), void (*callback)(void *)) { - request(handler, callback, &(struct body){ 4 + (failpage ? 1 : 0), { + request(handler, callback, &(struct body){ 4 + (nextpage ? 1 : 0) + + (failpage ? 1 : 0), { { "mv_username", username }, { "mv_password", password }, { "mv_verify", verify }, { "mv_click", click }, + { "mv_nextpage", nextpage }, { "mv_failpage", failpage }, }}, "%s", "process"); } diff --git a/member.c b/member.c index b5e3227..b92b59a 100644 --- a/member.c +++ b/member.c @@ -7,15 +7,16 @@ void interchange_member_newaccount(const char *username, const char *password, void (*handler)(interchange_response *), void (*callback)(struct interchange_member *)) { - login(username, password, verify, "NewAccount", failpage, handler, + login(username, password, verify, "NewAccount", NULL, failpage, handler, (void (*)(void *))callback); } void interchange_member_login(const char *username, const char *password, - const char *failpage, void (*handler)(interchange_response *), + const char *nextpage, const char *failpage, + void (*handler)(interchange_response *), void (*callback)(struct interchange_member *)) { - login(username, password, NULL, "Login", failpage, handler, + login(username, password, NULL, "Login", nextpage, failpage, handler, (void (*)(void *))callback); } -- cgit v1.2.3