2015-08-16 09:53:30 +02:00
|
|
|
#ifndef __HTTP_H__
|
|
|
|
#define __HTTP_H__
|
|
|
|
|
|
|
|
#define FLAG_GOT_ALL_DATA (1 << 2)
|
|
|
|
|
|
|
|
#define FLAG_STREAM (1 << 9)
|
|
|
|
#define FLAG_REUSE_BUFFER (1 << 10)
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int socket; // socket on which the actual transfer happens
|
|
|
|
int flags; // flags, reflects status of the transfer using bitflags
|
|
|
|
int write_ptr; // internal use only (where to write new data in buffer)
|
|
|
|
int buffer_length; // internal use only (number of available bytes in buffer)
|
|
|
|
int chunk_ptr; // internal use only (where the next chunk begins)
|
|
|
|
int timestamp; // internal use only (when last data was received)
|
|
|
|
|
|
|
|
int status; // HTTP status
|
|
|
|
int header_length; // length of HTTP header
|
|
|
|
void *content_ptr; // ptr to content
|
|
|
|
int content_length; // total length of HTTP content
|
|
|
|
int content_received; // number of currently received content bytes
|
|
|
|
}http_t;
|
|
|
|
|
|
|
|
int http_init();
|
|
|
|
int http_load(char *buf, const char *path);
|
|
|
|
|
2015-08-17 12:31:03 +02:00
|
|
|
http_t* __stdcall http_get(const char *url, http_t *conn, int flags, const char *header);
|
|
|
|
int __stdcall http_receive(http_t *conn);
|
|
|
|
void __stdcall http_free(http_t *conn);
|
2015-08-16 09:53:30 +02:00
|
|
|
|
|
|
|
static inline int http_receive_with_retry(http_t *http, int retry_count)
|
|
|
|
{
|
|
|
|
int err;
|
|
|
|
|
|
|
|
do
|
|
|
|
{
|
2015-08-17 12:31:03 +02:00
|
|
|
err = http_receive(http);
|
|
|
|
if(err)
|
|
|
|
wait_for_event(1);
|
2015-08-16 09:53:30 +02:00
|
|
|
|
|
|
|
}while(err && --retry_count);
|
|
|
|
|
|
|
|
return err;
|
|
|
|
}
|
|
|
|
|
2015-08-17 12:31:03 +02:00
|
|
|
void __stdcall con_init(unsigned w_w, unsigned w_h, unsigned s_w, unsigned s_h, const char* t);
|
|
|
|
void __stdcall con_exit(char bCloseWindow);
|
|
|
|
unsigned __stdcall con_get_flags(void);
|
|
|
|
unsigned __stdcall con_set_flags(unsigned new_flags);
|
|
|
|
void __stdcall con_cls(void);
|
|
|
|
void __stdcall con_write_asciiz(const char* string);
|
|
|
|
|
2015-08-17 18:23:37 +02:00
|
|
|
char *make_url(const char *name);
|
|
|
|
char *make_tmp_path(const char *path);
|
|
|
|
char *make_cache_path(const char *path);
|
2015-08-17 12:31:03 +02:00
|
|
|
|
2015-08-16 09:53:30 +02:00
|
|
|
#endif /* __HTTP_H__ */
|