mini/mini_server_cb.h (54 lines of code) (raw):

#ifndef XQC_MINI_SERVER_CB_H #define XQC_MINI_SERVER_CB_H #include <fcntl.h> #include <xquic/xquic_typedef.h> #ifndef XQC_SYS_WINDOWS #include <unistd.h> #include <sys/wait.h> #else #include "../tests/getopt.h" #pragma comment(lib,"ws2_32.lib") #pragma comment(lib,"event.lib") #pragma comment(lib, "Iphlpapi.lib") #pragma comment(lib, "Bcrypt.lib") #endif #include "mini_server.h" #include <inttypes.h> #define REQ_BUF_SIZE 2048 typedef struct xqc_mini_svr_user_stream_s { xqc_h3_request_t *h3_request; // uint64_t send_offset; int header_sent; int header_recvd; size_t send_body_len; size_t recv_body_len; char *recv_buf; } xqc_mini_svr_user_stream_t; /* engine callbacks */ void xqc_mini_svr_engine_cb(int fd, short what, void *arg); void xqc_mini_svr_set_event_timer(xqc_msec_t wake_after, void *arg); int xqc_mini_svr_open_log_file(void *arg); void xqc_mini_svr_write_log_file(xqc_log_level_t lvl, const void *buf, size_t size, void *arg); void xqc_mini_svr_close_log_file(void *arg); void xqc_mini_svr_write_qlog_file(qlog_event_importance_t imp, const void *buf, size_t size, void *arg); int xqc_mini_svr_open_keylog_file(void *arg); void xqc_mini_svr_keylog_cb(const xqc_cid_t *scid, const char *line, void *arg); void xqc_mini_svr_close_keylog_file(void *arg); int xqc_mini_svr_accept(xqc_engine_t *engine, xqc_connection_t *conn, const xqc_cid_t *cid, void *eng_user_data); ssize_t xqc_mini_svr_write_socket(const unsigned char *buf, size_t size, const struct sockaddr *peer_addr, socklen_t peer_addrlen, void *arg); ssize_t xqc_mini_svr_write_socket_ex(uint64_t path_id, const unsigned char *buf, size_t size, const struct sockaddr *peer_addr,socklen_t peer_addrlen, void *arg); void xqc_mini_svr_conn_update_cid_notify(xqc_connection_t *conn, const xqc_cid_t *retire_cid, const xqc_cid_t *new_cid, void *user_data); /* h3 callbacks */ int xqc_mini_svr_h3_conn_create_notify(xqc_h3_conn_t *h3_conn, const xqc_cid_t *cid, void *conn_user_data); int xqc_mini_svr_h3_conn_close_notify(xqc_h3_conn_t *h3_conn, const xqc_cid_t *cid, void *conn_user_data); void xqc_mini_svr_h3_conn_handshake_finished(xqc_h3_conn_t *h3_conn, void *conn_user_data); int xqc_mini_svr_h3_request_create_notify(xqc_h3_request_t *h3_request, void *strm_user_data); int xqc_mini_svr_h3_request_close_notify(xqc_h3_request_t *h3_request, void *strm_user_data); int xqc_mini_svr_h3_request_read_notify(xqc_h3_request_t *h3_request, xqc_request_notify_flag_t flag, void *strm_user_data); int xqc_mini_svr_h3_request_write_notify(xqc_h3_request_t *h3_request, void *strm_user_data); int xqc_mini_svr_send_body(xqc_mini_svr_user_stream_t *user_stream); #endif