diff options
author | ꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id> | 2019-12-29 08:36:39 +0800 |
---|---|---|
committer | ꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id> | 2019-12-29 08:36:39 +0800 |
commit | 4c00d748c3c86cbb5039660c2a5bebac0c826386 (patch) | |
tree | b83f96a57506561131af1209c4dfedb421a5c3cb | |
parent | 30d862751ce42ecf667d08c360009aca3aacc1f8 (diff) |
Add parameters for handler and user pointers
to login related functions.
These are the cURL write function and data respectively.
-rw-r--r-- | admin.c | 8 | ||||
-rw-r--r-- | client.c | 18 | ||||
-rw-r--r-- | icclient/admin.h | 5 | ||||
-rw-r--r-- | icclient/client.h | 11 | ||||
-rw-r--r-- | login.c | 4 | ||||
-rw-r--r-- | login.h | 8 | ||||
-rw-r--r-- | main.c | 2 |
7 files changed, 42 insertions, 14 deletions
@@ -1,11 +1,15 @@ #include "login.h" #include "icclient/admin.h" -void icclient_admin_login(const char *username, const char *password +void icclient_admin_login(size_t (*handler)(void *contents, size_t size + , size_t nmemb, void *userdata) + , struct icclient_user *user + , const char *username, const char *password , const char *successpage, const char *nextpage , const char *failpage) { - login(username, password, NULL, "MMLogin", successpage, nextpage, failpage); + login(handler, user, username, password, NULL, "MMLogin", successpage + , nextpage, failpage); } void icclient_admin_logout() @@ -5,6 +5,7 @@ #include "icclient/product.h" #include "icclient/catalog.h" #include "icclient/ord.h" +#include "icclient/member.h" #include "icclient/client.h" typedef struct icclient_product icclient_product; @@ -115,19 +116,26 @@ void icclient_order(icclient_ord_order **orderptr, const char *sku request(NULL, NULL, NULL, "%s%s", "order?mv_arg=", sku); } -void icclient_newaccount(const char *username, const char *password +void icclient_newaccount(size_t (*handler)(void *contents, size_t size + , size_t nmemb, void *userdata) + , struct icclient_user *user + , const char *username, const char *password , const char *verify, const char *successpage, const char *nextpage , const char *failpage) { - login(username, password, verify, "NewAccount", successpage, nextpage - , failpage); + login(handler, user, username, password, verify, "NewAccount", successpage + , nextpage, failpage); } -void icclient_login(const char *username, const char *password +void icclient_login(size_t (*handler)(void *contents, size_t size + , size_t nmemb, void *userdata) + , struct icclient_user *user + , const char *username, const char *password , const char *successpage, const char *nextpage , const char *failpage) { - login(username, password, NULL, "Login", successpage, nextpage, failpage); + login(handler, user, username, password, NULL, "Login", successpage + , nextpage, failpage); } void icclient_logout() diff --git a/icclient/admin.h b/icclient/admin.h index e01fdc9..1b6bd68 100644 --- a/icclient/admin.h +++ b/icclient/admin.h @@ -5,7 +5,10 @@ extern "C" { #endif - void icclient_admin_login(const char *username, const char *password + void icclient_admin_login(size_t (*handler)(void *contents, size_t size + , size_t nmemb, void *userdata) + , struct icclient_user *user + , const char *username, const char *password , const char *successpage, const char *nextpage , const char *failpage); void icclient_admin_logout(); diff --git a/icclient/client.h b/icclient/client.h index db38926..56db8fd 100644 --- a/icclient/client.h +++ b/icclient/client.h @@ -3,6 +3,7 @@ struct icclient_product; struct icclient_catalog; +struct icclient_user; struct icclient_ord_order; #ifdef __cplusplus @@ -15,10 +16,16 @@ extern "C" { , struct icclient_catalog **catalogptr); void icclient_order(struct icclient_ord_order **orderptr, const char *sku , struct icclient_catalog *catalog); - void icclient_newaccount(const char *username, const char *password + void icclient_newaccount(size_t (*handler)(void *contents, size_t size + , size_t nmemb, void *userdata) + , struct icclient_user *user + , const char *username, const char *password , const char *verify, const char *successpage , const char *nextpage, const char *failpage); - void icclient_login(const char *username, const char *password + void icclient_login(size_t (*handler)(void *contents, size_t size + , size_t nmemb, void *userdata) + , struct icclient_user *user + , const char *username, const char *password , const char *successpage, const char *nextpage , const char *failpage); void icclient_logout(); @@ -1,4 +1,6 @@ #include "login.h" -extern inline void login(const char *, const char *, const char *, const char * +extern inline void login(size_t (*handler)(void *contents, size_t size + , size_t nmemb, void *userdata), struct icclient_user *user + , const char *, const char *, const char *, const char * , const char *, const char *, const char *); @@ -1,9 +1,13 @@ #ifndef ICCLIENT_LOGIN_H #define ICCLIENT_LOGIN_H +#include <stdbool.h> +#include "icclient/member.h" #include "request.h" -inline void login(const char *username, const char *password, const char *verify +inline void login(size_t (*handler)(void *contents, size_t size + , size_t nmemb, void *userdata), struct icclient_user *user + , const char *username, const char *password, const char *verify , const char *click, const char *successpage, const char *nextpage , const char *failpage) { @@ -41,7 +45,7 @@ inline void login(const char *username, const char *password, const char *verify , CURLFORM_PTRCONTENTS, failpage , CURLFORM_END); last = NULL; - request(NULL, NULL, post, "%s", "process"); + request(handler, user, post, "%s", "process"); curl_formfree(post); post = NULL; } @@ -26,7 +26,7 @@ int main(void) icclient_init(url, NULL); free(url); - icclient_login(name, pass, NULL, NULL, NULL); + icclient_login(NULL, NULL, name, pass, NULL, NULL, NULL); free(name); free(pass); |