#ifndef __TERGIV_SOCKET_SERVER #define __TERGIV_SOCKET_SERVER #include typedef struct callback_args { void* input; size_t input_size; void* output; size_t output_size; int free_output; void* extra; size_t extra_size; } callback_args; typedef struct socket_server { int socket; int (*start)(struct socket_server* self); void (*destroy)(struct socket_server* self); void (*callback)(callback_args* args); void* callback_args; size_t callback_argc; } socket_server; socket_server* new_socket_server_single_req(uint16_t port, uint32_t incoming_ip); #endif /* __TERGIV_SOCKET_SERVER */