|
ZOO-Project
|
#include <stdlib.h>#include <fcntl.h>#include <curl/curl.h>#include <curl/curlver.h>#include "service.h"#include <unistd.h>#include <string.h>#include "time.h"Go to the source code of this file.
Data Structures | |
| struct | MemoryStruct |
| Headers storage. More... | |
| struct | _HINTERNET |
| Individual CURL handler. More... | |
| struct | HINTERNET |
| Multiple CURL handlers. More... | |
Macros | |
| #define | MAX_REQ 50 |
| #define | INTERNET_OPEN_TYPE_DIRECT 0 |
| #define | INTERNET_OPEN_TYPE_PRECONFIG 1 |
| #define | INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY 2 |
| #define | INTERNET_OPEN_TYPE_PROXY 3 |
| #define | INTERNET_FLAG_EXISTING_CONNECT 0 |
| #define | INTERNET_FLAG_HYPERLINK 1 |
| #define | INTERNET_FLAG_IGNORE_CERT_CN_INVALID 2 |
| #define | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID 3 |
| #define | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP 4 |
| #define | INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS 5 |
| #define | INTERNET_FLAG_KEEP_CONNECTION 6 |
| #define | INTERNET_FLAG_NEED_FILE 7 |
| #define | INTERNET_FLAG_NO_AUTH 8 |
| #define | INTERNET_FLAG_NO_AUTO_REDIRECT 9 |
| #define | INTERNET_FLAG_NO_CACHE_WRITE 10 |
| #define | CHECK_INET_HANDLE(h) (h.handle != 0) |
Typedefs | |
| typedef char * | LPCTSTR |
| typedef void * | LPVOID |
| typedef void * | LPTSTR |
| typedef size_t * | LPDWORD |
Functions | |
| size_t | write_data_into (void *, size_t, size_t, void *) |
| Write the downloaded content to a _HINTERNET structure. More... | |
| size_t | write_data_into_file (void *, size_t, size_t, void *) |
| Write the downloaded content in the file pouted by the _HINTERNET structure. More... | |
| size_t | header_write_data (void *, size_t, size_t, void *) |
| In case of presence of "Set-Cookie" in the headers red, store the cookie identifier in cookie. More... | |
| void | setProxy (CURL *, char *, long) |
| Define the proxy to use for a CURL handler. More... | |
| int | setProxiesForProtcol (CURL *, const char *) |
| MACOSX. More... | |
| HINTERNET | InternetOpen (char *, int, char *, char *, int) |
| Create a HINTERNET. More... | |
| char * | getProvenance (maps *, const char *) |
| Verify if the URL should use a shared cache or not. More... | |
| int | isProtectedHost (const char *, const char *) |
| Verify if a host is protected (appear in [security] > hosts) More... | |
| int | AddMissingHeaderEntry (_HINTERNET *, const char *, const char *) |
| Add missing headers to an existing _HINTERNET. More... | |
| void | AddHeaderEntries (HINTERNET *, maps *) |
| Add headers defined in [security] > attributes to an existing HINTERNET. More... | |
| void | InternetCloseHandle (HINTERNET *) |
| Close a HINTERNET connection and free allocated resources. More... | |
| HINTERNET | InternetOpenUrl (HINTERNET *, LPCTSTR, LPCTSTR, size_t, size_t, size_t, const maps *) |
| Create a new element in the download queue. More... | |
| int | processDownloads (HINTERNET *) |
| Download all opened urls in the queue. More... | |
| int | freeCookieList (HINTERNET) |
| Initialize the cookie for a specific index (hInternet.nb) More... | |
| int | InternetReadFile (_HINTERNET, LPVOID, int, size_t *) |
| Copy a downloaded content. More... | |
| int | setBasicAuth (HINTERNET, char *, char *) |
| Use basic authentication for accessing a resource. More... | |
| struct MemoryStruct |
Headers storage.
| Data Fields | ||
|---|---|---|
| char * | memory | the memory space to store data |
| size_t | size | size of the memory space |
| struct _HINTERNET |
Individual CURL handler.
| struct HINTERNET |
Multiple CURL handlers.
| Data Fields | ||
|---|---|---|
| char * | agent | The User-Agent to use for HTTP request. |
| CURLM * | handle | the CURLM handler |
| _HINTERNET | ihandle[MAX_REQ] | individual handlers in the queue |
| int | nb | number of element in the queue |
| char * | waitingRequests[MAX_REQ] | request in the queue |
| #define CHECK_INET_HANDLE | ( | h | ) | (h.handle != 0) |
| #define INTERNET_FLAG_EXISTING_CONNECT 0 |
| #define INTERNET_FLAG_HYPERLINK 1 |
| #define INTERNET_FLAG_IGNORE_CERT_CN_INVALID 2 |
| #define INTERNET_FLAG_IGNORE_CERT_DATE_INVALID 3 |
| #define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP 4 |
| #define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS 5 |
| #define INTERNET_FLAG_KEEP_CONNECTION 6 |
| #define INTERNET_FLAG_NEED_FILE 7 |
| #define INTERNET_FLAG_NO_AUTH 8 |
| #define INTERNET_FLAG_NO_AUTO_REDIRECT 9 |
| #define INTERNET_FLAG_NO_CACHE_WRITE 10 |
| #define INTERNET_OPEN_TYPE_DIRECT 0 |
| #define INTERNET_OPEN_TYPE_PRECONFIG 1 |
| #define INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY 2 |
| #define INTERNET_OPEN_TYPE_PROXY 3 |
| #define MAX_REQ 50 |
| typedef char* LPCTSTR |
| typedef size_t* LPDWORD |
| typedef void* LPTSTR |
| typedef void* LPVOID |
Add headers defined in [security] > attributes to an existing HINTERNET.
| handle | the _HINTERNET pointer |
| conf | the header parameter name |
| value | the header parameter value |
| int AddMissingHeaderEntry | ( | _HINTERNET * | handle, |
| const char * | key, | ||
| const char * | value | ||
| ) |
Add missing headers to an existing _HINTERNET.
| handle | the _HINTERNET pointer |
| key | the header parameter name |
| value | the header parameter value |
| int freeCookieList | ( | HINTERNET | hInternet | ) |
| char* getProvenance | ( | maps * | conf, |
| const char * | url | ||
| ) |
Verify if the URL should use a shared cache or not.
In case the security section contains a key named "shared", then if the domain listed in the shared key are contained in the url given as parameter then it return "SHARED" in other cases, it returns "OTHER".
| conf | the main configuration file maps |
| url | the URL to evaluate |
| size_t header_write_data | ( | void * | buffer, |
| size_t | size, | ||
| size_t | nmemb, | ||
| void * | data | ||
| ) |
In case of presence of "Set-Cookie" in the headers red, store the cookie identifier in cookie.
| buffer | the buffer to read |
| size | size of each member |
| nmemb | number of element to read |
| data | the _HINTERNET structure to write in |
| void InternetCloseHandle | ( | HINTERNET * | handle0 | ) |
| HINTERNET InternetOpen | ( | char * | lpszAgent, |
| int | dwAccessType, | ||
| char * | lpszProxyName, | ||
| char * | lpszProxyBypass, | ||
| int | dwFlags | ||
| ) |
Create a HINTERNET.
| lpszAgent | the HTPP User-Agent to use to send requests |
| dwAccessType | type of access required |
| lpszProxyName | the name of the proxy server(s) to use |
| lpszProxyBypass | ip address or host names which should not be routed through the proxy |
| dwFlags | Options (INTERNET_FLAG_ASYNC,INTERNET_FLAG_FROM_CACHE,INTERNET_FLAG_OFFLINE) |
| HINTERNET InternetOpenUrl | ( | HINTERNET * | hInternet, |
| LPCTSTR | lpszUrl, | ||
| LPCTSTR | lpszHeaders, | ||
| size_t | dwHeadersLength, | ||
| size_t | dwFlags, | ||
| size_t | dwContext, | ||
| const maps * | conf | ||
| ) |
Create a new element in the download queue.
| hInternet | the HINTERNET connection to add the download link |
| lpszUrl | the url to download |
| lpszHeaders | the additional headers to be sent to the HTTP server |
| dwHeadersLength | the size of the additional headers |
| dwFlags | desired download mode (INTERNET_FLAG_NO_CACHE_WRITE for not using cache file) |
| dwContext | not used |
| conf | the main configuration file maps pointer |
| int InternetReadFile | ( | _HINTERNET | hInternet, |
| LPVOID | lpBuffer, | ||
| int | dwNumberOfBytesToRead, | ||
| size_t * | lpdwNumberOfBytesRead | ||
| ) |
Copy a downloaded content.
| hInternet | the _HINTERNET structure |
| lpBuffer | the memory space to copy the downloaded content |
| dwNumberOfBytesToRead | the size of lpBuffer |
| lpdwNumberOfBytesRead | number of bytes red |
| int isProtectedHost | ( | const char * | protectedHosts, |
| const char * | url | ||
| ) |
Verify if a host is protected (appear in [security] > hosts)
| protectedHosts | string containing all the protected hosts (coma separated) |
| url | string used to extract the host from |
| int processDownloads | ( | HINTERNET * | hInternet | ) |
Download all opened urls in the queue.
| hInternet | the HINTERNET structure containing the queue |
| int setBasicAuth | ( | HINTERNET | hInternet, |
| char * | login, | ||
| char * | passwd | ||
| ) |
Use basic authentication for accessing a resource.
| hInternet | the _HINTERNET structure |
| login | the login to use to authenticate |
| passwd | the password to use to authenticate |
| int setProxiesForProtcol | ( | CURL * | handle, |
| const char * | proto | ||
| ) |
MACOSX.
Should autodetect the proxy configuration (do nothing on linux)
| handle | a CURL handle |
| proto | the protocol requiring the use of a proxy |
| void setProxy | ( | CURL * | handle, |
| char * | host, | ||
| long | port | ||
| ) |
Define the proxy to use for a CURL handler.
| handle | the CURL handler |
| host | the proxy host (including http://) |
| port | the proxy port |
| size_t write_data_into | ( | void * | buffer, |
| size_t | size, | ||
| size_t | nmemb, | ||
| void * | data | ||
| ) |
Write the downloaded content to a _HINTERNET structure.
| buffer | the buffer to read |
| size | size of each member |
| nmemb | number of element to read |
| data | the _HINTERNET structure to write in |
| size_t write_data_into_file | ( | void * | buffer, |
| size_t | size, | ||
| size_t | nmemb, | ||
| void * | data | ||
| ) |
Write the downloaded content in the file pouted by the _HINTERNET structure.
| buffer | the buffer to read |
| size | size of each member |
| nmemb | number of element to read |
| data | the _HINTERNET structure to write in |
1.8.17