2015-10-22 11:39:11 +02:00
|
|
|
#include <sys/types.h>
|
|
|
|
#include <netinet/in.h>
|
|
|
|
#include <arpa/inet.h>
|
|
|
|
#include <sys/stat.h>
|
|
|
|
#include <pthread.h>
|
|
|
|
#include <signal.h>
|
2017-07-29 22:00:34 +02:00
|
|
|
#include <sys/socket.h>
|
|
|
|
#include "plugins/dictionary.h"
|
2015-10-22 11:39:11 +02:00
|
|
|
#include "plugin_manager.h"
|
|
|
|
|
2017-07-29 22:00:34 +02:00
|
|
|
#define FORM_URL_ENCODE "application/x-www-form-urlencoded"
|
|
|
|
#define FORM_MULTI_PART "multipart/form-data"
|
|
|
|
#define APP_JSON "application/json"
|
|
|
|
#define PLUGIN_HANDLER "handler"
|
|
|
|
#define WS_MAGIC_STRING "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
|
|
|
|
|
2015-10-22 11:39:11 +02:00
|
|
|
|
|
|
|
#define ISspace(x) isspace((int)(x))
|
|
|
|
|
|
|
|
#define SERVER_STRING "Server: ant-httpd\r\n"
|
|
|
|
|
|
|
|
void accept_request(int);
|
|
|
|
void bad_request(int);
|
|
|
|
void cat(int, FILE *);
|
|
|
|
void cannot_execute(int);
|
|
|
|
void error_die(const char *);
|
|
|
|
int get_line(int, char *, int);
|
|
|
|
void headers(int, const char *);
|
|
|
|
void not_found(int);
|
|
|
|
void serve_file(int, const char *);
|
|
|
|
int startup(unsigned *);
|
2017-07-29 22:00:34 +02:00
|
|
|
void unimplemented(int);
|
|
|
|
|
|
|
|
void ws_confirm_request(int, const char*);
|
|
|
|
char* post_url_decode(int client,int len);
|
|
|
|
dictionary decode_url_request(const char* query);
|
|
|
|
dictionary decode_request(int client,const char* method,const char* query);
|
|
|
|
dictionary decode_multi_part_request(int,const char*);
|
|
|
|
dictionary decode_cookie(const char*);
|
|
|
|
char* json_data_decode(int,int);
|
|
|
|
char* read_line(int sock);
|
|
|
|
int read_buf(int sock,char* buf,int i);
|
|
|
|
|
|
|
|
int execute_plugin(int client, const char *path,
|
|
|
|
const char *method, const char *query_string);
|