From 8dadbbc78ee71e1a60d263b902759d53fc297e7e Mon Sep 17 00:00:00 2001 From: default Date: Wed, 21 Sep 2022 08:57:02 +0200 Subject: [PATCH] Use its own copy of the headers in http_signed_request(). --- http.c | 21 ++++++++++++++------- main.c | 2 +- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/http.c b/http.c index 6f435cb..88222a5 100644 --- a/http.c +++ b/http.c @@ -20,9 +20,11 @@ d_char *http_signed_request(snac *snac, char *method, char *url, xs *digest; xs *s64; xs *signature; + xs *hdrs; char *host; char *target; char *seckey; + char *k, *v; date = xs_utc_time("%a, %d %b %Y %H:%M:%S GMT"); @@ -66,14 +68,19 @@ d_char *http_signed_request(snac *snac, char *method, char *url, "signature=\"%s\"", snac->actor, s64); - /* now add all these things to the headers */ - headers = xs_dict_append(headers, "content-type", "application/activity+json"); - headers = xs_dict_append(headers, "date", date); - headers = xs_dict_append(headers, "signature", signature); - headers = xs_dict_append(headers, "digest", digest); - headers = xs_dict_append(headers, "user-agent", "snac/2.x"); + /* transfer the original headers */ + hdrs = xs_dict_new(); + while (xs_dict_iter(&headers, &k, &v)) + hdrs = xs_dict_append(hdrs, k, v); -// return xs_http_request(method, url, headers, + /* add the new headers */ + hdrs = xs_dict_append(hdrs, "content-type", "application/activity+json"); + hdrs = xs_dict_append(hdrs, "date", date); + hdrs = xs_dict_append(hdrs, "signature", signature); + hdrs = xs_dict_append(hdrs, "digest", digest); + hdrs = xs_dict_append(hdrs, "user-agent", "snac/2.x"); + +// return xs_http_request(method, url, hdrs, // body, b_size, status, payload, p_size); return NULL; } diff --git a/main.c b/main.c index ccef5cc..5ae39c5 100644 --- a/main.c +++ b/main.c @@ -15,7 +15,7 @@ int main(int argc, char *argv[]) user_open(&snac, "mike"); - d_char *headers = xs_dict_new(); + xs *headers = xs_dict_new(); int status; d_char *payload; int p_size;