int nghttp2_submit_response(nghttp2_session *session, int32_t stream_id, const nghttp2_nv *nva, size_t nvlen, const nghttp2_data_provider *data_prd) { uint8_t flags = set_response_flags(data_prd); return submit_headers_shared_nva(session, flags, stream_id, NULL, nva, nvlen, data_prd, NULL); }
int32_t nghttp2_submit_request(nghttp2_session *session, const nghttp2_priority_spec *pri_spec, const nghttp2_nv *nva, size_t nvlen, const nghttp2_data_provider *data_prd, void *stream_user_data) { uint8_t flags; int rv; if (session->server) { return NGHTTP2_ERR_PROTO; } if (pri_spec && !nghttp2_priority_spec_check_default(pri_spec)) { rv = detect_self_dependency(session, -1, pri_spec); if (rv != 0) { return rv; } } else { pri_spec = NULL; } flags = set_request_flags(pri_spec, data_prd); return submit_headers_shared_nva(session, flags, -1, pri_spec, nva, nvlen, data_prd, stream_user_data); }
int32_t nghttp2_submit_headers(nghttp2_session *session, uint8_t flags, int32_t stream_id, const nghttp2_priority_spec *pri_spec, const nghttp2_nv *nva, size_t nvlen, void *stream_user_data) { int rv; if (stream_id == -1) { if (session->server) { return NGHTTP2_ERR_PROTO; } } else if (stream_id <= 0) { return NGHTTP2_ERR_INVALID_ARGUMENT; } flags &= NGHTTP2_FLAG_END_STREAM; if (pri_spec && !nghttp2_priority_spec_check_default(pri_spec)) { rv = detect_self_dependency(session, stream_id, pri_spec); if (rv != 0) { return rv; } flags |= NGHTTP2_FLAG_PRIORITY; } else { pri_spec = NULL; } return submit_headers_shared_nva(session, flags, stream_id, pri_spec, nva, nvlen, NULL, stream_user_data); }
int nghttp2_submit_trailer(nghttp2_session *session, int32_t stream_id, const nghttp2_nv *nva, size_t nvlen) { if (stream_id <= 0) { return NGHTTP2_ERR_INVALID_ARGUMENT; } return (int)submit_headers_shared_nva(session, NGHTTP2_FLAG_END_STREAM, stream_id, NULL, nva, nvlen, NULL, NULL); }
int32_t nghttp2_submit_request(nghttp2_session *session, const nghttp2_priority_spec *pri_spec, const nghttp2_nv *nva, size_t nvlen, const nghttp2_data_provider *data_prd, void *stream_user_data) { uint8_t flags; if (pri_spec && nghttp2_priority_spec_check_default(pri_spec)) { pri_spec = NULL; } flags = set_request_flags(pri_spec, data_prd); return submit_headers_shared_nva(session, flags, -1, pri_spec, nva, nvlen, data_prd, stream_user_data); }
int32_t nghttp2_submit_headers(nghttp2_session *session, uint8_t flags, int32_t stream_id, const nghttp2_priority_spec *pri_spec, const nghttp2_nv *nva, size_t nvlen, void *stream_user_data) { flags &= NGHTTP2_FLAG_END_STREAM; if (pri_spec && !nghttp2_priority_spec_check_default(pri_spec)) { flags |= NGHTTP2_FLAG_PRIORITY; } else { pri_spec = NULL; } return submit_headers_shared_nva(session, flags, stream_id, pri_spec, nva, nvlen, NULL, stream_user_data); }
int nghttp2_submit_response(nghttp2_session *session, int32_t stream_id, const nghttp2_nv *nva, size_t nvlen, const nghttp2_data_provider *data_prd) { uint8_t flags; if (stream_id <= 0) { return NGHTTP2_ERR_INVALID_ARGUMENT; } if (!session->server) { return NGHTTP2_ERR_PROTO; } flags = set_response_flags(data_prd); return submit_headers_shared_nva(session, flags, stream_id, NULL, nva, nvlen, data_prd, NULL); }
int32_t nghttp2_submit_trailer(nghttp2_session *session, int32_t stream_id, const nghttp2_nv *nva, size_t nvlen) { return submit_headers_shared_nva(session, NGHTTP2_FLAG_END_STREAM, stream_id, NULL, nva, nvlen, NULL, NULL, 0); }