X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/b080f5bec1263d354ca4943e2bc9670cb1e9cfa7..1e03ea3338cc5ccd9ddf4feaaacfeda1998689cc:/sbr/oauth.c diff --git a/sbr/oauth.c b/sbr/oauth.c index 8a9893eb..195b9b8f 100755 --- a/sbr/oauth.c +++ b/sbr/oauth.c @@ -5,7 +5,10 @@ * complete copyright information. */ -#include +#include "h/mh.h" +#include "trimcpy.h" +#include "getcpy.h" +#include "error.h" #ifdef OAUTH_SUPPORT @@ -20,10 +23,10 @@ #include #include -#include +#include "thirdparty/jsmn/jsmn.h" -#include -#include +#include "h/oauth.h" +#include "h/utils.h" #include "lock_file.h" #define JSON_TYPE "application/json" @@ -141,7 +144,7 @@ mh_oauth_do_xoauth(const char *user, const char *svc, unsigned char **oauth_res, char *client_res; if (!mh_oauth_new (&ctx, svc)) - adios(NULL, "%s", mh_oauth_get_err_string(ctx)); + die("%s", mh_oauth_get_err_string(ctx)); if (log != NULL) mh_oauth_log_to(stderr, ctx); @@ -149,7 +152,7 @@ mh_oauth_do_xoauth(const char *user, const char *svc, unsigned char **oauth_res, fp = lkfopendata(fn, "r+", &failed_to_lock); if (fp == NULL) { if (errno == ENOENT) { - adios(NULL, "no credentials -- run mhlogin -saslmech xoauth2 -authservice %s", svc); + die("no credentials -- run mhlogin -saslmech xoauth2 -authservice %s", svc); } adios(fn, "failed to open"); } @@ -158,24 +161,24 @@ mh_oauth_do_xoauth(const char *user, const char *svc, unsigned char **oauth_res, } if ((cred = mh_oauth_cred_load(fp, ctx, user)) == NULL) { - adios(NULL, "%s", mh_oauth_get_err_string(ctx)); + die("%s", mh_oauth_get_err_string(ctx)); } if (!mh_oauth_access_token_valid(time(NULL), cred)) { if (!mh_oauth_refresh(cred)) { if (mh_oauth_get_err_code(ctx) == MH_OAUTH_NO_REFRESH) { - adios(NULL, "no valid credentials -- run mhlogin -saslmech xoauth2 -authservice %s", svc); + die("no valid credentials -- run mhlogin -saslmech xoauth2 -authservice %s", svc); } if (mh_oauth_get_err_code(ctx) == MH_OAUTH_BAD_GRANT) { - adios(NULL, "credentials rejected -- run mhlogin -saslmech xoauth2 -authservice %s", svc); + die("credentials rejected -- run mhlogin -saslmech xoauth2 -authservice %s", svc); } inform("error refreshing OAuth2 token"); - adios(NULL, "%s", mh_oauth_get_err_string(ctx)); + die("%s", mh_oauth_get_err_string(ctx)); } fseek(fp, 0, SEEK_SET); if (!mh_oauth_cred_save(fp, cred, user)) { - adios(NULL, "%s", mh_oauth_get_err_string(ctx)); + die("%s", mh_oauth_get_err_string(ctx)); } } @@ -226,7 +229,7 @@ set_err_http(mh_oauth_ctx *ctx, const struct curl_ctx *curl_ctx) if (curl_ctx->res_len > 0 && is_json(curl_ctx->content_type) && get_json_strings(curl_ctx->res_body, curl_ctx->res_len, ctx->log, - "error", &error, (void *)NULL) + "error", &error, NULL) && error != NULL) { if (strcmp(error, "invalid_grant") == 0) { code = MH_OAUTH_BAD_GRANT; @@ -386,7 +389,7 @@ mh_oauth_get_authorize_url(mh_oauth_ctx *ctx) "client_id", ctx->svc.client_id, "redirect_uri", ctx->svc.redirect_uri, "scope", ctx->svc.scope, - (void *)NULL)) { + NULL)) { set_err(ctx, MH_OAUTH_REQUEST_INIT); return NULL; } @@ -410,7 +413,7 @@ cred_from_response(mh_oauth_cred *cred, const char *content_type, "access_token", &access_token, "expires_in", &expires_in, "refresh_token", &refresh_token, - (void *)NULL)) { + NULL)) { goto out; } @@ -498,7 +501,7 @@ mh_oauth_authorize(const char *code, mh_oauth_ctx *ctx) "redirect_uri", ctx->svc.redirect_uri, "client_id", ctx->svc.client_id, "client_secret", ctx->svc.client_secret, - (void *)NULL)) { + NULL)) { set_err(ctx, MH_OAUTH_REQUEST_INIT); return NULL; } @@ -531,7 +534,7 @@ mh_oauth_refresh(mh_oauth_cred *cred) "refresh_token", cred->refresh_token, "client_id", ctx->svc.client_id, "client_secret", ctx->svc.client_secret, - (void *)NULL)) { + NULL)) { set_err(ctx, MH_OAUTH_REQUEST_INIT); return false; }