-/*
+/* 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.
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. */
const char *value = context_find(name);
if (value != NULL) {
free(*field);
- *field = getcpy(value);
+ *field = mh_xstrdup(value);
}
free(name);
}
return TRUE;
}
+
+const char *
+mh_oauth_cred_fn(const char *svc)
+{
+ char *result, *result_if_allocated;
+
+ char *component = mh_oauth_node_name_for_svc("credential-file", svc);
+ result = context_find(component);
+ free(component);
+
+ if (result == NULL) {
+ result = concat("oauth-", svc, NULL);
+ result_if_allocated = result;
+ } else {
+ result_if_allocated = NULL;
+ }
+
+ if (result[0] != '/') {
+ const char *tmp = m_maildir(result);
+ free(result_if_allocated);
+ result = getcpy(tmp);
+ }
+
+ return result;
+}
#endif