From 5cfe1b2c239353a72ce7975f2c542924c398c12e 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: Mon, 19 Jun 2023 16:56:04 +0800 Subject: Login POST uncertain data is now checked first so that we don't get a filled key but with a NULL value, that would terminate the construction loop too early. --- login.h | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/login.h b/login.h index 3faa3e9..c5ca150 100644 --- a/login.h +++ b/login.h @@ -9,16 +9,31 @@ static inline void login(const char *username, const char *password, void (*handler)(interchange_response *), void (*callback)(void *)) { - request(handler, callback, (const char *[][2]){ - "mv_username", username, - "mv_password", password, - "mv_click", click, - "mv_nextpage", nextpage, - "mv_successpage", successpage, - "mv_failpage", failpage, - "mv_verify", verify, - NULL - }, "%s", "process"); + const char *body[(verify ? 1 : 0) + (successpage ? 1: 0) + + (failpage ? 1 : 0) + 5][2]; + body[0][0] = "mv_username"; + body[0][1] = username; + body[1][0] = "mv_password"; + body[1][1] = password; + body[2][0] = "mv_click"; + body[2][1] = click; + body[3][0] = "mv_nextpage"; + body[3][1] = nextpage; + size_t i = 4; + if (successpage) { + body[i][0] = "mv_successpage"; + body[i++][1] = successpage; + } + if (failpage) { + body[i][0] = "mv_failpage"; + body[i++][1] = failpage; + } + if (verify) { + body[i][0] = "mv_verify"; + body[i++][1] = verify; + } + body[i][0] = NULL; + request(handler, callback, body, "%s", "process"); } #endif -- cgit v1.2.3