X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/63fc8244f0ddecdbdacc21ab797acd2f466a2823..cd6d67151dfb691ea6f5ce3eef3562ab93a8847b:/sbr/oauth_prof.c diff --git a/sbr/oauth_prof.c b/sbr/oauth_prof.c index 4f9e2a2f..a3f2e54a 100644 --- a/sbr/oauth_prof.c +++ b/sbr/oauth_prof.c @@ -74,7 +74,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); } @@ -134,4 +134,32 @@ mh_oauth_get_service_info(const char *svc_name, mh_oauth_service_info *svcinfo, 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 = mh_xmalloc(sizeof "oauth-" - 1 + + strlen(svc) + + 1 /* '\0' */); + sprintf(result, "oauth-%s", svc); + 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