summaryrefslogtreecommitdiff
path: root/credential.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2023-05-10 17:23:28 (GMT)
committerJunio C Hamano <gitster@pobox.com>2023-05-10 17:23:29 (GMT)
commit2ca91d1ee07f934fa7f57ba34c397b150eef023f (patch)
treed71bd150edc85eedc736f64e896acad327874343 /credential.c
parentc05615e1c5876bea3c35202771d3db83b3336437 (diff)
parenta5c76569e798ad3656afe6b67f37cbbb2e47f28c (diff)
downloadgit-2ca91d1ee07f934fa7f57ba34c397b150eef023f.zip
git-2ca91d1ee07f934fa7f57ba34c397b150eef023f.tar.gz
git-2ca91d1ee07f934fa7f57ba34c397b150eef023f.tar.bz2
Merge branch 'mh/credential-oauth-refresh-token'
The credential subsystem learns to help OAuth framework. * mh/credential-oauth-refresh-token: credential: new attribute oauth_refresh_token
Diffstat (limited to 'credential.c')
-rw-r--r--credential.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/credential.c b/credential.c
index 7da326a..023b59d 100644
--- a/credential.c
+++ b/credential.c
@@ -25,6 +25,7 @@ void credential_clear(struct credential *c)
free(c->path);
free(c->username);
free(c->password);
+ free(c->oauth_refresh_token);
string_list_clear(&c->helpers, 0);
strvec_clear(&c->wwwauth_headers);
@@ -246,6 +247,9 @@ int credential_read(struct credential *c, FILE *fp)
c->password_expiry_utc = parse_timestamp(value, NULL, 10);
if (c->password_expiry_utc == 0 || errno == ERANGE)
c->password_expiry_utc = TIME_MAX;
+ } else if (!strcmp(key, "oauth_refresh_token")) {
+ free(c->oauth_refresh_token);
+ c->oauth_refresh_token = xstrdup(value);
} else if (!strcmp(key, "url")) {
credential_from_url(c, value);
} else if (!strcmp(key, "quit")) {
@@ -281,6 +285,7 @@ void credential_write(const struct credential *c, FILE *fp)
credential_write_item(fp, "path", c->path, 0);
credential_write_item(fp, "username", c->username, 0);
credential_write_item(fp, "password", c->password, 0);
+ credential_write_item(fp, "oauth_refresh_token", c->oauth_refresh_token, 0);
if (c->password_expiry_utc != TIME_MAX) {
char *s = xstrfmt("%"PRItime, c->password_expiry_utc);
credential_write_item(fp, "password_expiry_utc", s, 0);
@@ -406,6 +411,7 @@ void credential_reject(struct credential *c)
FREE_AND_NULL(c->username);
FREE_AND_NULL(c->password);
+ FREE_AND_NULL(c->oauth_refresh_token);
c->password_expiry_utc = TIME_MAX;
c->approved = 0;
}