LINUX.ORG.RU

curl и Last-Modified (C)


0

1

Есть простейший пример на C: #include <curl/curl.h>

char tmp[] = «/var/tmp/tmp»;

char fullpath[] = «/var/tmp/test»;

FILE* fp;

CURL* curl;

char bufferError[CURL_ERROR_SIZE];

CURLcode result;

int main() {

curl = curl_easy_init();

fp = fopen(tmp, «wb»);

char url[] = "http://test";

curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, bufferError);

curl_easy_setopt(curl, CURLOPT_URL, url);

curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);

result = curl_easy_perform(curl);

curl_easy_cleanup(curl);

fclose(fp);

rename(tmp, fullpath);

}

Нужно чтобы создаваемый файл имел такие же атрибуты создания как в поле Last-Modified в ответе сервера. Как это сделать ?

★★☆☆

1. Выдрать Last-Modified через CURLOPT_HEADERFUNCTION
2. Поменять время через utime(2)
3. ???
4. PROFIT!

Deleted
()

Если я правильно помню спеку то так не получится. Спека говорит, что ifmodifiedsince должен символ в символ быть таким, как вернул его сервер в last modified. Для клиента это значение непрозрачно.

phoenix ★★★★
()
Ответ на: комментарий от phoenix

вдогонку, это конечно не означает, что предложенное нельзя реализовать для выбранной комбинации сервера и фазы луны.

phoenix ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.