13a14 > #include 14a16 > 26d27 < typedef struct nxt_app_module_s nxt_application_module_t; 34c35 < nxt_application_module_t *module; --- > nxt_app_module_t *module; 131a133 > 146,214d147 < typedef struct nxt_app_wmsg_s nxt_app_wmsg_t; < typedef struct nxt_app_rmsg_s nxt_app_rmsg_t; < < struct nxt_app_wmsg_s { < nxt_port_t *port; /* where prepared buf will be sent */ < nxt_buf_t *write; < nxt_buf_t **buf; < uint32_t stream; < }; < < < struct nxt_app_rmsg_s { < nxt_buf_t *buf; /* current buffer to read */ < }; < < < nxt_inline u_char * < nxt_app_msg_write_length(u_char *dst, size_t length); < < /* TODO asynchronous mmap buffer assignment */ < NXT_EXPORT u_char *nxt_app_msg_write_get_buf(nxt_task_t *task, < nxt_app_wmsg_t *msg, size_t size); < < NXT_EXPORT nxt_int_t nxt_app_msg_write(nxt_task_t *task, nxt_app_wmsg_t *msg, < u_char *c, size_t size); < < NXT_EXPORT nxt_int_t nxt_app_msg_write_prefixed_upcase(nxt_task_t *task, < nxt_app_wmsg_t *msg, const nxt_str_t *prefix, u_char *c, size_t size); < < nxt_inline nxt_int_t < nxt_app_msg_write_nvp_(nxt_task_t *task, nxt_app_wmsg_t *msg, < u_char *n, size_t nsize, u_char *v, size_t vsize); < < < #define nxt_app_msg_write_const(task, msg, c) \ < nxt_app_msg_write((task), (msg), (u_char *) (c), nxt_length(c)) < < #define nxt_app_msg_write_str(task, msg, str) \ < nxt_app_msg_write((task), (msg), (str)->start, (str)->length) < < #define nxt_app_msg_write_cstr(task, msg, c) \ < nxt_app_msg_write((task), (msg), (c), nxt_strlen(c)) < < #define nxt_app_msg_write_nvp(task, msg, n, v) \ < nxt_app_msg_write_nvp_((task), (msg), (u_char *) (n), nxt_length(n), \ < (v)->start, (v)->length) < < nxt_inline nxt_int_t nxt_app_msg_write_size(nxt_task_t *task, < nxt_app_wmsg_t *msg, size_t size); < < NXT_EXPORT nxt_int_t nxt_app_msg_flush(nxt_task_t *task, nxt_app_wmsg_t *msg, < nxt_bool_t last); < < NXT_EXPORT nxt_int_t nxt_app_msg_write_raw(nxt_task_t *task, < nxt_app_wmsg_t *msg, const u_char *c, size_t size); < < NXT_EXPORT nxt_int_t nxt_app_msg_read_str(nxt_task_t *task, nxt_app_rmsg_t *msg, < nxt_str_t *str); < < NXT_EXPORT size_t nxt_app_msg_read_raw(nxt_task_t *task, < nxt_app_rmsg_t *msg, void *buf, size_t size); < < NXT_EXPORT nxt_int_t nxt_app_msg_read_nvp(nxt_task_t *task, < nxt_app_rmsg_t *rmsg, nxt_str_t *n, nxt_str_t *v); < < NXT_EXPORT nxt_int_t nxt_app_msg_read_size(nxt_task_t *task, < nxt_app_rmsg_t *rmsg, size_t *size); < < 224,227d156 < nxt_int_t (*run)(nxt_task_t *task, < nxt_app_rmsg_t *rmsg, < nxt_app_wmsg_t *wmsg); < void (*atexit)(nxt_task_t *task); 231,306d159 < nxt_int_t nxt_app_http_read_body(nxt_app_request_t *r, u_char *data, < size_t len); < nxt_int_t nxt_app_write(nxt_app_request_t *r, const u_char *data, size_t len); < < nxt_inline u_char * < nxt_app_msg_write_length(u_char *dst, size_t length) < { < if (length < 128) { < *dst = length; < dst++; < < } else { < dst[0] = 0x80U | (length >> 24); < dst[1] = 0xFFU & (length >> 16); < dst[2] = 0xFFU & (length >> 8); < dst[3] = 0xFFU & length; < dst += 4; < } < < return dst; < } < < < nxt_inline nxt_int_t < nxt_app_msg_write_nvp_(nxt_task_t *task, nxt_app_wmsg_t *msg, < u_char *n, size_t nsize, u_char *v, size_t vsize) < { < nxt_int_t rc; < < rc = nxt_app_msg_write(task, msg, n, nsize); < if (nxt_slow_path(rc != NXT_OK)) { < return rc; < } < < return nxt_app_msg_write(task, msg, v, vsize); < } < < < nxt_inline nxt_int_t < nxt_app_msg_write_size(nxt_task_t *task, nxt_app_wmsg_t *msg, size_t size) < { < u_char *dst; < size_t dst_length; < < dst_length = size < 128 ? 1 : 4; < < dst = nxt_app_msg_write_get_buf(task, msg, dst_length); < if (nxt_slow_path(dst == NULL)) { < return NXT_ERROR; < } < < nxt_app_msg_write_length(dst, size); < < return NXT_OK; < } < < < nxt_inline u_char * < nxt_app_msg_read_length(u_char *src, size_t *length) < { < if (src[0] < 128) { < *length = src[0]; < src++; < < } else { < *length = ((src[0] & 0x7FU) << 24) < + ( src[1] << 16) < + ( src[2] << 8) < + src[3]; < src += 4; < } < < return src; < } < < 310,311c163,164 < NXT_EXPORT extern nxt_str_t nxt_server; < extern nxt_application_module_t nxt_go_module; --- > NXT_EXPORT extern nxt_str_t nxt_server; > extern nxt_app_module_t nxt_go_module; 312a166,167 > NXT_EXPORT nxt_int_t nxt_unit_default_init(nxt_task_t *task, > nxt_unit_init_t *init); 313a169 >