From 71e1c7fc557e68743c4a8028b2d6675639be16cc 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: Thu, 17 Jun 2021 21:46:39 +0800 Subject: Make login functions asynchronous compatible --- admin.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) (limited to 'admin.c') diff --git a/admin.c b/admin.c index b06a751..57d88ff 100644 --- a/admin.c +++ b/admin.c @@ -3,16 +3,10 @@ #include "login.h" #include "icclient/admin.h" -typedef struct icclient_admin icclient_admin; - -icclient_admin *icclient_admin_login(const char *username, const char *password, void (*handler)(icclient_fetch_t *)) +void icclient_admin_login(const char *username, const char *password, void (*handler)(icclient_fetch_t *), + void (*callback)(struct icclient_admin *)) { - icclient_admin *admin = malloc(sizeof(icclient_admin)); - admin->name = NULL; - admin->username = NULL; - admin->super = false; - login(username, password, NULL, "MMLogin", handler, admin); - return admin; + login(username, password, NULL, "MMLogin", handler, (void (*)(void *))callback); } void icclient_admin_new_admin(const char *username, const char *password, const char *name, bool super, @@ -65,7 +59,7 @@ void icclient_admin_new_item(const char *description, const char *comment, const }}, "%s", "admin/item_edit"); } -void icclient_admin_logout(icclient_admin *admin, void (*handler)(icclient_fetch_t *)) +void icclient_admin_logout(struct icclient_admin *admin, void (*handler)(icclient_fetch_t *)) { request(handler, NULL, NULL, "%s", "admin/login"); if (admin->name) @@ -73,5 +67,4 @@ void icclient_admin_logout(icclient_admin *admin, void (*handler)(icclient_fetch if (admin->username) free(admin->username); free(admin); - admin = NULL; } -- cgit v1.2.3