Lines Matching refs:h2_session
145 submit_query(struct http2_session* h2_session, struct sldns_buffer* buf) in submit_query() argument
161 if(h2_session->post) { in submit_query()
164 h2_stream->path = (char*)h2_session->endpoint; in submit_query()
173 h2_session->endpoint)+strlen("?dns=")+qb64_size+1); in submit_query()
175 snprintf(h2_stream->path, strlen(h2_session->endpoint)+ in submit_query()
177 h2_session->endpoint, qb64); in submit_query()
182 if(h2_session->post) in submit_query()
189 if(h2_session->ssl) in submit_query()
194 headers[3].value = (uint8_t*)h2_session->authority; in submit_query()
196 headers[4].value = (uint8_t*)h2_session->content_type; in submit_query()
206 stream_id = nghttp2_submit_request(h2_session->session, NULL, headers, in submit_query()
208 (h2_session->post) ? &data_prd : NULL, h2_stream); in submit_query()
213 h2_session->query_count++; in submit_query()
258 struct http2_session* h2_session = (struct http2_session*)cb_arg; in http2_recv_cb() local
267 if(h2_session->block_select && h2_session->query_count <= 0) { in http2_recv_cb()
270 if(h2_session->block_select) in http2_recv_cb()
276 FD_SET(h2_session->fd, &rfd); in http2_recv_cb()
277 r = select(h2_session->fd+1, &rfd, NULL, NULL, waittv); in http2_recv_cb()
282 if(h2_session->ssl) { in http2_recv_cb()
283 r = SSL_read(h2_session->ssl, buf, len); in http2_recv_cb()
285 int want = SSL_get_error(h2_session->ssl, r); in http2_recv_cb()
295 ret = read(h2_session->fd, buf, len); in http2_recv_cb()
308 struct http2_session* h2_session = (struct http2_session*)cb_arg; in http2_send_cb() local
311 if(h2_session->ssl) { in http2_send_cb()
314 r = SSL_write(h2_session->ssl, buf, len); in http2_send_cb()
316 int want = SSL_get_error(h2_session->ssl, r); in http2_send_cb()
326 ret = write(h2_session->fd, buf, len); in http2_send_cb()
340 struct http2_session* h2_session = (struct http2_session*)cb_arg; in http2_stream_close_cb() local
343 h2_session->session, stream_id))) { in http2_stream_close_cb()
346 h2_session->query_count--; in http2_stream_close_cb()
348 if(!h2_session->post) in http2_stream_close_cb()
359 struct http2_session* h2_session = (struct http2_session*)cb_arg; in http2_data_chunk_recv_cb() local
363 h2_session->session, stream_id))) { in http2_data_chunk_recv_cb()
410 struct http2_session* h2_session = (struct http2_session*)cb_arg; in http2_header_cb() local
414 h2_session->session, frame->hd.stream_id))) { in http2_header_cb()
425 struct http2_session* h2_session = calloc(1, in http2_session_create() local
428 if(!h2_session) in http2_session_create()
433 free(h2_session); in http2_session_create()
446 nghttp2_session_client_new(&h2_session->session, callbacks, h2_session); in http2_session_create()
448 return h2_session; in http2_session_create()
452 http2_session_delete(struct http2_session* h2_session) in http2_session_delete() argument
454 nghttp2_session_del(h2_session->session); in http2_session_delete()
455 free(h2_session); in http2_session_delete()
459 http2_submit_setting(struct http2_session* h2_session) in http2_submit_setting() argument
466 ret = nghttp2_submit_settings(h2_session->session, NGHTTP2_FLAG_NONE, in http2_submit_setting()
476 http2_write(struct http2_session* h2_session) in http2_write() argument
478 if(nghttp2_session_want_write(h2_session->session)) { in http2_write()
479 if(nghttp2_session_send(h2_session->session)) { in http2_write()
487 http2_read(struct http2_session* h2_session) in http2_read() argument
489 if(nghttp2_session_want_read(h2_session->session)) { in http2_read()
490 if(nghttp2_session_recv(h2_session->session)) { in http2_read()
498 run(struct http2_session* h2_session, int port, int no_tls, int count, char** q) in run() argument
506 fd = open_svr(h2_session->authority, port); in run()
507 h2_session->fd = fd; in run()
520 h2_session->ssl = ssl; in run()
535 http2_submit_setting(h2_session); in run()
536 http2_write(h2_session); in run()
537 http2_read(h2_session); /* Read setting from remote peer */ in run()
539 h2_session->block_select = 1; in run()
544 submit_query(h2_session, buf); in run()
546 http2_write(h2_session); in run()
547 while(h2_session->query_count) { in run()
548 http2_read(h2_session); in run()
549 http2_write(h2_session); in run()
553 http2_session_delete(h2_session); in run()
572 struct http2_session* h2_session; in main() local
585 h2_session = http2_session_create(); in main()
586 if(!h2_session) fatal_exit("out of memory"); in main()
591 h2_session->authority = "127.0.0.1"; in main()
592 h2_session->post = 0; in main()
593 h2_session->endpoint = "/dns-query"; in main()
594 h2_session->content_type = "application/dns-message"; in main()
599 h2_session->content_type = optarg; in main()
602 h2_session->endpoint = optarg; in main()
616 h2_session->post = 1; in main()
619 h2_session->authority = optarg; in main()
653 run(h2_session, port, no_tls, argc, argv); in main()