summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--admin.c5
-rw-r--r--interchange/admin.h3
-rw-r--r--interchange/member.h3
-rw-r--r--login.c2
-rw-r--r--login.h8
-rw-r--r--member.c7
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);
}