gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-exchange] 01/03: add ETag to /keys response


From: gnunet
Subject: [taler-exchange] 01/03: add ETag to /keys response
Date: Tue, 17 May 2022 14:53:00 +0200

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository exchange.

commit 5e06f842dd09f44f94801ec463717e370531c406
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Tue May 17 14:30:58 2022 +0200

    add ETag to /keys response
---
 src/exchange/taler-exchange-httpd_keys.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/src/exchange/taler-exchange-httpd_keys.c 
b/src/exchange/taler-exchange-httpd_keys.c
index dea29f7d..a1de10cf 100644
--- a/src/exchange/taler-exchange-httpd_keys.c
+++ b/src/exchange/taler-exchange-httpd_keys.c
@@ -1918,6 +1918,7 @@ create_krd (struct TEH_KeyStateHandle *ksh,
     void *keys_jsonz;
     size_t keys_jsonz_size;
     int comp;
+    char etag[sizeof (struct GNUNET_HashCode) * 2];
 
     /* Convert /keys response to UTF8-String */
     keys_json = json_dumps (keys,
@@ -1929,6 +1930,21 @@ create_krd (struct TEH_KeyStateHandle *ksh,
     keys_jsonz = GNUNET_strdup (keys_json);
     keys_jsonz_size = strlen (keys_json);
 
+    /* hash to compute etag */
+    {
+      struct GNUNET_HashCode ehash;
+      char *end;
+
+      GNUNET_CRYPTO_hash (keys_jsonz,
+                          keys_jsonz_size,
+                          &ehash);
+      end = GNUNET_STRINGS_data_to_string (&ehash,
+                                           sizeof (ehash),
+                                           etag,
+                                           sizeof (etag));
+      *end = '\0';
+    }
+
     /* Create uncompressed response */
     krd.response_uncompressed
       = MHD_create_response_from_buffer (keys_jsonz_size,
@@ -1938,6 +1954,10 @@ create_krd (struct TEH_KeyStateHandle *ksh,
     GNUNET_assert (GNUNET_OK ==
                    setup_general_response_headers (ksh,
                                                    krd.response_uncompressed));
+    GNUNET_break (MHD_YES ==
+                  MHD_add_response_header (krd.response_uncompressed,
+                                           MHD_HTTP_HEADER_ETAG,
+                                           etag));
     /* Also compute compressed version of /keys response */
     comp = TALER_MHD_body_compress (&keys_jsonz,
                                     &keys_jsonz_size);
@@ -1956,6 +1976,10 @@ create_krd (struct TEH_KeyStateHandle *ksh,
     GNUNET_assert (GNUNET_OK ==
                    setup_general_response_headers (ksh,
                                                    krd.response_compressed));
+    GNUNET_break (MHD_YES ==
+                  MHD_add_response_header (krd.response_compressed,
+                                           MHD_HTTP_HEADER_ETAG,
+                                           etag));
   }
   krd.cherry_pick_date = last_cpd;
   GNUNET_array_append (ksh->krd_array,

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]