break;
}
// append until whitespace
+ cacheTag->erase();
while (remaining > 0) {
if (!isspace(*hdr)) {
(*cacheTag) += *hdr++;
}
break;
}
+
+ if (!cacheTag->empty())
+ *cacheTag = "If-None-Match: " + *cacheTag;
+ }
+ else if (cacheTag->empty() && strncmp(hdr, "Last-Modified:", 14) == 0) {
+ hdr += 14;
+ size_t remaining = nmemb - 14;
+ // skip leading spaces
+ while (remaining > 0) {
+ if (*hdr == ' ') {
+ ++hdr;
+ --remaining;
+ continue;
+ }
+ break;
+ }
+ // append until whitespace
+ while (remaining > 0) {
+ if (!isspace(*hdr)) {
+ (*cacheTag) += *hdr++;
+ --remaining;
+ continue;
+ }
+ break;
+ }
+
+ if (!cacheTag->empty())
+ *cacheTag = "If-Modified-Since: " + *cacheTag;
}
return nmemb;
if (fCacheTag) {
// Outgoing tag.
if (!fCacheTag->empty()) {
- string hdr("If-None-Match: ");
- hdr += *fCacheTag;
- fHeaders = curl_slist_append(fHeaders, hdr.c_str());
+ fHeaders = curl_slist_append(fHeaders, fCacheTag->c_str());
curl_easy_setopt(fEasy, CURLOPT_HTTPHEADER, fHeaders);
}
// Incoming tag.