]> git.street.me.uk Git - andy/viking.git/commitdiff
Fix etag handling
authorSven Wegener <sven.wegener@stealer.net>
Sat, 21 May 2011 18:18:35 +0000 (20:18 +0200)
committerGuilhem Bonnefille <guilhem.bonnefille@gmail.com>
Sat, 21 May 2011 21:00:57 +0000 (23:00 +0200)
commit fba991f645629444888e099c85d254a621991ac7 ("Fix compiler warning
in curl_download.c") actually broke etag handling by only modifying the
local pointer variable instead of the target it points to.

Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
src/curl_download.c

index afb4723f8488f4d87e151ed9da9d3872bd11fcf9..85aac91ffb7997425f9a6bbdcfee192b28a0b356 100644 (file)
@@ -62,14 +62,15 @@ static size_t curl_get_etag_func(char *ptr, size_t size, size_t nmemb, void *str
 {
 #define ETAG_KEYWORD "ETag: "
 #define ETAG_LEN (sizeof(ETAG_KEYWORD)-1)
+  gchar **etag = stream;
   size_t len = size*nmemb;
   char *str = g_strstr_len((const char*)ptr, len, ETAG_KEYWORD);
   if (str) {
     char *etag_str = str + ETAG_LEN;
     char *end_str = g_strstr_len(etag_str, len - ETAG_LEN, "\r\n");
     if (etag_str && end_str) {
-      stream = (void*) g_strndup(etag_str, end_str - etag_str);
-      g_debug("%s: ETAG found: %s", __FUNCTION__, (gchar*)stream);
+      *etag = g_strndup(etag_str, end_str - etag_str);
+      g_debug("%s: ETAG found: %s", __FUNCTION__, *etag);
     }
   }
   return nmemb;