информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsСетевые кракеры и правда о деле ЛевинаГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Линуксовый ботнет, распространяющийся... 
 Конец поддержки Internet Explorer 
 Рекордное число уязвимостей в 2021 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Как в libcurl автоматизировать процесс подстановки куков на редирект? 04.10.09 17:15  
Автор: Vedrus <Serokhvostov Anton> Статус: Member
Отредактировано 04.10.09 17:22  Количество правок: 4
<"чистая" ссылка>
Перваяя страница устанавливает куки и делает редирект на вторую страницу, которая их юзает. Имеется в виду случай, когда параметр CURLOPT_FOLLOWLOCATION установлен в единицу (тогда libcurl сама проходит по цепочке location'ов).

Для случая с одним потоком я нашёл решение. Если прикрутить куки к файлу, то libcurl автоматически пишет их и читает:
curl_easy_setopt(*curl, CURLOPT_COOKIEJAR, "cookie.txt");
curl_easy_setopt(*curl, CURLOPT_COOKIEFILE, "cookie.txt");

Но для большого числа потоков такой метод неэффективен. Топоровое решение: создать N файлов и раздать их каждому потоку, но при таком подходе быстродействие программы падает ниже плинтуса (дисковый ввод/вывод одна из самых медленных операций в системе).

Можно ли как-нибудь сделать то же самое, только не с файлами, а с переменными? Или может быть есть способ научить переменные притворяться файлами?

На худой конец, если такой возможности в libcurl нет, то подскажите пожалуйста, как обрабатывать редиректы вручную? У меня с этим возникли проблемы: я вытаскиваю ссылку из заголовка Location, который мне прислал сервер, пытаюсь перейти по этой ссылке и обламываюсь: libcurl возвращает ошибку "empty reply".

PS. Пробовал использовть для этой цели именованные каналы (с ними можно обращаться как с файлами), но афёра не удалась, т.к. после того как данные прочитаны, они выталкиваются из канала. Может быть есть ещё что-то подобное?
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2022 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach