AmxxCurl

Scrie răspuns
Romania Avatar utilizator

Topic Author
[RGK]*Kent
Administrator Community
Administrator Community
Mesaje: 383
Membru din: Septembrie 13, 2020, 1:50 pm
Localitate: Rosiori de Vede
Vârsta: 29
Contact:
Status: Neconectat
Kent’s avatar
Loading…

AmxxCurl

Descriere:
Modulul este un înveliș peste biblioteca libcurl. Suportă SSL și permite transferuri fără blocare.
În această versiune, nu este nevoie să utilizați SoLoader (trebuie dezactivat) Funcționează atât cu ReHLDS, cât și cu HLDS.


Author:
Polarhigh

Download Modul:
Download-link
amxx_curl.rar
Note generale:
1) NU trebuie să apelați curl_easy_cleanup și alte funcții de curățare până când transferul nu este finalizat!
2) Deși nu există nicio modalitate de a seta / obține valoarea unei variabile de tip curl_off_t, acum există o conversie de tip în celulă (o celulă obișnuită amxx), dar acest lucru nu este foarte corect. Valorile vor fi adesea incorecte.
3) Definiți întotdeauna opțiunea CURLOPT_BUFFERSIZE, dacă utilizați callback-ul WRITEFUNCTION, specificați o dimensiune a bufferului de cel mult 1024 ca parametru, altfel riscați să primiți erori de stivă, posibil chiar să atârnați serverul. Dacă primiți erori de stivă atunci când utilizați alte apeluri de apel, îl puteți defini în pluginul #pragma dynamic 30000.
4) Nu uitați că trebuie să ștergeți memoria prin pointeri pentru curl_slist și curl_httppost folosind funcțiile curl_slist_free_all și respectiv curl_formfree.
5) Dacă până la modificarea hărții există transferuri incomplete, serverul va aștepta finalizarea tuturor transferurilor, apelarea inversă completă va fi apelată după plugin_end.



Recomandări:
1) Puteți utiliza un mâner de curl de mai multe ori pentru o adresă URL.
2) Utilizați curl_easy_setopt (curl, CURLOPT_VERBOSE, 1) pentru a depana un plugin dacă sunteți în pierdere pentru a determina cauza unei probleme de plugin. (În mod implicit, informațiile de depanare vor fi trimise la consola serverului, puteți defini apelul CURLOPT_DEBUGFUNCTION pentru a modifica ieșirea)


Instalare:
Pentru Linux, copiați modulul curl_amxx_i386.so din arhiva amxx_curl.rar în directorul: amxmodx/scripting/modules/

Pentru Windows, copiați modulul curl_amxx.dll din arhiva amxx_curl.rar în directorul: amxmodx/scripting/modules/

Copiați fișierele .inc curl.inc și curl_consts.inc din arhiva amxx_includes.zip în directorul: amxmodx/scripting/include

API (C++)

Cod: Selectaţi tot

/**
* URL encodes a string
*
* @param handle CURL Handle.
* @param url URL string.
* @param escapedUrl output string for escaped URL.
* @param len length of output string.
*
* @return length of escapedUrl string.
*/
native curl_easy_escape(const CURL:handle, const url[], escapedUrl[], const len)

/**
* URL decodes a string
*
* @param handle CURL Handle.
* @param url URL string.
* @param unescapedUrl output string for unescaped URL.
* @param len length of output string.
*
* @return length of unescaped string.
*/
native curl_easy_unescape(const CURL:handle, const url[], unescapedUrl[], const len)

/**
* Create a CURL Handle.
*
* @return CURL Handle.
*/
native CURL:curl_easy_init()

/**
* Perform a blocking file transfer
*
* @param handle CURL Handle.
* @param callbackComplite file transfer callback.
* @param data string with additional parameters for callback.
* @param data_len length of string with additional parameters.
*/
native void:curl_easy_perform(const CURL:handle, const callbackComplite[], const data[] = {}, const data_len = 0)

/**
* Set options for a curl easy handle
*
* @param handle CURL Handle.
* @param callbackComplite option for CURL Handle.
*
* @return CURLcode error code.
*/
native CURLcode:curl_easy_setopt(const CURL:handle, const CURLoption:option, any:...)

/**
* End a libcurl easy handle
*
* @param handle CURL Handle.
*/
native void:curl_easy_cleanup(const CURL:handle)

/**
* End a libcurl easy handle
*
* @param handle CURL Handle.
*/
native void:curl_easy_reset(const CURL:handle)

/**
* Extract information from a curl handle
*
* @param handle CURL Handle.
* @param info CURLINFO Handle.
*
* @return CURLcode error code.
*/
native CURLcode:curl_easy_getinfo(const CURL:handle, const CURLINFO:info, any:...)

/**
* Extract detaild information from a CURLcode error code.
*
* @param code CURLcode error code.
* @param errorBuf output string with information.
* @param len len of output string.
*/
native void:curl_easy_strerror(const CURLcode:code, errorBuf[], const len)

/**
* Add a string to an slist
*
* @param list linked list of strings.
* @param buffer appending string.
*
* @return curl_slist linked list of strings.
*/
native curl_slist:curl_slist_append(curl_slist:list, buffer[])

/**
* Free an entire curl_slist list
*
* @param list linked list of strings.
*/
native void:curl_slist_free_all(curl_slist:list)

/**
* Returns version of CURL
*
* @param buf output string with information.
* @param len len of output string.
*/
native void:curl_version(buf[], len)
:arrow: [RGK]*Kent - mortall.ro :)

Link:
BBcode:
HTML:
Hide post links
Show post links
Scrie răspuns

Înapoi la “Module”