From 662c70b5b1e5c04385e7f61be82d01fdbcf13b9c 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, 22 Sep 2022 14:15:37 +0800 Subject: Merge accesstoken.h --- accesstoken.h | 27 --------------------------- shopify.c | 28 +++++++++++++++++++++++++--- 2 files changed, 25 insertions(+), 30 deletions(-) delete mode 100644 accesstoken.h diff --git a/accesstoken.h b/accesstoken.h deleted file mode 100644 index 31d0d29..0000000 --- a/accesstoken.h +++ /dev/null @@ -1,27 +0,0 @@ -#include - -static inline void accesstoken_parse(const char *tok, - struct shopify_session *session) -{ - json_tokener *tokener = json_tokener_new(); - json_object *obj = json_tokener_parse_ex(tokener, tok, strlen(tok)); - struct json_object_iterator iter = json_object_iter_begin(obj); - struct json_object_iterator iter_end = json_object_iter_end(obj); - while (!json_object_iter_equal(&iter, &iter_end)) { - if (!strcmp(json_object_iter_peek_name(&iter), - "access_token")) { - const char *val = json_object_get_string( - json_object_iter_peek_value(&iter)); - session->access_token = malloc(strlen(val) + 1); - strcpy(session->access_token, val); - } else if (!strcmp(json_object_iter_peek_name(&iter), - "scope")) { - const char *val = json_object_get_string( - json_object_iter_peek_value(&iter)); - session->scopes = malloc(strlen(val) + 1); - strcpy(session->scopes, val); - } - json_object_iter_next(&iter); - } - json_tokener_free(tokener); -} diff --git a/shopify.c b/shopify.c index b85217e..efe9aac 100644 --- a/shopify.c +++ b/shopify.c @@ -4,11 +4,11 @@ #include #include #include +#include #include "shopify.h" #include "crypt.h" #include "regex.h" #include "request.h" -#include "accesstoken.h" #include "sessiontoken.h" #define AUTH_URL \ @@ -53,7 +53,6 @@ extern inline void request_gettoken(const char *, const char *, const char *, extern inline void request_graphql(const char *, const struct shopify_session *, char **); extern inline void request_cleanup(); -extern inline void accesstoken_parse(const char *, struct shopify_session *); extern inline bool sessiontoken_isvalid(const char *, const char *, const char *, const char *); @@ -347,8 +346,31 @@ static enum MHD_Result handle_request(void *cls, struct MHD_Connection *con, char *access_token = NULL; request_gettoken(dec_host, api_key, api_secret_key, code, &access_token); - accesstoken_parse(access_token, session); + + json_tokener *tokener = json_tokener_new(); + json_object *obj = json_tokener_parse_ex(tokener, access_token, + strlen(access_token)); + struct json_object_iterator iter = json_object_iter_begin(obj); + struct json_object_iterator iter_end + = json_object_iter_end(obj); + while (!json_object_iter_equal(&iter, &iter_end)) { + json_object *val = json_object_iter_peek_value(&iter); + if (!strcmp(json_object_iter_peek_name(&iter), + "access_token")) { + const char *str = json_object_get_string(val); + session->access_token = malloc(strlen(str) + 1); + strcpy(session->access_token, str); + } else if (!strcmp(json_object_iter_peek_name(&iter), + "scope")) { + const char *str = json_object_get_string(val); + session->scopes = malloc(strlen(str) + 1); + strcpy(session->scopes, str); + } + json_object_iter_next(&iter); + } + json_tokener_free(tokener); free(access_token); + ret = redirect(dec_host, app_id, con, &res); } else if (session_token) { free(session_token); -- cgit v1.2.3