summaryrefslogtreecommitdiff
path: root/http.c
diff options
context:
space:
mode:
authorGravatar default2022-09-25 18:50:53 +0200
committerGravatar default2022-09-25 18:50:53 +0200
commit6f7f98ded3005d9c29295dfff42dbf81bba1f62a (patch)
tree4194cd2018e08feffc31f5da58676e2a57d58d9d /http.c
parentNew function timeline_request(). (diff)
downloadsnac2-6f7f98ded3005d9c29295dfff42dbf81bba1f62a.tar.gz
snac2-6f7f98ded3005d9c29295dfff42dbf81bba1f62a.tar.xz
snac2-6f7f98ded3005d9c29295dfff42dbf81bba1f62a.zip
Fixed a bug in the digest header.
Diffstat (limited to 'http.c')
-rw-r--r--http.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/http.c b/http.c
index 56fbbda..65d934c 100644
--- a/http.c
+++ b/http.c
@@ -17,7 +17,7 @@ d_char *http_signed_request(snac *snac, char *method, char *url,
17{ 17{
18 xs *l1; 18 xs *l1;
19 xs *date; 19 xs *date;
20 xs *digest; 20 xs *digest_b64, *digest;
21 xs *s64; 21 xs *s64;
22 xs *signature; 22 xs *signature;
23 xs *hdrs; 23 xs *hdrs;
@@ -25,6 +25,7 @@ d_char *http_signed_request(snac *snac, char *method, char *url,
25 char *target; 25 char *target;
26 char *seckey; 26 char *seckey;
27 char *k, *v; 27 char *k, *v;
28 d_char *response;
28 29
29 date = xs_utc_time("%a, %d %b %Y %H:%M:%S GMT"); 30 date = xs_utc_time("%a, %d %b %Y %H:%M:%S GMT");
30 31
@@ -43,9 +44,11 @@ d_char *http_signed_request(snac *snac, char *method, char *url,
43 44
44 /* digest */ 45 /* digest */
45 if (body != NULL) 46 if (body != NULL)
46 digest = xs_sha256_base64(body, b_size); 47 digest_b64 = xs_sha256_base64(body, b_size);
47 else 48 else
48 digest = xs_sha256_base64("", 0); 49 digest_b64 = xs_sha256_base64("", 0);
50
51 digest = xs_fmt("SHA-256=%s", digest_b64);
49 52
50 seckey = xs_dict_get(snac->key, "secret"); 53 seckey = xs_dict_get(snac->key, "secret");
51 54
@@ -53,7 +56,7 @@ d_char *http_signed_request(snac *snac, char *method, char *url,
53 /* build the string to be signed */ 56 /* build the string to be signed */
54 xs *s = xs_fmt("(request-target): %s /%s\n" 57 xs *s = xs_fmt("(request-target): %s /%s\n"
55 "host: %s\n" 58 "host: %s\n"
56 "digest: SHA-256=%s\n" 59 "digest: %s\n"
57 "date: %s", 60 "date: %s",
58 strcmp(method, "POST") == 0 ? "post" : "get", 61 strcmp(method, "POST") == 0 ? "post" : "get",
59 target, host, digest, date); 62 target, host, digest, date);
@@ -81,6 +84,10 @@ d_char *http_signed_request(snac *snac, char *method, char *url,
81 hdrs = xs_dict_append(hdrs, "digest", digest); 84 hdrs = xs_dict_append(hdrs, "digest", digest);
82 hdrs = xs_dict_append(hdrs, "user-agent", "snac/2.x"); 85 hdrs = xs_dict_append(hdrs, "user-agent", "snac/2.x");
83 86
84 return xs_http_request(method, url, hdrs, 87 response = xs_http_request(method, url, hdrs,
85 body, b_size, status, payload, p_size); 88 body, b_size, status, payload, p_size);
89
90 srv_archive("SEND", hdrs, body, b_size, *status, response, *payload, *p_size);
91
92 return response;
86} 93}