X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/9b3fc4790b2473b23c69c0e70710e1e66a038f28..5f34de43:/sbr/oauth.c?ds=inline diff --git a/sbr/oauth.c b/sbr/oauth.c index aef18ba4..76ff8794 100755 --- a/sbr/oauth.c +++ b/sbr/oauth.c @@ -1,4 +1,5 @@ -/* +/* oauth.c -- OAuth 2.0 implementation for XOAUTH2 in SMTP and POP3. + * * This code is Copyright (c) 2014, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for * complete copyright information. @@ -23,6 +24,7 @@ #include #include +#include "lock_file.h" #define JSON_TYPE "application/json" @@ -166,7 +168,7 @@ mh_oauth_do_xoauth(const char *user, const char *svc, unsigned char **oauth_res, if (mh_oauth_get_err_code(ctx) == MH_OAUTH_BAD_GRANT) { adios(NULL, "credentials rejected -- run mhlogin -saslmech xoauth2 -authservice %s", svc); } - advise(NULL, "error refreshing OAuth2 token"); + inform("error refreshing OAuth2 token"); adios(NULL, mh_oauth_get_err_string(ctx)); } @@ -196,7 +198,7 @@ static boolean is_json(const char *content_type) { return content_type != NULL - && strncasecmp(content_type, JSON_TYPE, sizeof JSON_TYPE - 1) == 0; + && strncasecmp(content_type, JSON_TYPE, LEN(JSON_TYPE)) == 0; } static void @@ -239,7 +241,7 @@ set_err_http(mh_oauth_ctx *ctx, const struct curl_ctx *curl_ctx) } static char * -make_user_agent() +make_user_agent(void) { const char *curl = curl_version_info(CURLVERSION_NOW)->version; return concat(user_agent, " libcurl/", curl, NULL); @@ -628,17 +630,17 @@ load_creds(struct user_creds **result, FILE *fp, mh_oauth_ctx *ctx) case FLDPLUS: { char **save, *expire; time_t *expires_at = NULL; - if (HasPrefix(name, "access-")) { + if (has_prefix(name, "access-")) { const char *user = name + 7; mh_oauth_cred *creds = find_or_alloc_user_creds(user_creds, user); save = &creds->access_token; - } else if (HasPrefix(name, "refresh-")) { + } else if (has_prefix(name, "refresh-")) { const char *user = name + 8; mh_oauth_cred *creds = find_or_alloc_user_creds(user_creds, user); save = &creds->refresh_token; - } else if (HasPrefix(name, "expire-")) { + } else if (has_prefix(name, "expire-")) { const char *user = name + 7; mh_oauth_cred *creds = find_or_alloc_user_creds(user_creds, user); @@ -877,7 +879,7 @@ make_query_url(char *s, size_t size, CURL *curl, const char *base_url, ...) } static int -debug_callback(const CURL *handle, curl_infotype type, const char *data, +debug_callback(CURL *handle, curl_infotype type, char *data, size_t size, void *userptr) { FILE *fp = userptr; @@ -949,7 +951,7 @@ post(struct curl_ctx *ctx, const char *url, const char *req_body) curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, ctx); - if (HasPrefix(url, "http://127.0.0.1:")) { + if (has_prefix(url, "http://127.0.0.1:")) { /* Hack: on Cygwin, curl doesn't fail to connect with ECONNREFUSED. Instead, it waits to timeout. So set a really short timeout, but just on localhost (for convenience of the user, and the test