ZOO-Project
Data Structures | Macros | Typedefs | Functions
ulinet.h File Reference
#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...
 

Data Structure Documentation

struct MemoryStruct

Headers storage.

See also
header_write_data
Data Fields
char * memory the memory space to store data
size_t size size of the memory space
struct _HINTERNET

Individual CURL handler.

Data Fields
long code the last received response code
char * cookie The potential Cookie returned by the server.
FILE * file the file pointer
char * filename the cached file name
CURL * handle the CURL handler
int hasCacheFile 1 if we used a cache file
struct curl_slist * header the headers to send
int id The position of the element in the queue.
char * mimeType the mimeType returned by the server
size_t nDataAlloc
size_t nDataLen the length of the downloaded content
unsigned char * pabyData the downloaded content
char * post the potential POST XML content
char * url the url used to access the server
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

Macro Definition Documentation

#define CHECK_INET_HANDLE (   h)    (h.handle != 0)