Protocol

Types

Note

These were in ymo_proto_http.c, but moved here to make testing a little easier…

Functions

ymo_status_t ymo_proto_http_init(ymo_proto_t *proto, ymo_server_t *server)
void ymo_proto_http_cleanup(ymo_proto_t *proto, ymo_server_t *server)
void *ymo_proto_http_conn_init(void *proto_data, ymo_conn_t *conn)
void ymo_proto_http_conn_cleanup(void *proto_data, ymo_conn_t *conn, void *conn_data)
ssize_t ymo_proto_http_read(void *proto_data, ymo_conn_t *conn, void *conn_data, char *recv_buf, size_t len)

HTTP Parse main entry point.

Parameters
  • server – ymo_server issuing the parse exchange

  • session – HTTP session we’re parsing

  • proto_data – HTTP-specific data created by proto init

  • recv_buf – server read buffer

  • len – number of bytes in recv_buf

Returns

number of bytes parsed on success, -1 on failure.

ymo_status_t ymo_proto_http_write(void *proto_data, ymo_conn_t *conn, void *conn_data, int socket)

HTTP protocol write callback

ssize_t ymo_proto_http_handle_error(ymo_http_session_t *session, ymo_http_exchange_t *exchange, ymo_conn_t *conn, ymo_status_t status)