SYMBOL INDEX (190 symbols across 29 files) FILE: src/buffer.c function buffer_t (line 7) | buffer_t *buffer_init() { return buffer_new(BUFSIZ); } function buffer_t (line 9) | buffer_t *buffer_new(size_t initlen) { function buffer_free (line 21) | void buffer_free(buffer_t *pb) { function buffer_clear (line 27) | inline void buffer_clear(buffer_t *pb) { function buffer_t (line 41) | buffer_t *buffer_cat(buffer_t *pb, const char *buf, size_t nbyte) { function buffer_t (line 70) | buffer_t *buffer_cat_cstr(buffer_t *pb, const char *cstr) { function buffer_print (line 74) | void buffer_print(buffer_t *pb) { FILE: src/buffer.h type buffer_t (line 9) | typedef struct { function buffer_len (line 23) | static inline size_t buffer_len(const buffer_t *pb) { return pb->len; } function buffer_avail (line 25) | static inline size_t buffer_avail(const buffer_t *pb) { return pb->free; } function buffer_t (line 27) | static inline buffer_t *buffer_buffer(const char *buf) { FILE: src/connection.c function c_swap (line 24) | inline static void c_swap(int x, int y) { function heap_bubble_up (line 35) | static void heap_bubble_up(int idx) { function heap_bubble_down (line 48) | static void heap_bubble_down(int idx) { function heap_insert (line 75) | static int heap_insert(connection_t *c) { function heap_print (line 85) | static void heap_print() { function connection_set_nodelay (line 100) | static inline void connection_set_nodelay(connection_t *c) { function connection_t (line 105) | connection_t *connection_init() { function connection_t (line 126) | connection_t *connection_accept(int fd, struct sockaddr_in *paddr) { function connection_register (line 165) | int connection_register(connection_t *c) { function connection_unregister (line 172) | void connection_unregister(connection_t *c) { function connection_free (line 180) | static inline void connection_free(connection_t *c) { function connection_close (line 195) | int connection_close(connection_t *c) { function connection_prune (line 210) | void connection_prune() { function connecion_is_expired (line 224) | inline bool connecion_is_expired(connection_t *c) { function connecion_set_reactivated (line 228) | void connecion_set_reactivated(connection_t *c) { function connecion_set_expired (line 233) | void connecion_set_expired(connection_t *c) { function set_fd_nonblocking (line 238) | int set_fd_nonblocking(int fd) { FILE: src/connection.h type connection (line 13) | struct connection { type connection_t (line 21) | typedef struct connection connection_t; type sockaddr_in (line 23) | struct sockaddr_in FILE: src/dict.c function ssstr_hash_sdbm (line 9) | static unsigned int ssstr_hash_sdbm(const ssstr_t *key) { function dict_put (line 21) | void dict_put(dict_t *dict, const ssstr_t *key, void *val) { function dict_free (line 52) | void dict_free(dict_t *d) { FILE: src/dict.h type dict_node_t (line 14) | typedef struct dict_node { type dict_t (line 20) | typedef struct { function dict_init (line 26) | static inline void dict_init(dict_t *d) { function dict_node_init (line 31) | static inline void dict_node_init(dict_node_t *node, ssstr_t *s, void *v, FILE: src/http_parser.c function parse_request_line (line 31) | int parse_request_line(buffer_t *b, parse_archive *ar) { function parse_header_line (line 225) | int parse_header_line(buffer_t *b, parse_archive *ar) { function parse_method (line 340) | static int parse_method(char *begin, char *end) { function parse_url (line 385) | static int parse_url(char *begin, char *end, parse_archive *ar) { function parse_header_body_identity (line 460) | int parse_header_body_identity(buffer_t *b, parse_archive *ar) { FILE: src/http_parser.h type http_method (line 60) | typedef enum { type http_version (line 70) | typedef struct { type req_url (line 76) | typedef struct { type parser_state (line 83) | typedef enum { type transfer_encoding_t (line 118) | typedef enum { type request_headers_t (line 127) | typedef struct { type parse_archive (line 147) | typedef struct { function parse_archive_init (line 181) | static inline void parse_archive_init(parse_archive *ar, buffer_t *b) { FILE: src/lotos_epoll.c type epoll_event (line 6) | struct epoll_event function lotos_epoll_create (line 8) | int lotos_epoll_create(int flags) { return epoll_create1(flags); } function lotos_epoll_add (line 10) | int lotos_epoll_add(int epoll_fd, connection_t *c, uint32_t events, function lotos_epoll_mod (line 16) | int lotos_epoll_mod(int epoll_fd, connection_t *c, uint32_t events, function lotos_epoll_del (line 22) | int lotos_epoll_del(int epoll_fd, connection_t *c, uint32_t events, function lotos_epoll_wait (line 28) | inline int lotos_epoll_wait(int epoll_fd, struct epoll_event *events, FILE: src/lotos_epoll.h type epoll_event (line 17) | struct epoll_event type epoll_event (line 21) | struct epoll_event type epoll_event (line 23) | struct epoll_event type epoll_event (line 25) | struct epoll_event type epoll_event (line 26) | struct epoll_event function connection_enable_in (line 29) | static inline int connection_enable_in(int epoll_fd, connection_t *c) { function connection_disable_in (line 36) | static inline int connection_disable_in(int epoll_fd, connection_t *c) { function connection_enable_out (line 43) | static inline int connection_enable_out(int epoll_fd, connection_t *c) { function connection_disable_out (line 50) | static inline int connection_disable_out(int epoll_fd, connection_t *c) { FILE: src/main.c function usage (line 13) | static void usage(const char *executable) { function main (line 19) | int main(int argc, char *argv[]) { FILE: src/mem_pool.c function pool_create (line 10) | int pool_create(mem_pool_t *pool, size_t nmemb, size_t size) { function pool_destroy (line 46) | void pool_destroy(mem_pool_t *pool) { function pool_free (line 66) | void pool_free(mem_pool_t *pool, void *ptr) { FILE: src/mem_pool.h type mem_pool_t (line 5) | typedef struct { FILE: src/misc.c function lotos_log (line 6) | void lotos_log(int priority, const char *format, ...) { FILE: src/request.c type request (line 27) | struct request type request (line 28) | struct request type request (line 29) | struct request type request (line 30) | struct request type header_func (line 39) | typedef struct { function header_handler_dict_init (line 72) | void header_handler_dict_init() { function header_handler_dict_free (line 81) | void header_handler_dict_free() { dict_free(&header_handler_dict); } function request_init (line 83) | int request_init(request_t *r, connection_t *c) { function request_reset (line 101) | int request_reset(request_t *r) { function request_recv (line 121) | static int request_recv(request_t *r) { function request_handle (line 142) | int request_handle(connection_t *c) { function request_handle_request_line (line 168) | static int request_handle_request_line(request_t *r) { function request_handle_headers (line 224) | static int request_handle_headers(request_t *r) { function request_handle_body (line 264) | static int request_handle_body(request_t *r) { function request_handle_hd_base (line 294) | int request_handle_hd_base(request_t *r, size_t offset) { function request_handle_hd_connection (line 301) | int request_handle_hd_connection(request_t *r, size_t offset) { function request_handle_hd_content_length (line 315) | int request_handle_hd_content_length(request_t *r, size_t offset) { function request_handle_hd_transfer_encoding (line 329) | int request_handle_hd_transfer_encoding(request_t *r, size_t offset) { function response_send (line 364) | static int response_send(request_t *r) { function response_handle (line 386) | int response_handle(struct connection *c) { function response_handle_send_buffer (line 403) | int response_handle_send_buffer(struct request *r) { function response_handle_send_file (line 420) | int response_handle_send_file(struct request *r) { function response_assemble_buffer (line 441) | int response_assemble_buffer(struct request *r) { function response_assemble_err_buffer (line 452) | int response_assemble_err_buffer(struct request *r, int status_code) { FILE: src/request.h type request (line 9) | struct request { type request_t (line 20) | typedef struct request request_t; type connection (line 22) | struct connection type connection (line 24) | struct connection type connection (line 26) | struct connection FILE: src/response.c function mime_dict_init (line 41) | void mime_dict_init() { function mime_dict_free (line 50) | void mime_dict_free() { dict_free(&mime_dict); } function status_table_init (line 52) | void status_table_init() { function err_page_init (line 61) | int err_page_init() { function err_page_free (line 80) | void err_page_free() { function response_append_status_line (line 90) | void response_append_status_line(struct request *r) { function response_append_date (line 104) | void response_append_date(struct request *r) { function response_append_server (line 114) | void response_append_server(struct request *r) { function response_append_content_type (line 120) | void response_append_content_type(struct request *r) { function response_append_content_length (line 141) | void response_append_content_length(struct request *r) { function response_append_connection (line 159) | void response_append_connection(struct request *r) { function response_append_crlf (line 171) | void response_append_crlf(struct request *r) { FILE: src/response.h type http_status (line 73) | typedef enum { type err_page_t (line 84) | typedef struct { type request (line 96) | struct request type request (line 97) | struct request type request (line 98) | struct request type request (line 99) | struct request type request (line 100) | struct request type request (line 101) | struct request type request (line 102) | struct request FILE: src/server.c function config_parse (line 43) | int config_parse(int argc, char *argv[]) { function sigint_handler (line 84) | static void sigint_handler(int signum) { function server_setup (line 98) | int server_setup(uint16_t port) { function server_shutdown (line 120) | int server_shutdown() { return close(listen_fd); } function server_accept (line 122) | int server_accept(int listen_fd) { function make_server_socket (line 132) | static int make_server_socket(uint16_t port, int backlog) { function add_listen_fd (line 160) | static int add_listen_fd() { function get_internet_address (line 168) | int get_internet_address(char *host, int len, uint16_t *pport, FILE: src/server.h type config_t (line 9) | typedef struct { type sockaddr_in (line 30) | struct sockaddr_in FILE: src/ssstr.c function ssstr_print (line 7) | void ssstr_print(const ssstr_t *s) { function ssstr_tolower (line 18) | void ssstr_tolower(ssstr_t *s) { function ssstr_cmp (line 25) | int ssstr_cmp(const ssstr_t *l, const ssstr_t *r) { function ssstr_equal (line 48) | bool ssstr_equal(const ssstr_t *s, const char *cstr) { FILE: src/ssstr.h type ssstr_t (line 12) | typedef struct { function ssstr_init (line 25) | static inline void ssstr_init(ssstr_t *s) { function ssstr_set (line 30) | static inline void ssstr_set(ssstr_t *s, const char *cstr) { function ssstr_caseequal (line 40) | static inline bool ssstr_caseequal(ssstr_t *s, const char *cstr) { FILE: src/test/buffer_test.c function test1 (line 6) | void test1() { function test2 (line 17) | void test2() { function test3 (line 28) | void test3() { function test4 (line 39) | void test4() { function test5 (line 52) | void test5() { function test6 (line 70) | void test6() { function test7 (line 86) | void test7() { function main (line 100) | int main(int argc, char const *argv[]) { FILE: src/test/dict_test.c function make_dict (line 81) | void make_dict() { function test1 (line 92) | void test1() { function test2 (line 97) | void test2() { function test3 (line 106) | void test3() { function test4 (line 118) | void test4() { function test5 (line 127) | void test5() { function test6 (line 136) | void test6() { function test7 (line 145) | void test7() { function test8 (line 154) | void test8() { function main (line 163) | int main(int argc, char const *argv[]) { FILE: src/test/heap_test.c function c_swap (line 16) | inline static void c_swap(int x, int y) { function heap_bubble_up (line 27) | static void heap_bubble_up(int idx) { function heap_bubble_down (line 40) | static void heap_bubble_down(int idx) { function heap_insert (line 67) | static int heap_insert(connection_t *c) { function TEST_BUBBLE_UP (line 79) | void TEST_BUBBLE_UP(int input[], int ans[], size_t n) { function TEST_BUBBLE_DOWN (line 105) | void TEST_BUBBLE_DOWN(int input[], int ans[], size_t n, int pos, int nva... function main (line 134) | int main(int argc, char const *argv[]) { FILE: src/test/mem_pool_test.c function test1 (line 6) | void test1() { function test2 (line 22) | void test2() { function test3 (line 56) | void test3() { function main (line 97) | int main(int argc, char const *argv[]) { FILE: src/test/parse_test.c function test_method1 (line 9) | void test_method1() { function test_method2 (line 25) | void test_method2() { function test_method3 (line 50) | void test_method3() { function test_method4 (line 72) | void test_method4() { function test_method5 (line 91) | void test_method5() { function test_method6 (line 127) | void test_method6() { function main (line 207) | int main(int argc, char const *argv[]) { FILE: src/test/slow_client.c function connect_to_server (line 85) | int connect_to_server(uint16_t port) { function main (line 102) | int main(int argc, char *argv[]) { FILE: src/test/ssstr_test.c function test1 (line 6) | void test1() { function test2 (line 12) | void test2() { function test3 (line 22) | void test3() { function test4 (line 31) | void test4() { function test5 (line 40) | void test5() { function test6 (line 53) | void test6() { function test7 (line 62) | void test7() { function test8 (line 73) | void test8() { function test9 (line 85) | void test9() { function test10 (line 99) | void test10() { function main (line 110) | int main(int argc, char const *argv[]) {