X-Git-Url: https://arthur.barton.de/gitweb/?a=blobdiff_plain;f=src%2Fweb_client.h;h=70c5b1ff05f66ec4262f1ead9a229e3ac4d93ea9;hb=9dccc16d3763392f0b13349de18c3a838a667653;hp=76284e590fe5007ccecbed0faca45296185c74ad;hpb=b081a001f8181ce34fbd579a9b7b278cdcd4c786;p=netdata.git diff --git a/src/web_client.h b/src/web_client.h index 76284e59..70c5b1ff 100644 --- a/src/web_client.h +++ b/src/web_client.h @@ -13,9 +13,12 @@ extern int web_enable_gzip, extern int respect_web_browser_do_not_track_policy; extern char *web_x_frame_options; -#define WEB_CLIENT_MODE_NORMAL 0 -#define WEB_CLIENT_MODE_FILECOPY 1 -#define WEB_CLIENT_MODE_OPTIONS 2 +typedef enum web_client_mode { + WEB_CLIENT_MODE_NORMAL = 0, + WEB_CLIENT_MODE_FILECOPY = 1, + WEB_CLIENT_MODE_OPTIONS = 2, + WEB_CLIENT_MODE_STREAM = 3 +} WEB_CLIENT_MODE; #define URL_MAX 8192 #define ZLIB_CHUNK 16384 @@ -55,14 +58,14 @@ struct web_client { uint8_t keepalive:1; // if set to 1, the web client will be re-used - uint8_t mode:3; // the operational mode of the client - uint8_t wait_receive:1; // 1 = we are waiting more input data uint8_t wait_send:1; // 1 = we have data to send to the client uint8_t donottrack:1; // 1 = we should not set cookies on this client uint8_t tracking_required:1; // 1 = if the request requires cookies + WEB_CLIENT_MODE mode; // the operational mode of the client + int tcp_cork; // 1 = we have a cork on the socket int ifd; @@ -103,7 +106,7 @@ extern struct web_client *web_client_create(int listener); extern struct web_client *web_client_free(struct web_client *w); extern ssize_t web_client_send(struct web_client *w); extern ssize_t web_client_receive(struct web_client *w); -extern void web_client_process(struct web_client *w); +extern void web_client_process_request(struct web_client *w); extern void web_client_reset(struct web_client *w); extern void *web_client_main(void *ptr); @@ -112,4 +115,7 @@ extern int web_client_api_request_v1_data_group(char *name, int def); extern const char *group_method2string(int group); extern void buffer_data_options2string(BUFFER *wb, uint32_t options); + +extern int mysendfile(struct web_client *w, char *filename); + #endif