X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/b2a9e811e6c1d22a7c89909b6e061b7d94cb532f..1e5cdbdd102555b43fc3ffa9a45ba9e7a833c190:/sbr/oauth_prof.c diff --git a/sbr/oauth_prof.c b/sbr/oauth_prof.c index e0fd7584..b5416380 100644 --- a/sbr/oauth_prof.c +++ b/sbr/oauth_prof.c @@ -1,4 +1,5 @@ -/* +/* oauth_prof.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. @@ -19,6 +20,7 @@ #include #include +#include "m_maildir.h" static const struct mh_oauth_service_info SERVICES[] = { /* https://developers.google.com/accounts/docs/OAuth2InstalledApp */ @@ -74,7 +76,7 @@ update_svc_field(char **field, const char *base_name, const char *svc) } /* Update all service_info fields that are overridden in profile. */ -static boolean +static bool update_svc(mh_oauth_service_info *svc, const char *svc_name, char *errbuf, size_t errbuflen) { @@ -83,7 +85,7 @@ update_svc(mh_oauth_service_info *svc, const char *svc_name, char *errbuf, if (svc->name == NULL) { \ snprintf(errbuf, errbuflen, "%s", #name " is missing"); \ errbuf[errbuflen - 1] = '\0'; \ - return FALSE; \ + return false; \ } update(scope); update(client_id); @@ -101,10 +103,10 @@ update_svc(mh_oauth_service_info *svc, const char *svc_name, char *errbuf, svc->display_name = svc->name; } - return TRUE; + return true; } -boolean +bool mh_oauth_get_service_info(const char *svc_name, mh_oauth_service_info *svcinfo, char *errbuf, size_t errbuflen) { @@ -115,18 +117,14 @@ mh_oauth_get_service_info(const char *svc_name, mh_oauth_service_info *svcinfo, svcinfo->client_secret = svcinfo->auth_endpoint = NULL; svcinfo->token_endpoint = svcinfo->redirect_uri = NULL; - for (i = 0; i < (int) (sizeof SERVICES / sizeof SERVICES[0]); i++) { + for (i = 0; i < (int)DIM(SERVICES); i++) { if (strcmp(SERVICES[i].name, svc_name) == 0) { copy_svc(svcinfo, &SERVICES[i]); break; } } - if (!update_svc(svcinfo, svc_name, errbuf, errbuflen)) { - return FALSE; - } - - return TRUE; + return update_svc(svcinfo, svc_name, errbuf, errbuflen); } const char * @@ -139,10 +137,7 @@ mh_oauth_cred_fn(const char *svc) free(component); if (result == NULL) { - result = mh_xmalloc(sizeof "oauth-" - 1 - + strlen(svc) - + 1 /* '\0' */); - sprintf(result, "oauth-%s", svc); + result = concat("oauth-", svc, NULL); result_if_allocated = result; } else { result_if_allocated = NULL;