Spec-Zone.ru › D

etc.c.curl

Это интерфейс к библиотеке libcurl.

Преобразован из заголовков curl для D с помощью htod и очищен Jonas Drewsen (jdrewsen)

Примечание для Windows x86: Статическую библиотеку libcurl, совместимую с DMD, можно загрузить со страницы загрузки dlang.org.

Авторское право (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, и др.

Данное программное обеспечение лицензировано в соответствии с файлом COPYING, который должен был прилагаться к данной дистрибуции. Условия лицензии также доступны по адресу http://curl.haxx.se/docs/copyright.html.

Вы можете использовать, копировать, изменять, объединять, публиковать, распространять и/или продавать копии данного ПО, а также разрешать лицам, которым предоставляется ПО, делать то же самое, в соответствии с условиями файла COPYING.

Данное ПО распространяется «как есть», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, явных или подразумеваемых.

перечисление строка LIBCURL_COPYRIGHT;

Это глобальное авторское право пакета.

перечисление строка LIBCURL_VERSION;

Это номер версии пакета libcurl, из которого происходит этот заголовочный файл:

перечисление целое число LIBCURL_VERSION_MAJOR;

перечисление целое число LIBCURL_VERSION_MINOR;

перечисление целое число LIBCURL_VERSION_PATCH;

Числовой номер версии также доступен «по частям» с помощью этих констант.

перечисление целое число LIBCURL_VERSION_NUM;

Это числовой номер версии libcurl, предназначенный для более лёгкого анализа и сравнения программами. Макрос LIBCURL_VERSION_NUM всегда будет соответствовать следующему синтаксису:

0xXXYYZZ

Где XX, YY и ZZ — основные, выпускные и исправленные номера версии в шестнадцатеричном формате (используя по 8 бит для каждого). Все три числа всегда представлены двумя цифрами. 1.2 будет отображаться как "0x010200", а версия 9.11.7 — как "0x090b07".

Это 6-значное (24 бита) шестнадцатеричное число не показывает номер предварительной версии и всегда больше в более новой версии. Это позволяет работать с операциями сравнения больше/меньше.

перечисление строка LIBCURL_TIMESTAMP;

Это дата и время создания полного исходного пакета. Отметка времени не хранится в git, так как она правильно устанавливается в архивах tarball скриптом maketgz.

Формат даты должен соответствовать следующей шаблону:

"Пн Фев 12 11:35:33 UTC 2007"

псевдоним curl_off_t = long;

Определение типа данных curl_off_t.

jdrewsen — всегда 64-битное знаковое, и это то, что long есть в D.

Комментарий ниже взят из curlbuild.h:

ПРИМЕЧАНИЕ 2:

Для любой платформы/компилятора curl_off_t должен быть определен как 64-битный знаковый целочисленный тип данных. Разрядность этого типа данных должна быть постоянной и независимой от настроек поддержки больших файлов.

В качестве исключения из вышесказанного, curl_off_t должен быть определен как 32-битный знаковый целочисленный тип данных, если 64-битного типа нет.

псевдоним CURL = void;
псевдоним curl_socket_t = std.socket.socket_t;

jdrewsen — получение псевдонима сокета из std.socket

структура curl_httppost;
curl_httppost* next;

следующая запись в списке

char* name;

указатель на выделенную строку имени

c_long namelength;

длина строки имени

char* contents;

указатель на выделенные данные содержимого

c_long contentslength;

длина поля содержимого

char* buffer;

указатель на выделенные данные буфера

c_long bufferlength;

длина поля буфера

char* contenttype;

Content-Type

curl_slist* contentheader;

список дополнительных заголовков для этой формы

curl_httppost* more;

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

c_long flags;

как определено ниже

char* showfilename;

Имя файла для отображения. Если не задано, используется фактическое имя файла (если это часть файла).

void* userp;

пользовательский указатель, используемый для HTTPPOST_CALLBACK-записей

перечисление целое число HTTPPOST_FILENAME;

указанное содержимое — имя файла

перечисление целое число HTTPPOST_READFILE;

указанное содержимое — имя файла

перечисление целое число HTTPPOST_PTRNAME;

имя хранится только в виде указателя, не освобождается в formfree

перечисление целое число HTTPPOST_PTRCONTENTS;

содержимое хранится только в виде указателя, не освобождается в formfree

перечисление целое число HTTPPOST_BUFFER;

загрузка файла из буфера

перечисление целое число HTTPPOST_PTRBUFFER;

загрузка файла из указателя содержимого

перечисление целое число HTTPPOST_CALLBACK;

загрузка содержимого файла с помощью обычного обратного вызова для получения данных и передачи данного указателя в качестве пользовательского указателя

псевдоним curl_progress_callback = int функция(void* clientp, double dltotal, double dlnow, double ultotal, double ulnow);
перечисление целое число CURL_MAX_WRITE_SIZE;

Тесты показали, что 20К — очень плохой размер буфера для загрузки на Windows, в то время как 16К по какой-то причине работал намного лучше. Мы используем проверку ifndef, чтобы легче было изменить это значение во время сборки для тех, кто захочет поэкспериментировать. Практический минимум — около 400 байт, так как libcurl использует буфер этого размера как рабочую область (не связанную с операциями отправки по сети).

перечисление целое число CURL_MAX_HTTP_HEADER;

Единственная причина для установления максимального ограничения — предотвращение риска передачи плохого сервером бесконечного заголовка libcurl, что приведёт к бесконечной переаллокации.

перечисление целое число CURL_WRITEFUNC_PAUSE;

Это магическое возвращаемое значение для обратного вызова записи, которое, при возвращении, сигнализирует libcurl о паузе приёма на текущей передаче.

псевдоним curl_write_callback = ulong функция(char* buffer, ulong size, ulong nitems, void* outstream);
перечисление CurlFileType: int;

перечисление типов файлов

file
directory
symlink
device_block
device_char
namedpipe
socket
door
unknown

возможно только на Sun Solaris

псевдоним curlfiletype = int;
перечисление CurlFInfoFlagKnown: int;
filename
filetype
time
perm
uid
gid
size
hlinkcount
структура _N2;

Содержимое этой структуры зависит от известной и достижимой информации (например, из парсинга FTP LIST). Обратитесь к странице руководства url_easy_setopt(3) для обратных вызовов, возвращающих эту структуру — некоторые поля обязательны, другие необязательны. Поле FLAG имеет особое значение.

Если некоторые из этих полей не NULL, это указатель на b_data.

char* time;
char* perm;
char* user;
char* group;
char* target;

указатель на целевое имя файла симлинка

структура curl_fileinfo;

Содержимое этой структуры зависит от доступной информации (например, полученной при разборе списка FTP). См. страницу руководства url_easy_setopt(3) для обратных вызовов, возвращающих эту структуру — некоторые поля являются обязательными, а другие — необязательными. Поле FLAG имеет специальное значение.

char* filename;
curlfiletype filetype;
time_t time;
uint perm;
int uid;
int gid;
curl_off_t size;
c_long hardlinks;
_N2 strings;
uint flags;
char* b_data;
size_t b_size;
size_t b_used;
enum CurlChunkBgnFunc: int;

коды возврата для CURLOPT_CHUNK_BGN_FUNCTION

ok
fail

указать библиотеке завершить задачу

skip

пропустить этот фрагмент

alias curl_chunk_bgn_callback = long function(const(void)* transfer_info, void* ptr, int remains);

если разделение передачи данных включено, этот обратный вызов вызывается перед началом загрузки отдельного фрагмента. Обратите внимание, что параметр "remains" работает только для загрузки FTP с подстановкой (на данный момент), в противном случае он не используется

enum CurlChunkEndFunc: int;

коды возврата для CURLOPT_CHUNK_END_FUNCTION

ok
fail
alias curl_chunk_end_callback = long function(void* ptr);

Если разделение передачи данных включено, этот обратный вызов вызывается после завершения загрузки отдельного фрагмента. Важно! После установки этого обратного вызова он должен вызываться ДЛЯ ВСЕХ фрагментов. Даже если загрузка этого фрагмента была пропущена в CHUNK_BGN_FUNC. Это причина, по которой нам не нужен параметр "transfer_info" в этом обратном вызове, и нас тоже не интересует параметр "remains".

enum CurlFnMAtchFunc: int;

коды возврата для FNMATCHFUNCTION

match
nomatch
fail
alias curl_fnmatch_callback = int function(void* ptr, in char* pattern, in char* string);

тип обратного вызова для сопоставления шаблонов при загрузке с подстановкой. Если строка соответствует шаблону, возвращается значение CURL_FNMATCHFUNC_MATCH и т.д.

enum CurlSeekPos: int;

смещение... откуда...

set
current
end
enum CurlSeek: int;

Это коды возврата для обратных вызовов поиска.

ok
fail

завершить всю передачу с ошибкой

cantseek

сообщить libcurl о невозможности поиска, поэтому libcurl может попробовать другие методы вместо этого

alias curl_seek_callback = int function(void* instream, long offset, int origin);
enum CurlReadFunc: int;
abort

Это код возврата для обратного вызова чтения, который, при возврате, сигнализирует libcurl об немедленном прерывании текущей передачи.

pause

Это код возврата для обратного вызова чтения, который, при возврате, сигнализирует libcurl о приостановке отправки данных в текущей передаче.

alias curl_read_callback = ulong function(char* buffer, ulong size, ulong nitems, void* instream);
enum CurlSockType: int;
ipcxn

сокет, созданный для определенного подключения IP

last

никогда не используйте

alias curlsocktype = int;
alias curl_sockopt_callback = int function(void* clientp, socket_t curlfd, int purpose);
struct curl_sockaddr;

addrlen был типа socklen_t до версии 7.18.0, но на системах, где этого типа нет, он стал очень неудобным и проблемным

int family;
int socktype;
int protocol;
uint addrlen;

addrlen был типа socklen_t до версии 7.18.0, но на системах, где этого типа нет, он стал очень неудобным и проблемным

sockaddr addr;
alias curl_opensocket_callback = socket_t function(void* clientp, int purpose, curl_sockaddr* address);
enum CurlIoError: int;
ok

Операция ввода-вывода выполнена успешно

unknowncmd

команда была неизвестна обратным вызовам

failrestart

перезапуск чтения не удался

last

никогда не используйте

alias curlioerr = int;
enum CurlIoCmd: int;
nop

команда была неизвестна обратным вызовам

restartread

перезапуск чтения не удался

last

никогда не используйте

alias curliocmd = int;
alias curl_ioctl_callback = int function(void* handle, int cmd, void* clientp);
alias curl_malloc_callback = void* function(ulong size);

alias curl_free_callback = void function(void* ptr);

alias curl_realloc_callback = void* function(void* ptr, ulong size);

alias curl_strdup_callback = char* function(in char* str);

alias curl_calloc_callback = void* function(ulong nmemb, ulong size);

Следующие определения типов — это сигнатуры функций malloc, free, realloc, strdup и calloc соответственно. Указатели на функции этих типов могут передаваться в функцию curl_global_init_mem() для установки пользовательских обратных вызовов управления памятью.

enum CurlCallbackInfo: int;

вид данных, передаваемых в information_callback

text
header_in
header_out
data_in
data_out
ssl_data_in
ssl_data_out
end
alias curl_infotype = int;
alias curl_debug_callback = int function(void* handle, int type, char* data, ulong size, void* userptr);
enum CurlError: int;

Все возможные коды ошибок от всех типов функций curl. Будущие версии могут возвращать другие значения, будьте готовы.

Всегда добавляйте новые коды возврата в конец. Никогда НИКОГДА не удаляйте любые. Коды возврата должны оставаться неизменными!

ok
неподдерживаемый_протокол

1

неудачная_инициализация

2

неправильный_формат_url

3

не_встроенный

4 - [был устарел в августе 2007 для 7.17.0, повторно использован в апреле 2011 для 7.21.5]

невозможно_разрешить_прокси

5

невозможно_разрешить_хост

6

невозможно_подключиться

7

странный_ответ_сервера_ftp

8

доступ_к_удаленному_ресурсу_запрещён

9 a service was denied by the server due to lack of access - when login fails this is not returned.

устаревший10

10 - НЕ ИСПОЛЬЗУЕТСЯ

странный_ответ_сервера_ftp_на_пароль

11

устаревший12

12 - НЕ ИСПОЛЬЗУЕТСЯ

странный_ответ_сервера_ftp_pasv

13

странный_формат_227_ftp

14

невозможно_получить_хост_ftp

15

устаревший16

16 - НЕ ИСПОЛЬЗУЕТСЯ

невозможно_установить_тип_ftp

17

частичный_файл

18

невозможно_получить_файл_ftp

19

устаревший20

20 - НЕ ИСПОЛЬЗУЕТСЯ

ошибка_команды_quote

21 - ошибка_команды_quote

http_вернул_ошибку

22

ошибка_записи

23

устаревший24

24 - НЕ ИСПОЛЬЗУЕТСЯ

загрузка_неудалась

25 - не удалось загрузить "команду"

ошибка_чтения

26 - не удалось открыть/прочитать файл

недостаточно_памяти

27

операция_превысила_предел_времени
Примечание
CURLE_OUT_OF_MEMORY может иногда указывать на ошибку преобразования вместо ошибки выделения памяти, если определён CURL_DOES_CONVERSIONS
28 - время ожидания истекло
устаревший29

29 - НЕ ИСПОЛЬЗУЕТСЯ

ошибка_порта_ftp

30 - Ошибка операции FTP PORT

ftp_невозможно_использовать_rest

31 - команда REST не выполнена

устаревший32

32 - НЕ ИСПОЛЬЗУЕТСЯ

ошибка_диапазона

33 - команда RANGE не сработала

ошибка_http_post

34

ошибка_подключения_ssl

35 - ошибка при подключении с SSL

ошибка_восстановления_загрузки

36 - не удалось восстановить загрузку

невозможно_прочитать_файл

37

ldap_невозможно_привязаться

38

ldap_поиск_неудался

39

устаревший40

40 - НЕ ИСПОЛЬЗУЕТСЯ

функция_не_найдена

41

прервано_обработчиком

42

неверный_аргумент_функции

43

устаревший44

44 - НЕ ИСПОЛЬЗУЕТСЯ

ошибка_интерфейса

45 - CURLOPT_INTERFACE не удалось

устаревший46

46 - НЕ ИСПОЛЬЗУЕТСЯ

слишком_много_перенаправлений

47 - обнаружены бесконечные циклы перенаправлений

неизвестный_параметр

48 - Пользователь указал неизвестный параметр

неверный_синтаксис_параметра_telnet

49 - Неверный параметр telnet

устаревший50

50 - НЕ ИСПОЛЬЗУЕТСЯ

проверка_подлинности_удалённого_узла_неудалась

51 - проверка подлинности сертификата или отпечатка удалённого узла не удалась

не_получено_данных

52 - когда это конкретная ошибка

криптографический_модуль_ssl_не_найден

53 - криптографический модуль SSL не найден

установка_криптографического_модуля_ssl_неудалась

54 - невозможно установить криптографический модуль SSL в качестве стандартного

ошибка_отправки

55 - ошибка при отправке сетевых данных

ошибка_приёма

56 - ошибка при приёме сетевых данных

устаревший57

57 - НЕ ИСПОЛЬЗУЕТСЯ

проблема_с_сертификатом

58 - проблема с локальным сертификатом

ошибка_шифра_ssl

59 - не удалось использовать указанный шифр

проблема_с_сертификатом_ca

60 - проблема с сертификатом CA (путь?)

неправильное_кодирование_содержимого

61 - Неизвестное кодирование передачи

неверный_url_ldap

62 - Неверный URL LDAP

предел_размера_файла_превышен

63 - Превышен максимальный размер файла

невозможно_использовать_ssl

64 - Не удалось установить требуемый уровень SSL для FTP

ошибка_отправки_с_перемоткой

65 - Отправка данных требует перемотки, которая не удалась

инициализация_криптографического_модуля_ssl_неудалась

66 - Не удалось инициализировать ENGINE

доступ_запрещён

67 - пользователь, пароль или подобные данные не приняты, вход не удался

файл_не_найден_на_сервере

68 - файл не найден на сервере

ошибка_разрешения_tftp

69 - проблема с разрешениями на сервере

диск_сервера_полный

70 - на сервере закончилось место на диске

незаконная_операция_tftp

71 - Незаконная операция TFTP

неизвестный_id_передачи_tftp

72 - Неизвестный идентификатор передачи

файл_уже_существует

73 - Файл уже существует

пользователя_не_существует

74 - Пользователя не существует

преобразование_неудалось

75 - Преобразование не удалось

необходимо_преобразование

76 - вызывающая сторона должна зарегистрировать функции преобразования, используя параметры curl_easy_setopt CURLOPT_CONV_FROM_NETWORK_FUNCTION, CURLOPT_CONV_TO_NETWORK_FUNCTION и CURLOPT_CONV_FROM_UTF8_FUNCTION

ошибка_файла_cacert

77 - не удалось загрузить файл CACERT, отсутствует или неправильный формат

remote_file_not_found

78 - удаленный файл не найден

ssh

79 - ошибка из уровня SSH, довольно общая, поэтому сообщение об ошибке будет интересно, когда это произошло

ssl_shutdown_failed

80 - Не удалось завершить SSL-соединение

again

81 - сокет не готов для отправки/приема, подождите, пока он будет готов, и попробуйте снова (Добавлено в 7.18.2)

ssl_crl_badfile

82 - не удалось загрузить файл CRL, отсутствует или неправильный формат (Добавлено в 7.19.0)

ssl_issuer_error

83 - Проверка издателя не удалась. (Добавлено в 7.19.0)

ftp_pret_failed

84 - команда PRET завершилась ошибкой

rtsp_cseq_error

85 - несоответствие номеров RTSP CSeq

rtsp_session_error

86 - несоответствие идентификаторов сеанса RTSP

ftp_bad_file_list

87 - невозможно разобрать список файлов FTP

chunk_failed

88 - обработчик фрагментов сообщил об ошибке

curl_last

никогда не используйте!

alias CURLcode = int;
alias curl_conv_callback = int function(char* buffer, ulong length);

Этот прототип применим ко всем обратным вызовам преобразования

alias curl_ssl_ctx_callback = int function(void* curl, void* ssl_ctx, void* userptr);

фактически OpenSSL SSL_CTX

enum CurlProxy: int;
http

добавлено в 7.10, новое в 7.19.4 по умолчанию используется CONNECT HTTP/1.1

http_1_0

добавлено в 7.19.4, принудительное использование CONNECT HTTP/1.0

socks4

поддержка добавлена в 7.15.2, перечисление существовало уже в 7.10

socks5

добавлено в 7.10

socks4a

добавлено в 7.18.0

socks5_hostname

Использование протокола SOCKS5, но передача имени хоста вместо IP-адреса. добавлено в 7.18.0

alias curl_proxytype = int;
enum CurlAuth: long;
basic

Основной (по умолчанию)

digest

Digest

gssnegotiate

GSS-Negotiate

ntlm

NTLM

digest_ie

Digest с вариантом IE

only

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

any

все типы установлены

anysafe
enum CurlSshAuth: int;
any

все типы, поддерживаемые сервером

none

ни один не разрешен, глупо, но полностью

publickey

файлы с открытым/закрытым ключом

password

пароль

host

файлы ключей хоста

keyboard

интерактивный ввод с клавиатуры

enum int CURL_ERROR_SIZE;
enum CurlKHType: int;

указывает на строку с нулевым завершением, закодированную в base64, если len равно нулю, иначе на «сырые» данные

unknown
rsa1
rsa
dss
struct curl_khkey;
const(char)* key;

указывает на строку с нулевым завершением, закодированную в base64, если len равно нулю, иначе на «сырые» данные

size_t len;
CurlKHType keytype;
enum CurlKHStat: int;

это набор значений возвращаемых обратным вызовом curl_sshkeycallback

fine_add_to_file
fine
reject

отклонить соединение, вернуть ошибку

defer

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

last

не для использования, только маркер для последнего в списке

enum CurlKHMatch: int;

это набор кодов состояния, передаваемых в обратный вызов

ok

совпадение

mismatch

хост найден, несоответствие ключей!

missing

нет соответствующего хоста/ключа

last

не для использования, только маркер для последнего в списке

alias curl_sshkeycallback = int function(void* easy, const(curl_khkey)* knownkey, const(curl_khkey)* foundkey, CurlKHMatch m, void* clientp);
enum CurlUseSSL: int;

параметр для опции CURLOPT_USE_SSL

none

не пытаться использовать SSL

tryssl

попытаться использовать SSL, в противном случае продолжить

control

SSL для управляющего соединения или ошибка

all

SSL для всей связи или ошибка

last

не опция, никогда не использовать

alias curl_usessl = int;
enum CurlFtpSSL: int;

параметр для опции CURLOPT_FTP_SSL_CCC

ccc_none

не отправлять CCC

ccc_passive

Позволить серверу инициировать завершение

ccc_active

Инициализировать завершение

ccc_last

не опция, никогда не использовать

alias curl_ftpccc = int;
enum CurlFtpAuth: int;

параметр для опции CURLOPT_FTPSSLAUTH

defaultauth

позволить libcurl принять решение

ssl

использовать "AUTH SSL"

tls

использовать "AUTH TLS"

last

не опция, никогда не использовать

alias curl_ftpauth = int;
enum CurlFtp: int;

параметр для опции CURLOPT_FTP_CREATE_MISSING_DIRS

create_dir_none

НЕ создавать отсутствующие каталоги!

create_dir

(FTP/SFTP) если CWD завершается ошибкой, попробуйте MKD, а затем снова CWD, если MKD выполнился успешно; для SFTP выполняется аналогичная магия

create_dir_retry

(только FTP) если CWD завершается ошибкой, попробуйте MKD, а затем снова CWD, даже если MKD завершился ошибкой!

create_dir_last

не опция, никогда не используйте

псевдоним curl_ftpcreatedir = int;
перечисление CurlFtpMethod: int;

параметр для опции CURLOPT_FTP_FILEMETHOD

defaultmethod

позвольте libcurl выбрать

multicwd

одна операция CWD для каждой части пути

nocwd

никакого CWD вообще

singlecwd

одна CWD для полного каталога, затем работа с файлом

last

не опция, никогда не используйте

псевдоним curl_ftpmethod = int;
перечисление CurlProto: int;

CURLPROTO_ определены для опций CURLOPT_*PROTOCOLS

http
https
ftp
ftps
scp
sftp
telnet
ldap
ldaps
dict
file
tftp
imap
imaps
pop3
pop3s
smtp
smtps
rtsp
rtmp
rtmpt
rtmpe
rtmpte
rtmps
rtmpts
gopher
all

включить всё

перечисление int CURLOPTTYPE_LONG;

перечисление int CURLOPTTYPE_OBJECTPOINT;

перечисление int CURLOPTTYPE_FUNCTIONPOINT;

перечисление int CURLOPTTYPE_OFF_T;

целое может быть 32 или 64 бита, но мы никогда не должны зависеть ни от чего, кроме 32

псевдоним LONG = CURLOPTTYPE_LONG;

псевдоним OBJECTPOINT = CURLOPTTYPE_OBJECTPOINT;

псевдоним FUNCTIONPOINT = CURLOPTTYPE_FUNCTIONPOINT;

псевдоним OFF_T = CURLOPTTYPE_OFF_T;

имя заглавными буквами CURLOPT_<имя>, тип — одно из определённых CURLOPTTYPE_<тип> число — уникальный идентификатор

Макрос "##" — это ISO C, предполагается, что пре-ISO C его не поддерживает.

перечисление CurlOption: int;
file

Это FILE * или void *, в который следует записать обычный вывод.

url

Полный URL для получения/загрузки.

port

Номер порта для подключения, если он отличается от стандартного.

proxy

Имя прокси-сервера для использования.

userpwd

"имя:пароль" для использования при получении.

proxyuserpwd

"имя:пароль" для использования с прокси-сервером.

range

Диапазон для получения, указанный в виде ASCII-строки.

infile

не используется

Указанный потоковый файл для загрузки (использовать как вход):

errorbuffer

Буфер для получения сообщений об ошибках, размер которого должен быть не менее CURL_ERROR_SIZE байт. Если он не используется, сообщения об ошибках отправляются в stderr:

writefunction

Функция, которая будет вызываться для хранения вывода (вместо fwrite). Параметры будут использовать синтаксис fwrite(), убедитесь, что следуете ему.

readfunction

Функция, которая будет вызываться для чтения входных данных (вместо fread). Параметры будут использовать синтаксис fread(), убедитесь, что следуете ему.

timeout

Прекратить операцию чтения по истечении этого количества секунд.

infilesize

Если используется CURLOPT_INFILE, это можно использовать для информирования libcurl о фактическом размере отправляемого файла. Это позволяет лучше проверять ошибки и лучше подтверждать успешность загрузки. -1 означает неизвестный размер.

Для поддержки больших файлов также существует большая версия ключа, которая принимает тип off_t, позволяющая платформам с большими размерами off_t обрабатывать файлы большего размера. Смотрите ниже INFILESIZE_LARGE.

postfields

Статические входные поля POST.

referer

Установить страницу ссылки (необходима для некоторых CGIs).

ftpport

Установить строку порта FTP (имя интерфейса, имя или числовой IP-адрес). Используйте, например, '-' для использования стандартного адреса.

useragent

Установить строку User-Agent (проверяется некоторыми CGI).

low_speed_limit

Если скорость загрузки меньше, чем «нижняя граница скорости», байт/секунда в течение «времени низкой скорости», операции прерываются. Например, если у вас очень быстрое соединение, прервитесь, если скорость меньше 2000 байт/сек в течение 20 секунд.

Установить «нижнюю границу скорости»

low_speed_time

Установить «время низкой скорости»

resume_from

Установить смещение продолжения.

Обратите внимание, что существует также большая версия этого ключа, которая использует типы off_t, что позволяет использовать большие смещения файлов на платформах, использующих off_t больше, чем 32 бита. Смотрите ниже RESUME_FROM_LARGE.

cookie

Установить cookie в запросе:

httpheader

Указывает на связанный список заголовков, вид struct curl_slist.

httppost

Указывает на связанный список записей POST, struct curl_httppost.

sslcert

Имя файла, содержащего ваш закрытый сертификат SSL.

keypasswd

Пароль к закрытому ключу SSL или SSH.

crlf

Отправить параметр TYPE?

quote

Отправить связанный список команд QUOTE.

writeheader

Отправить FILE * или void *, в который следует записать заголовки, если вы используете обратный вызов, он просто передается в обратный вызов без изменений.

cookiefile

Указать файл для чтения начальных cookie, также активирует «осознание cookie».

sslversion

Какую версию следует использовать.

timecondition

Какой вид HTTP-условия времени использовать.

timevalue

Время для использования с вышеуказанным условием. Указано в секундах с 1 января 1970 года.

customrequest

Пользовательский запрос для настройки команды GET, например:

HTTP
DELETE, TRACE и другие
FTP
для использования другой команды списка
stderr

HTTP-запрос для нестандартных команд, таких как DELETE, TRACE и другие.

postquote

Отправить связанный список команд QUOTE после передачи.

writeinfo

Передайте указатель на строку вывода, используя полную замену переменных, как описано в другом месте.

verbose

Много говорить.

header

Выбросить и заголовок.

noprogress

Отключить индикатор прогресса.

nobody

Использовать HEAD для получения http-документа.

failonerror

Отсутствие вывода при кодах ошибок HTTP >= 300.

upload

Это загрузка.

post

Метод HTTP POST.

dirlistonly

Возвращать только имена при перечислении каталогов.

append

Добавить вместо перезаписи при загрузке!

netrc

Указывает, следует ли читать имя пользователя и пароль из .netrc или URL. Это должно быть одно из перечислений CURL_NETRC_* ниже.

followlocation

Использовать Location: Luke!

transfertext

Передавать данные в формате text/ASCII.

put

HTTP PUT.

progressfunction

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

progressdata

Данные, передаваемые в обратный вызов прогресса.

autoreferer

Мы хотим, чтобы поле referer автоматически устанавливалось при слежении за расположениями.

proxyport

Порт прокси-сервера, также может быть установлен в строке прокси-сервера следующим образом: [host]:[port]

postfieldsize

Размер входных данных POST, если strlen() не подходит для использования.

httpproxytunnel

Проксировать не-HTTP операции через HTTP-прокси.

intrface

Установить строку интерфейса для использования в качестве исходящего сетевого интерфейса.

krblevel

Установить уровень безопасности krb4/5, это также активирует поддержку krb4/5. Это строка, 'clear', 'safe', 'confidential' или 'private'. Если строка установлена, но не соответствует одному из этих значений, будет использоваться 'private'.

ssl_verifypeer

Указать, следует ли проверять пару в рукопожатии ssl, установите 1 для проверки.

cainfo

CApath или CAfile, используемые для проверки сертификата пары. Этот параметр используется только если SSL_VERIFYPEER имеет значение true.

maxredirs

Максимальное количество HTTP-перенаправлений для следования.

filetime

Передайте значение 1 для получения даты запрошенного документа (если это возможно)! Передайте ноль, чтобы отключить.

telnetoptions

Указывает на связанный список параметров telnet.

maxconnects

Максимальное количество кэшированных активных подключений.

closepolicy

Политика закрытия подключений при заполнении кэша.

fresh_connect

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

forbid_reuse

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

random_file

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

egdsocket

Установите путь к сокету демона сбора энтропии (Entropy Gathering Daemon).

connecttimeout

Отключить операции подключения после указанного количества секунд, если подключения успешны в течение этого времени, всё хорошо... Это прерывает только фазу подключения. [Работает только на операционных системах типа Unix/SIGALRM]

headerfunction

Функция, которая будет вызываться для хранения заголовков (вместо fwrite). Параметры будут использовать синтаксис fwrite(), убедитесь, что следуете ему.

httpget

Установите это значение, чтобы принудительно установить HTTP-запрос в GET. Используется только в том случае, если ранее были использованы POST, PUT или пользовательский запрос.

ssl_verifyhost

Установите значение, если необходимо проверять общее имя из сертификата узла при ssl-handshake. Установите 1 для проверки существования, 2 для обеспечения соответствия предоставленному имени хоста.

cookiejar

Укажите имя файла, в который будут записаны все известные куки после завершения операции. Установите имя файла в «-» (тире), чтобы записать их в стандартный вывод.

ssl_cipher_list

Укажите, какие SSL-шифры использовать.

http_version

Укажите, какую версию HTTP использовать! Это значение должно быть одним из перечислений CURL_HTTP_VERSION*, заданных ниже.

ftp_use_epsv

Включить или выключить использование команды EPSV для FTP-модуля. По умолчанию эта команда всегда будет попытана перед более традиционной командой PASV.

sslcerttype

Тип файла, содержащего ваш SSL-сертификат ("DER", "PEM", "ENG")

sslkey

Имя файла, содержащего ваш закрытый SSL-ключ.

sslkeytype

Тип файла, содержащего ваш закрытый SSL-ключ ("DER", "PEM", "ENG")

sslengine

Криптографический модуль для SSL-подсистемы.

sslengine_default

Установить криптографический модуль для SSL-подсистемы по умолчанию. Параметр не имеет смысла...

dns_use_global_cache

Значение отличное от нуля означает использование глобального кэша DNS.

dns_cache_timeout

Время ожидания кэша DNS.

prequote

Отправить связанный список команд QUOTE перед передачей.

debugfunction

Установить функцию отладки.

debugdata

Установить данные для функции отладки.

cookiesession

Отметить начало сессии куки.

capath

Директория CApath, используемая для проверки сертификата узла. Этот параметр используется только если SSL_VERIFYPEER равен true.

buffersize

Указать libcurl использовать меньший буфер приема.

nosignal

Указать libcurl не использовать обработчики сигналов/прерываний, даже при использовании таймаутов. Этот параметр полезен для многопоточных приложений. Подробнее см. в libcurl-the-guide.

share

Предоставить CURLShare для взаимного исключения данных не из ts.

proxytype

Указывает тип прокси. Допустимые значения: CURLPROXY_HTTP (по умолчанию), CURLPROXY_SOCKS4, CURLPROXY_SOCKS4A и CURLPROXY_SOCKS5.

encoding

Установить строку Accept-Encoding. Используйте этот параметр, чтобы указать серверу, что вы хотите сжатие ответа.

private_opt

Установить указатель на частные данные.

http200aliases

Указать псевдонимы для HTTP 200 в заголовке HTTP-ответа.

unrestricted_auth

Продолжать отправлять аутентификацию (логин+пароль) при переходе по ссылкам, даже если изменилось имя хоста. Это может привести к отправке имени и пароля на любой хост, который сервер решит.

ftp_use_eprt

Включить или выключить использование команды EPRT для FTP-модуля (также отключает попытку LPRT). По умолчанию эти команды всегда будут попытаны перед традиционной командой PORT.

httpauth

Установите значение в виде битовой маски для включения определённых методов аутентификации. Используйте этот параметр вместе с CURLOPT_USERPWD. Обратите внимание, что установка нескольких битов может привести к дополнительным запросам к сети.

ssl_ctx_function

Установить функцию обратного вызова для ssl-контекста, в данный момент только для OpenSSL ssl_ctx во втором аргументе. Функция должна соответствовать прототипу curl_ssl_ctx_callback.

ssl_ctx_data

Установить пользовательские данные для третьего аргумента функции обратного вызова ssl-контекста.

ftp_create_missing_dirs

FTP-параметр, который создаёт отсутствующие каталоги на удалённом сервере. В версии 7.19.4 мы добавили удобные перечисления для этого параметра, используя префикс CURLFTP_CREATE_DIR.

proxyauth

Установите значение в виде битовой маски для включения определённых методов аутентификации. Используйте этот параметр вместе с CURLOPT_PROXYUSERPWD. Обратите внимание, что установка нескольких битов может привести к дополнительным запросам к сети.

ftp_response_timeout

FTP-параметр, который изменяет время ожидания ответа в секундах. Отличается от времени ожидания передачи и в основном устанавливает требование к FTP-серверу подтвердить команды в разумные сроки.

ipresolve

Установите этот параметр в одно из значений CURL_IPRESOLVE_* (см. ниже), чтобы указать libcurl разрешать имена только для указанных версий IP. Это имеет эффект только на системах, поддерживающих более одной версии IP, например IPv4 и IPv6.

maxfilesize

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

Обратите внимание, что есть также версия LARGE, которая добавляет поддержку больших файлов для платформ с большими размерами off_t. См. MAXFILESIZE_LARGE ниже.

infilesize_large

См. комментарий к INFILESIZE выше, но коротко – указывает размер загружаемого файла. -1 означает неизвестно.

resume_from_large

Устанавливает смещение продолжения. Есть также версия LONG этого параметра; см. выше RESUME_FROM.

maxfilesize_large

Устанавливает максимальный размер данных, которые будут загружены с HTTP- или FTP-сервера. См. MAXFILESIZE выше для версии LONG.

netrc_file

Установите этот параметр в имя файла .netrc, который вы хотите, чтобы libcurl проанализировал (используя параметр CURLOPT_NETRC). Если не задано, libcurl будет пытаться найти домашний каталог пользователя и проверить наличие файла .netrc в нём.

use_ssl

Включить SSL/TLS для FTP, выберите одно из: CURLFTPSSL_TRY – попробовать использовать SSL, продолжить в противном случае; CURLFTPSSL_CONTROL – SSL для контрольного соединения или отказ; CURLFTPSSL_ALL – SSL для всех соединений или отказ.

postfieldsize_large

Версия LARGE стандартного параметра POSTFIELDSIZE.

tcp_nodelay

Включить/отключить алгоритм TCP Nagle.

ftpsslauth

Когда выбрано FTP с SSL/TLS (с помощью CURLOPT_USE_SSL), этот параметр может быть использован для изменения поведения libcurl, которое по умолчанию сначала пытается «AUTH SSL», а затем «AUTH TLS» в этом порядке и продолжает, когда получен ответ OK.

Доступные параметры: CURLFTPAUTH_DEFAULT – позволить libcurl принять решение; CURLFTPAUTH_SSL – попробовать «AUTH SSL» сначала, затем TLS; CURLFTPAUTH_TLS – попробовать «AUTH TLS» сначала, затем SSL.

ioctlfunction
ioctldata
ftp_account

строка с нулевым завершением для передачи на FTP-сервер при запросе информации об «аккаунте»

cookielist

подача куки в движок куки

ignore_content_length

игнорировать Content-Length

ftp_skip_pasv_ip

Установите ненулевое значение, чтобы пропустить IP-адрес, полученный в ответе FTP-сервера 227 PASV. Обычно используется для целей FTP-SSL, но не ограничивается этим. libcurl затем будет вместо этого использовать тот же IP-адрес, который использовался для управляющего подключения.

ftp_filemethod

Выберите «метод файла», который нужно использовать при выполнении FTP, см. curl_ftpmethod выше.

localport

Номер локального порта для привязки сокета

localportrange

Количество портов для попыток, включая первый, установленный с LOCALPORT. Таким образом, установка его в 1 не будет выполнять дополнительных попыток, кроме первой.

connect_only

нет передачи, установить соединение и позволить приложению использовать сокет, извлекая его с помощью CURLINFO_LASTSOCKET

conv_from_network_function

Функция, которая будет вызываться для преобразования из кодировки сети (вместо использования вызовов iconv в libcurl)

conv_to_network_function

Функция, которая будет вызываться для преобразования в кодировку сети (вместо использования вызовов iconv в libcurl)

conv_from_utf8_function

Функция, которая будет вызываться для преобразования из UTF8 (вместо использования вызовов iconv в libcurl). Обратите внимание, что это используется только для обработки сертификатов SSL

max_send_speed_large

max_recv_speed_large

Если соединение происходит слишком быстро, то его нужно замедлить

limit-rate: максимальное количество байтов в секунду для отправки или получения

ftp_alternative_to_user

Указатель на строку команды для отправки, если USER/PASS не удалось.

sockoptfunction

обработчик функций для установки параметров сокета

ssl_sessionid_cache

Установите значение 0, чтобы отключить повторное использование идентификатора сеанса для этой передачи, по умолчанию включено (== 1)

ssh_auth_types

допустимые методы аутентификации SSH

ssh_public_keyfile

Используется scp/sftp для аутентификации с открытым/закрытым ключом

ftp_ssl_ccc

Отправка CCC (Clear Command Channel) после аутентификации

timeout_ms

connecttimeout_ms

То же, что TIMEOUT и CONNECTTIMEOUT, но с разрешением в мс

http_transfer_decoding

http_content_decoding

Установите значение 0, чтобы отключить декодирование libcurl и тем самым передать необработанные данные тела приложения, даже если оно закодировано/сжато

new_file_perms

new_directory_perms

Права доступа, используемые при создании новых файлов и каталогов на удаленном сервере для протоколов, которые их поддерживают, SFTP/SCP/FILE

postredir

Установите поведение POST при перенаправлении. Значения должны быть установлены на одно из определений CURL_REDIR* ниже. Раньше это называлось CURLOPT_POST301

ssh_host_public_key_md5

используется scp/sftp для проверки открытого ключа хоста

opensocketfunction

opensocketdata

Функция обратного вызова для открытия сокета (вместо socket(2)). Дополнительно обработчик может изменить адрес или отказаться от подключения, возвращая CURL_SOCKET_BAD. Обработчик должен иметь тип curl_opensocket_callback

copypostfields

Переменные ввода POST, зависящие от времени.

proxy_transfer_mode

установить режим передачи (;type=<a|i>) при выполнении FTP через HTTP-прокси

seekfunction

seekdata

Функция обратного вызова для поиска в потоке ввода

crlfile

файл CRL

issuercert

сертификат изготовителя

address_scope

(IPv6) Область адреса

certinfo

Сбор информации о цепочке сертификатов и предоставление возможности получить её с помощью CURLINFO_CERTINFO после завершения передачи. (К сожалению) работает только с сборками, поддерживающими OpenSSL.

username

password

«имя» и «пароль» для использования при извлечении.

proxyusername

proxypassword

«имя» и «пароль» для использования с прокси при извлечении.

noproxy

Список хостов, разделённый запятыми, определяющий зоны без прокси. Они должны соответствовать как прямым именам хостов, так и именам хостов в домене. Например, local.com будет соответствовать local.com и www.local.com, но НЕ notlocal.com или www.notlocal.com. Для совместимости с другими реализациями этого, .local.com будет рассматриваться как то же самое, что и local.com. Единственный допустимый символ подстановки — * , и он фактически отключает использование прокси.

tftp_blksize

размер блока для TFTP-передач

socks5_gssapi_service

Сервис SOCKS

socks5_gssapi_nec

Сервис SOCKS

protocols

установка битовой маски для протоколов, которые разрешено использовать для передачи, что помогает приложению, которое получает URL от пользователей или других внешних источников и хочет ограничить, с какими протоколами взаимодействовать. По умолчанию установлено значение CURLPROTO_ALL.

redir_protocols

установка битовой маски для протоколов, которые libcurl разрешено следовать, как подмножество CURLOPT_PROTOCOLS. Это означает, что протокол должен быть установлен в обеих битовых масках, чтобы ему было разрешено перенаправление. По умолчанию все протоколы, кроме FILE и SCP.

ssh_knownhosts

установка имени файла SSH knownhost

ssh_keyfunction

установка обработчика ключей хоста SSH, должен указывать на функцию curl_sshkeycallback

ssh_keydata

установка пользовательского указателя обработчика ключей хоста SSH

mail_from

установка отправителя почты SMTP

mail_rcpt

установка получателя(ей) почты SMTP

ftp_use_pret
FTP
отправка PRET перед PASV
rtsp_request

метод запроса RTSP (OPTIONS, SETUP, PLAY и т.д.)

rtsp_session_id

Идентификатор сеанса RTSP

rtsp_stream_uri

URI потока RTSP

rtsp_transport

Заголовок Transport: для использования в запросах RTSP

rtsp_client_cseq

Вручную инициализировать RTSP CSeq клиента для этого обработчика

rtsp_server_cseq

Вручную инициализировать RTSP CSeq сервера для этого обработчика

interleavedata

Поток, передаваемый INTERLEAVEFUNCTION.

interleavefunction

Разрешить приложению определить пользовательский метод записи для данных RTP

wildcardmatch

Включить сопоставление по шаблонам

chunk_bgn_function

Обратный вызов для сопоставления каталога, вызываемый перед началом загрузки отдельного файла (куска)

chunk_end_function

Обратный вызов для сопоставления каталога, вызываемый после загрузки файла (куска) или его пропуска

fnmatch_function

Изменение обратного вызова сопоставления (типа fnmatch) для сопоставления с подстановкой

chunk_data

Позволяет приложению определить указатель на пользовательские данные куска

fnmatch_data

Указатель пользователя FNMATCH_FUNCTION

resolve

отправка связанного списка наборов имя:порт:адрес

tlsauth_username

Устанавливает имя пользователя для аутентифицированного TLS

tlsauth_password

Устанавливает пароль для аутентифицированного TLS

tlsauth_type

Устанавливает тип аутентификации для аутентифицированного TLS

lastentry

последний неиспользованный

writedata

readdata

headerdata

rtspheader

удобный псевдоним

псевдоним CURLoption = int;
перечисление CurlOption CURLOPT_SERVER_RESPONSE_TIMEOUT;
перечисление CurlIpResolve: int;

Ниже приведены определения для опции CURLOPT_IPRESOLVE. Если имя хоста разрешает адреса, используя более одной версии IP-протокола, эта опция может быть полезна для принудительного использования libcurl определённой версии IP.

whatever

по умолчанию, разрешает адреса для всех версий IP, разрешённых вашей системой

v4

разрешение для адресов IPv4

v6

разрешение для адресов IPv6

перечисление CurlOption CURLOPT_WRITEDATA;

перечисление CurlOption CURLOPT_READDATA;

перечисление CurlOption CURLOPT_HEADERDATA;

перечисление CurlOption CURLOPT_RTSPHEADER;

три удобных "псевдонима", которые лучше соответствуют схеме имён

перечисление CurlHttpVersion: int;

Эти перечисления предназначены для использования с опцией CURLOPT_HTTP_VERSION.

none

установка этого значения означает, что нас это не интересует, и мы хотим, чтобы библиотека выбрала для нас наилучший вариант!

v1_0

пожалуйста, используйте HTTP 1.0 в запросе

v1_1

пожалуйста, используйте HTTP 1.1 в запросе

last

НЕЗАКОННАЯ версия http

перечисление CurlRtspReq: int;

Общедоступные перечисления API для запросов RTSP

none
options
describe
announce
setup
play
pause
teardown
get_parameter
set_parameter
record
receive
last
перечисление CurlNetRcOption: int;

Эти перечисления предназначены для использования с опцией CURLOPT_NETRC.

ignored

Файл .netrc никогда не будет читаться. Это значение по умолчанию.

optional

Имя пользователя:пароль в URL будет предпочтительнее, чем в файле .netrc.

required

Имя пользователя:пароль в URL будет проигнорирован. Если не задан программно, будет запрошен файл .netrc.

last
перечисление CurlSslVersion: int;
default_version
tlsv1
sslv2
sslv3
last

никогда не использовать

перечисление CurlTlsAuth: int;
none
srp
last

никогда не использовать

перечисление CurlRedir: int;

символы для использования с CURLOPT_POSTREDIR. CURL_REDIR_POST_301 и CURL_REDIR_POST_302 могут быть побитово объединены, так что CURL_REDIR_POST_301 | CURL_REDIR_POST_302 == CURL_REDIR_POST_ALL

get_all
post_301
post_302
post_all
перечисление CurlTimeCond: int;
none
ifmodsince
ifunmodsince
lastmod
last
псевдоним curl_TimeCond = int;
int curl_strequal(in const(char)* s1, in const(char)* s2);

curl_strequal() и curl_strnequal() могут быть удалены в будущей версии libcurl, см. lib/README.curlx для подробностей

int curl_strnequal(in const(char)* s1, in const(char)* s2, size_t n);

то же самое

curl_strequal() и curl_strnequal() могут быть удалены в будущей версии libcurl, см. lib/README.curlx для подробностей

структура curl_forms;

структура, используемая в качестве параметра для CURLFORM_ARRAY

CURLformoption option;
const(char)* value;
перечисление CurlFormAdd: int;

Используйте это для создания многочастного формового POST

Возвращает код для curl_formadd()

Возвращает:
  • CURL_FORMADD_OK при успехе
  • CURL_FORMADD_MEMORY, если выделение памяти для FormInfo не удалось
  • CURL_FORMADD_OPTION_TWICE, если одна опция задана дважды для одной формы
  • CURL_FORMADD_NULL, если был передан нулевой указатель для char
  • CURL_FORMADD_MEMORY, если выделение памяти для структуры FormInfo не удалось
  • CURL_FORMADD_UNKNOWN_OPTION, если была использована неизвестная опция
  • CURL_FORMADD_INCOMPLETE, если какая-то структура FormInfo не завершена (или ошибка)
  • CURL_FORMADD_MEMORY, если не удалось выделить память для структуры curl_httppost
  • CURL_FORMADD_MEMORY, если не удалось выделить память для копирования строки
  • CURL_FORMADD_ILLEGAL_ARRAY, если в массиве используется незаконная опция
ok

первым делом, без ошибок

memory
option_twice
null_ptr
unknown_option
incomplete
illegal_array
disabled

libcurl был скомпилирован с отключением этой функции

last
псевдоним CURLFORMcode = int;
CURLFORMcode curl_formadd(curl_httppost** httppost, curl_httppost** last_post, ...);
Имя
curl_formadd()
Описание
Довольно продвинутая функция для создания многочастных форм отправки. Каждый вызов добавляет одну часть, которая вместе формирует полное сообщение. Затем используйте CURLOPT_HTTPPOST для отправки его в libcurl.
псевдоним curl_formget_callback = extern (C) ulong function(void* arg, in char* buf, ulong len);

функция обратного вызова для curl_formget() Указатель void *arg будет тем, который был передан в качестве второго аргумента функции curl_formget(). Буфер символов, переданный в него, не должен освобождаться. При успешном выполнении должно возвращаться значение длины буфера, переданное в качестве аргумента "len".

int curl_formget(curl_httppost* form, void* arg, curl_formget_callback append);
Имя
curl_formget()
Описание
Сериализация структуры curl_httppost, созданной с помощью curl_formadd(). Принимает указатель на void в качестве второго аргумента, который будет передан функции curl_formget_callback. При успешном выполнении возвращает 0.
void curl_formfree(curl_httppost* form);
Имя
curl_formfree()
Описание
Освобождение многочастной формы, предварительно созданной с помощью curl_formadd().
char* curl_getenv(in const(char)* variable);
Имя
curl_getenv()
Описание
Возвращает строку, выделенную с помощью malloc(), КОТОРУЮ НЕОБХОДИМО освободить с помощью curl_free() после завершения использования. УСТАРЕВШАЯ функция — см. lib/README.curlx
char* curl_version();
Имя
curl_version()
Описание
Возвращает статическую строку ASCII с версией libcurl.
char* curl_easy_escape(CURL* handle, in const(char)* string, int length);
Имя
curl_easy_escape()
Описание
Экранирование строк URL (преобразование всех символов, считающихся недопустимыми в URL, в их %XX версии). Эта функция возвращает новую выделенную строку или NULL в случае ошибки.
char* curl_escape(in const(char)* string, int length);

предыдущая версия:

char* curl_easy_unescape(CURL* handle, in const(char)* string, int length, int* outlength);
Имя
curl_easy_unescape()
Описание
Раскрашивание кодировки URL в строках (преобразование всех кодов %XX в их 8-битные версии). Эта функция возвращает новую выделенную строку или NULL в случае ошибки. Примечание по преобразованию: на платформах, отличных от ASCII, коды ASCII %XX преобразуются в кодировку хоста.
char* curl_unescape(in const(char)* string, int length);

предыдущая версия

void curl_free(void* p);
Имя
curl_free()
Описание
Предоставлено для освобождения в том же блоке трансляции, что и выделение. Добавлено в libcurl 7.10
CURLcode curl_global_init(c_long flags);
Имя
curl_global_init()
Описание
curl_global_init() должен быть вызван ровно один раз для каждого приложения, использующего libcurl, и до любого вызова других функций libcurl.
Эта функция не потокобезопасна!
CURLcode curl_global_init_mem(c_long flags, curl_malloc_callback m, curl_free_callback f, curl_realloc_callback r, curl_strdup_callback s, curl_calloc_callback c);
Имя
curl_global_init_mem()
Описание
curl_global_init() или curl_global_init_mem() должны быть вызваны ровно один раз для каждого приложения, использующего libcurl. Эта функция может использоваться для инициализации libcurl и задания функций обратного вызова управления памятью, определенных пользователем. Пользователи могут реализовывать процедуры управления памятью для проверки утечек памяти, проверки неправильного использования библиотеки curl и т. д. Зарегистрированные пользователем функции обратного вызова будут вызываться этой библиотекой вместо системных процедур управления памятью, таких как malloc, free и т. д.
void curl_global_cleanup();
Имя
curl_global_cleanup()
Описание
curl_global_cleanup() должен быть вызван ровно один раз для каждого приложения, использующего libcurl
struct curl_slist;

структура связанного списка для параметра CURLOPT_QUOTE (и других)

curl_slist* curl_slist_append(curl_slist*, in const(char)*);
Имя
curl_slist_append()
Описание
Добавляет строку в связанный список. Если список отсутствует, он будет создан в первую очередь. Возвращает новый список после добавления.
структура связанного списка для параметра CURLOPT_QUOTE (и других)
void curl_slist_free_all(curl_slist*);
Имя
curl_slist_free_all()
Описание
освободить предварительно созданный curl_slist.
структура связанного списка для параметра CURLOPT_QUOTE (и других)
time_t curl_getdate(const(char)* p, const(time_t)* unused);
Имя
curl_getdate()
Описание
Возвращает время в секундах с 1 января 1970 года для заданной в первом аргументе строки времени. Аргумент времени во втором параметре не используется и должен быть установлен в NULL.
структура связанного списка для параметра CURLOPT_QUOTE (и других)
struct curl_certinfo;

информация о цепочке сертификатов, только для сборок OpenSSL. Запрашивается с помощью CURLOPT_CERTINFO / CURLINFO_CERTINFO

структура связанного списка для параметра CURLOPT_QUOTE (и других)

int num_of_certs;

количество сертификатов с информацией

curl_slist** certinfo;

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

перечисление int CURLINFO_STRING;
перечисление int CURLINFO_LONG;
перечисление int CURLINFO_DOUBLE;
перечисление int CURLINFO_SLIST;
перечисление int CURLINFO_MASK;
перечисление int CURLINFO_TYPEMASK;
перечисление CurlInfo: int;
none
effective_url
response_code
total_time
время_разрешения_имени
время_соединения
время_до_передачи
объем_загрузки
объем_загрузки
скорость_загрузки
скорость_загрузки
размер_заголовка
размер_запроса
результат_проверки_SSL
время_файла
длина_контента_загрузки
длина_контента_загрузки
время_начала_передачи
тип_контента
время_перенаправления
количество_перенаправлений
приватная_информация
код_соединения_HTTP
доступность_аутентификации_HTTP
доступность_аутентификации_прокси
ошибка_ОС
число_соединений
движки_SSL
список_куки
последний_сокет
путь_входа_FTP
URL_перенаправления
основной_IP
время_присоединения_приложения
информация_о_сертификате
невыполненное_условие
идентификатор_сессии_RTSP
cseq_клиента_RTSP
cseq_сервера_RTSP
полученный_cseq_RTSP
основной_порт
локальный_IP
локальный_порт
последний

Заполните новые записи ниже!

alias CURLINFO = int;
enum CurlInfo CURLINFO_HTTP_CODE;

CURLINFO_RESPONSE_CODE — новое имя для опции, ранее известной как CURLINFO_HTTP_CODE

enum CurlClosePolicy: int;
none
наиболее_старый
наименее_актуальный
наименьший_трафик
самый_медленный
обратный_вызов
последний
alias curl_closepolicy = int;
enum CurlGlobal: int;
ssl
win32
все
ничего
по_умолчанию

все

enum CurlLockData: int;

Установка определений, прототипов и т.д. для совместного использования.

Различные блокировки данных для одного совместного использования.

none
обмен

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

cookie
DNS
сессия_SSL
соединение
последний
alias curl_lock_data = int;
enum CurlLockAccess: int;

Различные типы доступа к блокировке.

none

неопределенное действие

совместный_доступ

возможно для чтения

одиночный

возможно для записи

последний

никогда не использовать

alias curl_lock_access = int;
alias curl_lock_function = void function(void* handle, int data, int locktype, void* userptr);
alias curl_unlock_function = void function(void* handle, int data, void* userptr);
alias CURLSH = void;
enum CurlShError: int;
ok

все_хорошо

неправильная_опция

1

в_использовании

2

неверный

3

недостаточно_памяти

нет_памяти

последний

никогда не использовать

alias CURLSHcode = int;
enum CurlShOption: int;

передать указатель на пользовательские данные, используемые в функциях обратного вызова блокировки/разблокировки

none

не_использовать

обмен

указать тип данных для обмена

отмена_обмена

указать, какие данные не следует обменивать

lockfunc

передать указатель на 'curl_lock_function'

unlockfunc

передать указатель на 'curl_unlock_function'

userdata

передать указатель на пользовательские данные, используемые в функциях обратного вызова блокировки/разблокировки

последний

никогда не использовать

alias CURLSHoption = int;
CURLSH* curl_share_init();
CURLSHcode curl_share_setopt(CURLSH*, CURLSHoption option, ...);
CURLSHcode curl_share_cleanup(CURLSH*);
enum CurlVer: int;

Структуры для запроса информации о библиотеке curl во время выполнения.

первый
второй
третий
четвертый
последний
alias CURLversion = int;
enum CurlVer CURLVERSION_NOW;

Символическое имя 'CURLVERSION_NOW' предназначено для использования практически всеми программами, которые хотят получить информацию о версии. Оно должно быть встроенным номером версии для того типа структуры, который ожидает вызывающая сторона. Если структура когда-либо изменится, мы переопределяем NOW на другой перечисление из вышеперечисленных.

struct _N28;
CURLversion age;

возраст возвращаемой структуры

const(char)* version_;

LIBCURL_VERSION

uint version_num;

LIBCURL_VERSION_NUM

const(char)* host;

ОС/хост/cpu/машина при конфигурации

int features;

побитовая маска, см. определения ниже

const(char)* ssl_version;

человекочитаемая строка

c_long ssl_version_num;

больше не используется, всегда 0

const(char)* libz_version;

человекочитаемая строка

const(char)** protocols;

protocols завершается записью с NULL protoname

const(char)* ares;

Поля ниже были добавлены в CURLVERSION_SECOND

const(char)* libidn;

Это поле было добавлено в CURLVERSION_THIRD

int iconv_ver_num;

Эти поля были добавлены в CURLVERSION_FOURTH. То же самое, что и 'libiconv_version', если построено с HAVE_ICONV

const(char)* libssh_version;

человекочитаемая строка

alias curl_version_info_data = _N28;
enum CurlVersion: int;
ipv6

IPv6-включен

kerberos4

поддерживается аутентификация kerberos

ssl

настроены параметры SSL

libz

присутствуют функции libz

ntlm

поддерживается аутентификация NTLM

gssnegotiate

поддержка аутентификации Negotiate

dbg

построено с возможностями отладки

asynchdns

асинхронные разрешения DNS

spnego

аутентификация SPNEGO

largefile

поддерживает файлы размером более 2 ГБ

idn

Поддержка международных доменных имён

sspi

Поддерживается SSPI

conv

поддержка преобразований символов

curldebug

поддержка отслеживания памяти отладки

tlsauth_srp

поддерживается аутентификация TLS-SRP

curl_version_info_data* curl_version_info(CURLversion);
Имя
curl_version_info()
Описание
Эта функция возвращает указатель на статическую копию структуры с информацией о версии. См. выше.
const(char)* curl_easy_strerror(CURLcode);
Имя
curl_easy_strerror()
Описание
Функция curl_easy_strerror может использоваться для преобразования значения CURLcode в эквивалентную человекочитаемую строку ошибки. Это полезно для вывода осмысленных сообщений об ошибках.
const(char)* curl_share_strerror(CURLSHcode);
Имя
curl_share_strerror()
Описание
Функция curl_share_strerror может использоваться для преобразования значения CURLSHcode в эквивалентную человекочитаемую строку ошибки. Это полезно для вывода осмысленных сообщений об ошибках.
CURLcode curl_easy_pause(CURL* handle, int bitmask);
Имя
curl_easy_pause()
Описание
Функция curl_easy_pause приостанавливает или возобновляет передачи. Выберите новое состояние, установив битовую маску, используйте удобные определения ниже.
enum CurlPause: int;
recv
recv_cont
send
send_cont
all
cont
CURL* curl_easy_init();
CURLcode curl_easy_setopt(CURL* curl, CURLoption option, ...);
CURLcode curl_easy_perform(CURL* curl);
void curl_easy_cleanup(CURL* curl);
CURLcode curl_easy_getinfo(CURL* curl, CURLINFO info, ...);
Имя
curl_easy_getinfo()
Описание
Получите внутреннюю информацию из сеанса curl с помощью этой функции. Третий аргумент ОБЯЗАТЕЛЬНО должен быть указателем на long, указатель на char * или указатель на double (как описано в документации в другом месте). Указанный данные будут заполнены соответствующим образом и можно полагаться на них только если функция возвращает CURLE_OK. Эта функция предназначена для использования ПОСЛЕ завершенной передачи, все результаты этой функции неопределены до завершения передачи.
CURL* curl_easy_duphandle(CURL* curl);
Имя
curl_easy_duphandle()
Описание
Создает новый обработчик сеанса curl с теми же настройками, что и у переданного обработчика. Дублирование обработчика может только клонировать данные и параметры, внутренняя информация о состоянии и такие вещи, как сохраняемые соединения, не могут быть переданы. Полезно в многопоточных приложениях, когда вы можете запустить curl_easy_duphandle() для каждого нового потока, чтобы избежать серии одинаковых вызовов curl_easy_setopt() в каждом потоке.
void curl_easy_reset(CURL* curl);
Имя
curl_easy_reset()
Описание
Переинициализирует обработчик CURL до значений по умолчанию. Это возвращает обработчик в то же состояние, что и при его создании.
Он сохраняет: активные соединения, кэш идентификаторов сеанса, кэш DNS и куки.
CURLcode curl_easy_recv(CURL* curl, void* buffer, size_t buflen, size_t* n);
Имя
curl_easy_recv()
Описание
Принимает данные из сокета. Используйте после успешного curl_easy_perform() с параметром CURLOPT_CONNECT_ONLY.
CURLcode curl_easy_send(CURL* curl, void* buffer, size_t buflen, size_t* n);
Имя
curl_easy_send()
Описание
Отправляет данные по сокету. Используйте после успешного curl_easy_perform() с параметром CURLOPT_CONNECT_ONLY.
alias CURLM = void;
enum CurlM: int;
call_multi_perform

пожалуйста, скоро вызовите curl_multi_perform() или curl_multi_socket*()

ok
bad_handle

переданный обработчик не является допустимым CURLM обработчиком

bad_easy_handle

обработчик easy не был корректным/допустимым

out_of_memory

если вы когда-либо получите это, вы попали в беду

internal_error

это ошибка libcurl

bad_socket

переданный аргумент сокета не соответствует

unknown_option

curl_multi_setopt() с неподдерживаемым параметром

last
alias CURLMcode = int;
enum CurlM CURLM_CALL_MULTI_SOCKET;

просто для улучшения кода при использовании curl_multi_socket(), вы теперь можете проверить CURLM_CALL_MULTI_SOCKET тоже в том же стиле, как это работает для curl_multi_perform() и CURLM_CALL_MULTI_PERFORM

enum CurlMsg: int;
none
done

Обработка завершена. 'result' содержит код CURL перевода.

last

Не используется

alias CURLMSG = int;
union _N31;
void* whatever;

Данные, специфичные для сообщения.

CURLcode result;

Код возврата перевода.

struct CURLMsg;
CURLMSG msg;

Значение этого сообщения.

CURL* easy_handle;

Обработка, к которой относится сообщение.

_N31 data;
CURLM* curl_multi_init();
Имя
curl_multi_init()
Описание
Инициализирует использование curl в многопоточном режиме.
Возвращаемое значение:
Новый дескриптор CURLM для использования во всех функциях «curl_multi».
CURLMcode curl_multi_add_handle(CURLM* multi_handle, CURL* curl_handle);
Имя
curl_multi_add_handle()
Описание
Добавляет стандартную обработку curl в многопоточную стопку.
Возвращаемое значение:
Тип CURLMcode, общий код ошибки многопоточного режима.
CURLMcode curl_multi_remove_handle(CURLM* multi_handle, CURL* curl_handle);
Имя
curl_multi_remove_handle()
Описание
Удаляет обработку curl из многопоточной стопки.
Возвращаемое значение:
Тип CURLMcode, общий код ошибки многопоточного режима.
alias fd_set = int;
Имя
curl_multi_fdset()
Описание
Получает наборы fd_set от curl. Приложение может использовать их для select() или poll(). Мы хотим, чтобы curl_multi_perform() вызывался, как только один из них будет готов.
Возвращаемое значение:
Тип CURLMcode, общий код ошибки многопоточного режима. Временное объявление
CURLMcode curl_multi_fdset(CURLM* multi_handle, fd_set* read_fd_set, fd_set* write_fd_set, fd_set* exc_fd_set, int* max_fd);
CURLMcode curl_multi_perform(CURLM* multi_handle, int* running_handles);
Имя
curl_multi_perform()
Описание
Когда приложение считает, что есть доступные данные для curl, оно вызывает эту функцию, чтобы прочитать/записать все имеющиеся данные. Она возвращается, как только чтение и запись завершены. Эта функция не требует, чтобы фактически были доступны данные для чтения или записи, её можно вызывать просто на всякий случай. Она возвращает количество обработок, которые всё ещё передают данные в указателе на целое число во втором аргументе.
Возвращаемое значение:
Тип CURLMcode, общий код ошибки многопоточного режима. ЗАМЕЧАНИЕ, что она возвращает только ошибки и т.п. по всей многопоточной стопке. Могли возникнуть проблемы с индивидуальными переводами, даже если она вернула OK.
CURLMcode curl_multi_cleanup(CURLM* multi_handle);
Имя
curl_multi_cleanup()
Описание
Очищает и удаляет всю многопоточную стопку. Она не освобождает и не затрагивает индивидуальные обработчики easy каким-либо образом. Нам нужно определить, в каком состоянии будут эти обработчики, если эта функция вызвана в середине перевода.
Возвращаемое значение:
Тип CURLMcode, общий код ошибки многопоточного режима.
CURLMsg* curl_multi_info_read(CURLM* multi_handle, int* msgs_in_queue);
Имя
curl_multi_info_read()
Описание
Запрашивает у многопоточного дескриптора наличие сообщений/информации от индивидуальных переводов. Сообщения включают в себя информацию, такую как код ошибки перевода или просто тот факт, что перевод завершён. Более подробная информация об этом должна быть также записана.
Повторные вызовы этой функции будут каждый раз возвращать новую структуру, пока не будет возвращена специальная структура «конец сообщений» как сигнал о том, что больше ничего нет в данный момент. Данные, на которые указывает возвращённый указатель, не будут существовать после вызова curl_multi_cleanup(). Структура 'CURLMsg' должна быть очень простой и содержать только самую основную информацию. Если требуется более подробная информация, мы предоставим конкретный «дескриптор перевода» в этой структуре, и это должно/может/будет использоваться в последующих вызовах curl_easy_getinfo() (или аналогичных). Суть в том, что мы никогда не должны предоставлять приложениям сложные структуры, так как в противном случае мы, несомненно, получим проблемы обратной совместимости в будущем.
Возвращаемое значение:
Указатель на заполненную структуру или NULL, если произошла ошибка или структуры закончились. Также записывает количество сообщений в очереди (после этого чтения) в целое число, на которое указывает второй аргумент.
const(char)* curl_multi_strerror(CURLMcode);
Имя
curl_multi_strerror()
Описание
Функция curl_multi_strerror может использоваться для преобразования значения CURLMcode в эквивалентную читаемую строку ошибки. Это полезно для вывода осмысленных сообщений об ошибках.
Возвращаемое значение:
Указатель на строку сообщения об ошибке с нулевым завершением.
enum CurlPoll: int;
Имя
curl_multi_socket() и curl_multi_socket_all()
Описание
Альтернативная версия curl_multi_perform(), которая позволяет приложению передать один из дескрипторов файла, у которых обнаружено «действие», и позволить libcurl выполнить его. Подробности см. в руководстве.
none_

jdrewsen - нижнее подчеркивание, чтобы не вступать в конфликт с зарезервированными символами D

in_
out_
inout_
remove_
alias CURL_SOCKET_TIMEOUT = CURL_SOCKET_BAD;
enum CurlCSelect: int;
in_

jdrewsen - нижнее подчеркивание, чтобы не вступать в конфликт с зарезервированными символами D

out_
err_
alias curl_socket_callback = extern (C) int function(void* easy, socket_t s, int what, void* userp, void* socketp);

приватный указатель на сокет

alias curl_multi_timer_callback = extern (C) int function(void* multi, long timeout_ms, void* userp);

приватный указатель на обратный вызов

Имя
curl_multi_timer_callback
Описание
Вызывается libcurl всякий раз, когда библиотека обнаруживает изменение максимального количества миллисекунд, которое приложение может ждать, прежде чем необходимо вызвать curl_multi_socket() или curl_multi_perform() (чтобы позволить libcurl обрабатывать временные события).
Возвращаемое значение:
Обратный вызов должен возвращать ноль.
CURLMcode curl_multi_socket(CURLM* multi_handle, curl_socket_t s, int* running_handles);

то же самое

Имя
curl_multi_timer_callback
Описание
Вызывается libcurl всякий раз, когда библиотека обнаруживает изменение максимального количества миллисекунд, которое приложение может ждать, прежде чем необходимо вызвать curl_multi_socket() или curl_multi_perform() (чтобы позволить libcurl обрабатывать временные события).
Возвращаемое значение:
Обратный вызов должен возвращать ноль.
CURLMcode curl_multi_socket_action(CURLM* multi_handle, curl_socket_t s, int ev_bitmask, int* running_handles);

то же самое

Имя
curl_multi_timer_callback
Описание
Вызывается libcurl всякий раз, когда библиотека обнаруживает изменение максимального количества миллисекунд, которое приложение может ждать, прежде чем необходимо вызвать curl_multi_socket() или curl_multi_perform() (чтобы позволить libcurl обрабатывать временные события).
Возвращаемое значение:
Обратный вызов должен возвращать ноль.
CURLMcode curl_multi_socket_all(CURLM* multi_handle, int* running_handles);

то же самое

Имя
curl_multi_timer_callback
Описание
Вызывается libcurl всякий раз, когда библиотека обнаруживает изменение максимального количества миллисекунд, которое приложение может ждать, прежде чем необходимо вызвать curl_multi_socket() или curl_multi_perform() (чтобы позволить libcurl обрабатывать временные события).
Возвращаемое значение:
Обратный вызов должен возвращать ноль.
CURLMcode curl_multi_timeout(CURLM* multi_handle, c_long* milliseconds);

Эта макрокоманда была добавлена в 7.16.3, чтобы подтолкнуть пользователей, которые пересобирают код, к использованию нового curl_multi_socket_action() вместо старого curl_multi_socket().

Имя
curl_multi_timeout()
Описание
Возвращает максимальное количество миллисекунд, которое приложение может ждать, прежде чем необходимо вызвать curl_multi_socket() или curl_multi_perform() (чтобы позволить libcurl обрабатывать временные события).
Возвращаемое значение:
Код ошибки CURL.
enum CurlMOption: int;
socketfunction

Указатель на функцию обратного вызова сокета

socketdata

Аргумент, передаваемый функции обратного вызова сокета

pipelining

Устанавливается в 1 для включения конвейера для этого многократного обработчика

timerfunction

Указатель на функцию обратного вызова таймера

timerdata

Аргумент, передаваемый функции обратного вызова таймера

maxconnects

Максимальное количество записей в кэше подключений

lastentry
alias CURLMoption = int;
CURLMcode curl_multi_setopt(CURLM* multi_handle, CURLMoption option, ...);
Имя
curl_multi_setopt()
Описание
Устанавливает параметры для многократного обработчика.
Возвращаемое значение:
Код ошибки CURLM.
CURLMcode curl_multi_assign(CURLM* multi_handle, curl_socket_t sockfd, void* sockp);
Имя
curl_multi_assign()
Описание
Эта функция устанавливает ассоциацию в многократном обработчике между заданным сокетом и указателем на частную переменную приложения. Это (только) полезно для использования curl_multi_socket.
Возвращаемое значение:
Код ошибки CURLM.

© 1999–2021 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/etc_c_curl.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API