]> diplodocus.org Git - nmh/blobdiff - sbr/oauth_prof.c
sbr/mts.c: Delete mmdlm2; use same-valued mmdlm1 instead.
[nmh] / sbr / oauth_prof.c
index dc9bf2d0da0d41d470a71e4cbb979a29f1d25ff6..7dbd4fdba7ac58ae3d3cf2d22a0a351f9c127ad2 100644 (file)
@@ -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 <h/oauth.h>
 #include <h/utils.h>
+#include "m_maildir.h"
 
 static const struct mh_oauth_service_info SERVICES[] = {
     /* https://developers.google.com/accounts/docs/OAuth2InstalledApp */
@@ -56,14 +58,8 @@ copy_svc(mh_oauth_service_info *to, const mh_oauth_service_info *from)
 char *
 mh_oauth_node_name_for_svc(const char *base_name, const char *svc)
 {
-    char *result = mh_xmalloc(sizeof "oauth-" - 1
-                              + strlen(svc)
-                              + 1            /* '-' */
-                              + strlen(base_name)
-                              + 1            /* '\0' */);
-    sprintf(result, "oauth-%s-%s", svc, base_name);
     /* TODO: s/_/-/g ? */
-    return result;
+    return concat("oauth-", svc, "-", base_name, NULL);
 }
 
 /* Update one service_info field if overridden in profile. */
@@ -74,7 +70,7 @@ update_svc_field(char **field, const char *base_name, const char *svc)
     const char *value = context_find(name);
     if (value != NULL) {
         free(*field);
-        *field = getcpy(value);
+        *field = mh_xstrdup(value);
     }
     free(name);
 }
@@ -145,10 +141,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;