mirror of
https://github.com/lxsang/ant-http
synced 2024-12-26 08:48:21 +01:00
remove warning
This commit is contained in:
parent
93e2913184
commit
dbda222047
@ -69,7 +69,7 @@ static int config_handler(void* conf, const char* section, const char* name,
|
|||||||
else if(strcmp(section,"AUTOSTART")==0){
|
else if(strcmp(section,"AUTOSTART")==0){
|
||||||
// The server section must be added before the autostart section
|
// The server section must be added before the autostart section
|
||||||
// auto start plugin
|
// auto start plugin
|
||||||
plugin_load(value);
|
plugin_load((char*)value);
|
||||||
} else {
|
} else {
|
||||||
return 0; /* unknown section/name, error */
|
return 0; /* unknown section/name, error */
|
||||||
}
|
}
|
||||||
@ -163,7 +163,7 @@ void* accept_request(void* data)
|
|||||||
}
|
}
|
||||||
// perform the ssl handshake if enabled
|
// perform the ssl handshake if enabled
|
||||||
#ifdef USE_OPENSSL
|
#ifdef USE_OPENSSL
|
||||||
int ret,stat;
|
int ret=-1,stat;
|
||||||
if(server_config.usessl == 1 && client->status == 0)
|
if(server_config.usessl == 1 && client->status == 0)
|
||||||
{
|
{
|
||||||
if (SSL_accept((SSL*)client->ssl) == -1) {
|
if (SSL_accept((SSL*)client->ssl) == -1) {
|
||||||
@ -178,7 +178,7 @@ void* accept_request(void* data)
|
|||||||
task->priority = HIGH_PRIORITY;
|
task->priority = HIGH_PRIORITY;
|
||||||
return task;
|
return task;
|
||||||
default:
|
default:
|
||||||
LOG("Error performing SSL handshake %d %d %d\n", stat, ret, ERR_get_error());
|
LOG("Error performing SSL handshake %d %d %lu\n", stat, ret, ERR_get_error());
|
||||||
ERR_print_errors_fp(stderr);
|
ERR_print_errors_fp(stderr);
|
||||||
return task;
|
return task;
|
||||||
}
|
}
|
||||||
@ -244,7 +244,7 @@ void* resolve_request(void* data)
|
|||||||
char* url = (char*)dvalue(rq->request, "RESOURCE_PATH");
|
char* url = (char*)dvalue(rq->request, "RESOURCE_PATH");
|
||||||
char* newurl = NULL;
|
char* newurl = NULL;
|
||||||
char* rqp = (char*)dvalue(rq->request, "REQUEST_PATH");
|
char* rqp = (char*)dvalue(rq->request, "REQUEST_PATH");
|
||||||
sprintf(path, server_config.htdocs);
|
strcpy(path, server_config.htdocs);
|
||||||
strcat(path, url);
|
strcat(path, url);
|
||||||
LOG("Path is : %s \n", path);
|
LOG("Path is : %s \n", path);
|
||||||
//if (path[strlen(path) - 1] == '/')
|
//if (path[strlen(path) - 1] == '/')
|
||||||
@ -366,7 +366,7 @@ int rule_check(const char*k, const char* v, const char* host, const char* _url,
|
|||||||
ret = regex_match(k,url, 10, key_matches);
|
ret = regex_match(k,url, 10, key_matches);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
target = host;
|
target = (char*)host;
|
||||||
|
|
||||||
if(!ret)
|
if(!ret)
|
||||||
{
|
{
|
||||||
@ -429,7 +429,6 @@ void* serve_file(void* data)
|
|||||||
antd_task_t* task = antd_create_task(NULL,(void*)rq,NULL);
|
antd_task_t* task = antd_create_task(NULL,(void*)rq,NULL);
|
||||||
task->priority++;
|
task->priority++;
|
||||||
char* path = (char*)dvalue(rq->request, "ABS_RESOURCE_PATH");
|
char* path = (char*)dvalue(rq->request, "ABS_RESOURCE_PATH");
|
||||||
char* newurl = NULL;
|
|
||||||
char* mime_type = (char*)dvalue(rq->request, "RESOURCE_MIME");
|
char* mime_type = (char*)dvalue(rq->request, "RESOURCE_MIME");
|
||||||
ctype(rq->client,mime_type);
|
ctype(rq->client,mime_type);
|
||||||
if(is_bin(path))
|
if(is_bin(path))
|
||||||
@ -468,7 +467,6 @@ int startup(unsigned *port)
|
|||||||
|
|
||||||
char* apply_rules(const char* host, char*url)
|
char* apply_rules(const char* host, char*url)
|
||||||
{
|
{
|
||||||
association it;
|
|
||||||
// rule check
|
// rule check
|
||||||
char* query_string = url;
|
char* query_string = url;
|
||||||
while ((*query_string != '?') && (*query_string != '\0'))
|
while ((*query_string != '?') && (*query_string != '\0'))
|
||||||
@ -566,7 +564,6 @@ void* decode_request_header(void* data)
|
|||||||
void* decode_request(void* data)
|
void* decode_request(void* data)
|
||||||
{
|
{
|
||||||
antd_request_t* rq = (antd_request_t*) data;
|
antd_request_t* rq = (antd_request_t*) data;
|
||||||
dictionary request = dvalue(rq->request, "REQUEST_DATA");
|
|
||||||
dictionary headers = dvalue(rq->request, "REQUEST_HEADER");
|
dictionary headers = dvalue(rq->request, "REQUEST_HEADER");
|
||||||
int ws = 0;
|
int ws = 0;
|
||||||
char*ws_key = NULL;
|
char*ws_key = NULL;
|
||||||
@ -640,7 +637,7 @@ void* decode_post_request(void* data)
|
|||||||
//printf("Multi part form : %s\n", ctype);
|
//printf("Multi part form : %s\n", ctype);
|
||||||
// TODO: split this to multiple task
|
// TODO: split this to multiple task
|
||||||
free(task);
|
free(task);
|
||||||
return decode_multi_part_request(rq,ctype,request);
|
return decode_multi_part_request(rq,ctype);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -679,7 +676,7 @@ void ws_confirm_request(void* client, const char* key)
|
|||||||
|
|
||||||
SHA1_Init(&context);
|
SHA1_Init(&context);
|
||||||
SHA1_Update(&context, rkey, strlen(rkey));
|
SHA1_Update(&context, rkey, strlen(rkey));
|
||||||
SHA1_Final(sha_d, &context);
|
SHA1_Final((uint8_t*)sha_d, &context);
|
||||||
Base64encode(base64, sha_d, 20);
|
Base64encode(base64, sha_d, 20);
|
||||||
//printf("Base 64 '%s'\n", base64);
|
//printf("Base 64 '%s'\n", base64);
|
||||||
// send accept to client
|
// send accept to client
|
||||||
@ -728,7 +725,7 @@ dictionary decode_cookie(const char* line)
|
|||||||
* Decode the multi-part form data from the POST request
|
* Decode the multi-part form data from the POST request
|
||||||
* If it is a file upload, copy the file to tmp dir
|
* If it is a file upload, copy the file to tmp dir
|
||||||
*/
|
*/
|
||||||
void* decode_multi_part_request(void* data,const char* ctype, dictionary dic)
|
void* decode_multi_part_request(void* data,const char* ctype)
|
||||||
{
|
{
|
||||||
char * boundary;
|
char * boundary;
|
||||||
char * line;
|
char * line;
|
||||||
@ -738,7 +735,6 @@ void* decode_multi_part_request(void* data,const char* ctype, dictionary dic)
|
|||||||
antd_task_t* task = antd_create_task(NULL, (void*)rq, NULL);
|
antd_task_t* task = antd_create_task(NULL, (void*)rq, NULL);
|
||||||
task->priority++;
|
task->priority++;
|
||||||
//dictionary dic = NULL;
|
//dictionary dic = NULL;
|
||||||
FILE *fp = NULL;
|
|
||||||
boundary = strsep(&str_copy,"="); //discard first part
|
boundary = strsep(&str_copy,"="); //discard first part
|
||||||
boundary = str_copy;
|
boundary = str_copy;
|
||||||
if(boundary && strlen(boundary)>0)
|
if(boundary && strlen(boundary)>0)
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
|
|
||||||
config_t* config();
|
config_t* config();
|
||||||
void destroy_config();
|
void destroy_config();
|
||||||
|
void load_config(const char* file);
|
||||||
void* accept_request(void*);
|
void* accept_request(void*);
|
||||||
void* finish_request(void*);
|
void* finish_request(void*);
|
||||||
void cat(void*, FILE *);
|
void cat(void*, FILE *);
|
||||||
@ -40,7 +41,7 @@ void* decode_request_header(void* data);
|
|||||||
void* decode_request(void* data);
|
void* decode_request(void* data);
|
||||||
void* decode_post_request(void* data);
|
void* decode_post_request(void* data);
|
||||||
void* resolve_request(void* data);
|
void* resolve_request(void* data);
|
||||||
void* decode_multi_part_request(void*,const char*, dictionary);
|
void* decode_multi_part_request(void*,const char*);
|
||||||
void* decode_multi_part_request_data(void* data);
|
void* decode_multi_part_request_data(void* data);
|
||||||
dictionary decode_cookie(const char*);
|
dictionary decode_cookie(const char*);
|
||||||
char* post_data_decode(void*,int);
|
char* post_data_decode(void*,int);
|
||||||
|
@ -130,7 +130,7 @@ int dbinsert(sqlite3* db,const char* table, const dbfield fields)
|
|||||||
}
|
}
|
||||||
dbrecord dball(sqlite3* db,const char* table)
|
dbrecord dball(sqlite3* db,const char* table)
|
||||||
{
|
{
|
||||||
return dbselect(db,table,"1=%d",1);
|
return dbselect(db,table,"1=%s","1");
|
||||||
}
|
}
|
||||||
dbrecord dbselect(sqlite3* db, const char* table, const char* fname,const char* fstring,...)
|
dbrecord dbselect(sqlite3* db, const char* table, const char* fname,const char* fstring,...)
|
||||||
{
|
{
|
||||||
@ -160,7 +160,7 @@ dbrecord dbselect(sqlite3* db, const char* table, const char* fname,const char*
|
|||||||
dbfield fields = __field();
|
dbfield fields = __field();
|
||||||
for(int col = 0; col < cols; col++)
|
for(int col = 0; col < cols; col++)
|
||||||
{
|
{
|
||||||
const char *value = sqlite3_column_text(statement, col);
|
const char *value = (const char*)sqlite3_column_text(statement, col);
|
||||||
const char *name = sqlite3_column_name(statement, col);
|
const char *name = sqlite3_column_name(statement, col);
|
||||||
add_field(&fields,name,(value!=0)?value:"");
|
add_field(&fields,name,(value!=0)?value:"");
|
||||||
}
|
}
|
||||||
|
@ -356,7 +356,7 @@ int __fb(void* client, const char* file)
|
|||||||
}
|
}
|
||||||
int __f(void* client, const char* file)
|
int __f(void* client, const char* file)
|
||||||
{
|
{
|
||||||
unsigned char buf[BUFFLEN];
|
char buf[BUFFLEN];
|
||||||
FILE *ptr;
|
FILE *ptr;
|
||||||
int nbytes;
|
int nbytes;
|
||||||
ptr = fopen(file,"r");
|
ptr = fopen(file,"r");
|
||||||
|
@ -81,6 +81,7 @@ int list_remove(list l,int idx)
|
|||||||
if(np == NULL) return 0;
|
if(np == NULL) return 0;
|
||||||
if(np->next == NULL) return 1;
|
if(np->next == NULL) return 1;
|
||||||
np->next = np->next->next;
|
np->next = np->next->next;
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
int list_size(list l)
|
int list_size(list l)
|
||||||
{
|
{
|
||||||
|
16
libs/utils.c
16
libs/utils.c
@ -168,7 +168,7 @@ mime_t mime_from_ext(const char* ex)
|
|||||||
if(IEQU(ex,_mimes[i].ext[j])) return _mimes[i];
|
if(IEQU(ex,_mimes[i].ext[j])) return _mimes[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
return (mime_t){"application/octet-stream",(const char *[]){ext,NULL},1};
|
return (mime_t){"application/octet-stream",(const char *[]){(char*)ext,NULL},1};
|
||||||
}
|
}
|
||||||
/*get mime file info from type*/
|
/*get mime file info from type*/
|
||||||
mime_t mime_from_type(const char* type)
|
mime_t mime_from_type(const char* type)
|
||||||
@ -192,7 +192,7 @@ char* mime(const char* file)
|
|||||||
mime_t m = mime_from_ext(ex);
|
mime_t m = mime_from_ext(ex);
|
||||||
if(ex)
|
if(ex)
|
||||||
free(ex);
|
free(ex);
|
||||||
return m.type;
|
return (char*)m.type;
|
||||||
}
|
}
|
||||||
|
|
||||||
int is_bin(const char* file)
|
int is_bin(const char* file)
|
||||||
@ -257,7 +257,7 @@ int regex_match(const char* expr,const char* search, int msize, regmatch_t* matc
|
|||||||
char *url_decode(const char *str) {
|
char *url_decode(const char *str) {
|
||||||
if(!str)
|
if(!str)
|
||||||
return NULL;
|
return NULL;
|
||||||
char *pstr = str, *buf = malloc(strlen(str) + 1), *pbuf = buf;
|
char *pstr = (char*)str, *buf = malloc(strlen(str) + 1), *pbuf = buf;
|
||||||
|
|
||||||
while (*pstr) {
|
while (*pstr) {
|
||||||
if (*pstr == '%') {
|
if (*pstr == '%') {
|
||||||
@ -278,7 +278,7 @@ char *url_decode(const char *str) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
char *url_encode(const char *str) {
|
char *url_encode(const char *str) {
|
||||||
char *pstr = str, *buf = malloc(strlen(str) * 3 + 1), *pbuf = buf;
|
char *pstr = (char*)str, *buf = malloc(strlen(str) * 3 + 1), *pbuf = buf;
|
||||||
while (*pstr) {
|
while (*pstr) {
|
||||||
if (isalnum(*pstr) || *pstr == '-' || *pstr == '_' || *pstr == '.' || *pstr == '~')
|
if (isalnum(*pstr) || *pstr == '-' || *pstr == '_' || *pstr == '.' || *pstr == '~')
|
||||||
*pbuf++ = *pstr;
|
*pbuf++ = *pstr;
|
||||||
@ -441,16 +441,16 @@ void md5(uint8_t *initial_msg, size_t initial_len, char* buff) {
|
|||||||
}
|
}
|
||||||
uint8_t *p;
|
uint8_t *p;
|
||||||
p=(uint8_t *)&h0;
|
p=(uint8_t *)&h0;
|
||||||
sprintf(tmp,"%02x%02x%02x%02x", p[0], p[1], p[2], p[3], h0);
|
sprintf(tmp,"%02x%02x%02x%02x", p[0], p[1], p[2], p[3]);//, h0
|
||||||
strcpy(buff, tmp);
|
strcpy(buff, tmp);
|
||||||
p=(uint8_t *)&h1;
|
p=(uint8_t *)&h1;
|
||||||
sprintf(tmp,"%02x%02x%02x%02x", p[0], p[1], p[2], p[3], h1);
|
sprintf(tmp,"%02x%02x%02x%02x", p[0], p[1], p[2], p[3]); //, h1)
|
||||||
strcat(buff,tmp);
|
strcat(buff,tmp);
|
||||||
p=(uint8_t *)&h2;
|
p=(uint8_t *)&h2;
|
||||||
sprintf(tmp,"%02x%02x%02x%02x", p[0], p[1], p[2], p[3], h2);
|
sprintf(tmp,"%02x%02x%02x%02x", p[0], p[1], p[2], p[3]); // , h2
|
||||||
strcat(buff,tmp);
|
strcat(buff,tmp);
|
||||||
p=(uint8_t *)&h3;
|
p=(uint8_t *)&h3;
|
||||||
sprintf(tmp,"%02x%02x%02x%02x", p[0], p[1], p[2], p[3], h3);
|
sprintf(tmp,"%02x%02x%02x%02x", p[0], p[1], p[2], p[3]); // , h3
|
||||||
strcat(buff,tmp);
|
strcat(buff,tmp);
|
||||||
// cleanup
|
// cleanup
|
||||||
free(msg);
|
free(msg);
|
||||||
|
@ -105,4 +105,5 @@ int is_dir(const char* f);
|
|||||||
int _exist(const char* f);
|
int _exist(const char* f);
|
||||||
void md5(uint8_t *, size_t , char*);
|
void md5(uint8_t *, size_t , char*);
|
||||||
void sha1(const char*, char*);
|
void sha1(const char*, char*);
|
||||||
|
void digest_to_hex(const uint8_t *, char *);
|
||||||
#endif
|
#endif
|
||||||
|
14
libs/ws.c
14
libs/ws.c
@ -95,7 +95,7 @@ int ws_read_data(void* client, ws_msg_header_t* header, int len, uint8_t* data)
|
|||||||
{
|
{
|
||||||
// if len == -1 ==> read all remaining data to 'data';
|
// if len == -1 ==> read all remaining data to 'data';
|
||||||
if(header->plen == 0) return 0;
|
if(header->plen == 0) return 0;
|
||||||
int dlen = (len==-1 || len > header->plen)?header->plen:len;
|
int dlen = (len==-1 || len > (int)header->plen)?header->plen:len;
|
||||||
if((dlen = antd_recv(client,data, dlen)) <0) return -1;
|
if((dlen = antd_recv(client,data, dlen)) <0) return -1;
|
||||||
header->plen = header->plen - dlen;
|
header->plen = header->plen - dlen;
|
||||||
// unmask received data
|
// unmask received data
|
||||||
@ -158,7 +158,7 @@ void ws_send_frame(void* client, uint8_t* data, ws_msg_header_t header)
|
|||||||
{
|
{
|
||||||
ws_gen_mask_key(&header);
|
ws_gen_mask_key(&header);
|
||||||
masked = (uint8_t*) malloc(header.plen);
|
masked = (uint8_t*) malloc(header.plen);
|
||||||
for(int i = 0; i < header.plen; ++i)
|
for(int i = 0; i < (int)header.plen; ++i)
|
||||||
masked[i] = data[i]^ header.mask_key[i%4];
|
masked[i] = data[i]^ header.mask_key[i%4];
|
||||||
}
|
}
|
||||||
_send_header(client, header);
|
_send_header(client, header);
|
||||||
@ -181,7 +181,7 @@ void ws_send_text(void* client, const char* data,int mask)
|
|||||||
header.plen = strlen(data);
|
header.plen = strlen(data);
|
||||||
//_send_header(client,header);
|
//_send_header(client,header);
|
||||||
//send(client, data, header.plen,0);
|
//send(client, data, header.plen,0);
|
||||||
ws_send_frame(client,data,header);
|
ws_send_frame(client,(uint8_t*)data,header);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* send a single binary data fram to client
|
* send a single binary data fram to client
|
||||||
@ -311,7 +311,7 @@ send a request
|
|||||||
*/
|
*/
|
||||||
int request_socket(const char* ip, int port)
|
int request_socket(const char* ip, int port)
|
||||||
{
|
{
|
||||||
int sockfd, bytes_read;
|
int sockfd;
|
||||||
struct sockaddr_in dest;
|
struct sockaddr_in dest;
|
||||||
|
|
||||||
// time out setting
|
// time out setting
|
||||||
@ -335,7 +335,7 @@ int request_socket(const char* ip, int port)
|
|||||||
bzero(&dest, sizeof(dest));
|
bzero(&dest, sizeof(dest));
|
||||||
dest.sin_family = AF_INET;
|
dest.sin_family = AF_INET;
|
||||||
dest.sin_port = htons(port);
|
dest.sin_port = htons(port);
|
||||||
if ( inet_aton(ip, &dest.sin_addr.s_addr) == 0 )
|
if ( inet_aton(ip, &dest.sin_addr) == 0 )
|
||||||
{
|
{
|
||||||
perror(ip);
|
perror(ip);
|
||||||
close(sockfd);
|
close(sockfd);
|
||||||
@ -351,6 +351,8 @@ int request_socket(const char* ip, int port)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//TODO: The ping request
|
//TODO: The ping request
|
||||||
|
/*
|
||||||
|
this is for the client side, not use for now
|
||||||
int ws_open_hand_shake(const char* host, int port, const char* resource)
|
int ws_open_hand_shake(const char* host, int port, const char* resource)
|
||||||
{
|
{
|
||||||
char ip[100];
|
char ip[100];
|
||||||
@ -405,7 +407,7 @@ int ws_open_hand_shake(const char* host, int port, const char* resource)
|
|||||||
if(done) return sock;
|
if(done) return sock;
|
||||||
//printf("No server key found \n");
|
//printf("No server key found \n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}*/
|
||||||
char* get_ip_address()
|
char* get_ip_address()
|
||||||
{
|
{
|
||||||
struct ifaddrs* addrs;
|
struct ifaddrs* addrs;
|
||||||
|
@ -50,6 +50,6 @@ int ws_read_data(void* , ws_msg_header_t*, int, uint8_t*);
|
|||||||
int request_socket(const char* ip, int port);
|
int request_socket(const char* ip, int port);
|
||||||
int ip_from_hostname(const char * hostname , char* ip);
|
int ip_from_hostname(const char * hostname , char* ip);
|
||||||
int sock_read_buf(void* sock, char*buf,int size);
|
int sock_read_buf(void* sock, char*buf,int size);
|
||||||
int ws_open_hand_shake(const char* host, int port, const char* resource);
|
//int ws_open_hand_shake(const char* host, int port, const char* resource);
|
||||||
char* get_ip_address();
|
char* get_ip_address();
|
||||||
#endif
|
#endif
|
@ -114,7 +114,7 @@ void unload_plugin_by_name(const char* name)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (np; np != NULL; np = np->next)
|
for (; np != NULL; np = np->next)
|
||||||
if (np->next != NULL && strcmp(name, np->next->pname) == 0)
|
if (np->next != NULL && strcmp(name, np->next->pname) == 0)
|
||||||
break;
|
break;
|
||||||
if(np == NULL) return; // the plugin is is not loaded
|
if(np == NULL) return; // the plugin is is not loaded
|
||||||
|
Loading…
Reference in New Issue
Block a user