[Модуль Amxx] Curl (Windows & Linux) |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
[Модуль Amxx] Curl (Windows & Linux) |
trofian |
26.7.2016, 16:50
Сообщение
|
|
Автор: Polarhigh (aka trofian)
Версия: 1.0.0 Описание: Модуль является обёрткой над библиотекой libcurl. Установка Linux версии: Модуль слинкован динамически с openssl, поэтому, если в системе он отсутствует, то curl модуль не загрузится. Поэтому нужно: 1) установить metamod плагин SoLoader и прописать его в самый верх addons/metamod/plugins.ini. 2) в addons/soloader/libraries.cfg добавить строчки: Цитата libcrypto.so.1.0.0 libssl.so.1.0.0 Эти библиотеки есть в архиве для linux версии, взяты из моего debian. Функции: Смотри здесь) Однако отсутствуют следующие: curl_easy_recv, curl_easy_send Общие примечания: 1) Вы НЕ должны вызывать curl_easy_cleanup и другие функции очистки пока передача не завершилась! 2) Пока нет возможности реально установить/получить значение переменной типа curl_off_t, сейчас происходит преобразование типа к cell (обычная ячейка amxx), но это не очень правильно. Значения зачастую будут некорректными. 3) Всегда определяйте опцию CURLOPT_BUFFERSIZE, если используете колбэк WRITEFUNCTION укажите в качестве параметра размер буфера не более 1024, иначе рискуете получить ошибки stack error, возможно даже повесить сервер. Если вы получаете ошибки stack error при использовании других колбэков, то можно определить в плагине #pragma dynamic 30000. 4) Не забывайте, что вам необходимо очищать память по указателям для curl_slist и curl_httppost с помощью функций curl_slist_free_all и curl_formfree соответственно. 5) Если к моменту смены карты остались незавершенные передачи, то будет прерван вызов всех установленных колбэков и модуль встанет в ожидание завершения всех передач. Рекомендации: 1) Если планируется "долгосрочная" передача, то можно временно убрать лимит игры на карте, когда передача завершится восстановить; 2) Вы можете использовать 1 дескриптор curl несколько раз для одного url. 3) Используйте curl_easy_setopt(curl, CURLOPT_VERBOSE, 1) для отладки плагина, если затрудняетесь определить причину неполадки в плагине. (По-умолчания вывод дебаг информации будет осуществляться в консоль сервера, вы можете определить колбэк CURLOPT_DEBUGFUNCTION для изменения вывода) Примеры: http_get.sma Cкрытый текст Код:
#include <amxmodx> ftp_upload.sma Cкрытый текст Код:
#pragma dynamic 16536 Скачать: GitHub releases Исходники: https://github.com/Polarhigh/AmxxCurl Официальная ветка:
Отредактировал: trofian, - 27.7.2016, 0:40
|
Поблагодарили 3 раз
|
|
ALIK |
26.7.2016, 17:16
Сообщение
|
|
Вчера на голде появилась скомпилированная версия модуля под линукс, которая хранилась до этого на амх-х и не компилировалась. Смотрел?
|
|
|
trofian |
26.7.2016, 17:54
Сообщение
|
|
Нет, только сейчас узнал)
Вообще я на гитхабе еще 1 модуль нашел |
|
|
ALIK |
26.7.2016, 20:41
Сообщение
|
|
|
|
|
wopox3 |
26.7.2016, 21:01
Сообщение
|
|
|
|
|
trofian |
26.7.2016, 21:07
Сообщение
|
|
wopox3, а я что, не поддержка?
ALIK, не знаю, не затрагивая обе другие версии имеют идентичный интерфейс и поведение; тесты производительности я не делал) но ни там ни там не используются threadpool или еще какие-то существенные опитимизации |
Поблагодарили 1 раз
|
|
Garey |
26.7.2016, 21:56
Сообщение
|
Привет! Попробую использовать ваш модуль в своем плагине, модуль от Morning Rainbow коряво работает с Windows < Vista (например Windows XP), Как ваш модуль работает с данной ОС? =)
|
|
|
|
trofian |
26.7.2016, 23:07
Сообщение
|
|
|
|
|
trofian |
27.7.2016, 10:44
Сообщение
|
|
Привет! Попробую использовать ваш модуль в своем плагине, модуль от Morning Rainbow коряво работает с Windows < Vista (например Windows XP), Как ваш модуль работает с данной ОС? =) Привет, прошу прощения, вчера видел, что есть новый ответ, но в упор не видел твоего сообщения, по правде говоря не тестировал, проверял только на win10, но проблем не должно возникнуть, попробую сегодня-завтра поставить виртуалку с xp |
|
|