Lines Matching full:srv
54 QUIC_TSERVER *srv = arg; in alpn_select_cb() local
61 if (srv->args.alpn == NULL) { in alpn_select_cb()
65 alpn = srv->args.alpn; in alpn_select_cb()
66 alpnlen = srv->args.alpnlen; in alpn_select_cb()
79 QUIC_TSERVER *srv = NULL; in ossl_quic_tserver_new() local
87 if ((srv = OPENSSL_zalloc(sizeof(*srv))) == NULL) in ossl_quic_tserver_new()
90 srv->args = *args; in ossl_quic_tserver_new()
93 if ((srv->mutex = ossl_crypto_mutex_new()) == NULL) in ossl_quic_tserver_new()
98 srv->ctx = args->ctx; in ossl_quic_tserver_new()
100 srv->ctx = SSL_CTX_new_ex(srv->args.libctx, srv->args.propq, in ossl_quic_tserver_new()
102 if (srv->ctx == NULL) in ossl_quic_tserver_new()
106 && SSL_CTX_use_certificate_file(srv->ctx, certfile, SSL_FILETYPE_PEM) <= 0) in ossl_quic_tserver_new()
110 && SSL_CTX_use_PrivateKey_file(srv->ctx, keyfile, SSL_FILETYPE_PEM) <= 0) in ossl_quic_tserver_new()
113 SSL_CTX_set_alpn_select_cb(srv->ctx, alpn_select_cb, srv); in ossl_quic_tserver_new()
115 srv->tls = SSL_new(srv->ctx); in ossl_quic_tserver_new()
116 if (srv->tls == NULL) in ossl_quic_tserver_new()
119 engine_args.libctx = srv->args.libctx; in ossl_quic_tserver_new()
120 engine_args.propq = srv->args.propq; in ossl_quic_tserver_new()
121 engine_args.mutex = srv->mutex; in ossl_quic_tserver_new()
123 if ((srv->engine = ossl_quic_engine_new(&engine_args)) == NULL) in ossl_quic_tserver_new()
126 ossl_quic_engine_set_time_cb(srv->engine, srv->args.now_cb, in ossl_quic_tserver_new()
127 srv->args.now_cb_arg); in ossl_quic_tserver_new()
129 port_args.channel_ctx = srv->ctx; in ossl_quic_tserver_new()
132 if ((srv->port = ossl_quic_engine_create_port(srv->engine, &port_args)) == NULL) in ossl_quic_tserver_new()
135 if ((srv->ch = ossl_quic_port_create_incoming(srv->port, srv->tls)) == NULL) in ossl_quic_tserver_new()
138 if (!ossl_quic_port_set_net_rbio(srv->port, srv->args.net_rbio) in ossl_quic_tserver_new()
139 || !ossl_quic_port_set_net_wbio(srv->port, srv->args.net_wbio)) in ossl_quic_tserver_new()
145 srv->ssl = (SSL *)qc; in ossl_quic_tserver_new()
146 qc->ch = srv->ch; in ossl_quic_tserver_new()
147 srv->ssl->type = SSL_TYPE_QUIC_CONNECTION; in ossl_quic_tserver_new()
149 return srv; in ossl_quic_tserver_new()
152 if (srv != NULL) { in ossl_quic_tserver_new()
154 SSL_CTX_free(srv->ctx); in ossl_quic_tserver_new()
155 SSL_free(srv->tls); in ossl_quic_tserver_new()
156 ossl_quic_channel_free(srv->ch); in ossl_quic_tserver_new()
157 ossl_quic_port_free(srv->port); in ossl_quic_tserver_new()
158 ossl_quic_engine_free(srv->engine); in ossl_quic_tserver_new()
160 ossl_crypto_mutex_free(&srv->mutex); in ossl_quic_tserver_new()
165 OPENSSL_free(srv); in ossl_quic_tserver_new()
169 void ossl_quic_tserver_free(QUIC_TSERVER *srv) in ossl_quic_tserver_free() argument
171 if (srv == NULL) in ossl_quic_tserver_free()
174 SSL_free(srv->tls); in ossl_quic_tserver_free()
175 ossl_quic_channel_free(srv->ch); in ossl_quic_tserver_free()
176 ossl_quic_port_free(srv->port); in ossl_quic_tserver_free()
177 ossl_quic_engine_free(srv->engine); in ossl_quic_tserver_free()
178 BIO_free_all(srv->args.net_rbio); in ossl_quic_tserver_free()
179 BIO_free_all(srv->args.net_wbio); in ossl_quic_tserver_free()
180 OPENSSL_free(srv->ssl); in ossl_quic_tserver_free()
181 SSL_CTX_free(srv->ctx); in ossl_quic_tserver_free()
183 ossl_crypto_mutex_free(&srv->mutex); in ossl_quic_tserver_free()
185 OPENSSL_free(srv); in ossl_quic_tserver_free()
189 int ossl_quic_tserver_set_plain_packet_mutator(QUIC_TSERVER *srv, in ossl_quic_tserver_set_plain_packet_mutator() argument
194 return ossl_quic_channel_set_mutator(srv->ch, mutatecb, finishmutatecb, in ossl_quic_tserver_set_plain_packet_mutator()
198 int ossl_quic_tserver_set_handshake_mutator(QUIC_TSERVER *srv, in ossl_quic_tserver_set_handshake_mutator() argument
203 return ossl_statem_set_mutator(ossl_quic_channel_get0_ssl(srv->ch), in ossl_quic_tserver_set_handshake_mutator()
209 int ossl_quic_tserver_tick(QUIC_TSERVER *srv) in ossl_quic_tserver_tick() argument
211 ossl_quic_reactor_tick(ossl_quic_channel_get_reactor(srv->ch), 0); in ossl_quic_tserver_tick()
213 if (ossl_quic_channel_is_active(srv->ch)) in ossl_quic_tserver_tick()
214 srv->connected = 1; in ossl_quic_tserver_tick()
219 int ossl_quic_tserver_is_connected(QUIC_TSERVER *srv) in ossl_quic_tserver_is_connected() argument
221 return ossl_quic_channel_is_active(srv->ch); in ossl_quic_tserver_is_connected()
225 int ossl_quic_tserver_is_term_any(const QUIC_TSERVER *srv) in ossl_quic_tserver_is_term_any() argument
227 return ossl_quic_channel_is_term_any(srv->ch); in ossl_quic_tserver_is_term_any()
231 ossl_quic_tserver_get_terminate_cause(const QUIC_TSERVER *srv) in ossl_quic_tserver_get_terminate_cause() argument
233 return ossl_quic_channel_get_terminate_cause(srv->ch); in ossl_quic_tserver_get_terminate_cause()
237 int ossl_quic_tserver_is_terminated(const QUIC_TSERVER *srv) in ossl_quic_tserver_is_terminated() argument
239 return ossl_quic_channel_is_terminated(srv->ch); in ossl_quic_tserver_is_terminated()
242 size_t ossl_quic_tserver_get_short_header_conn_id_len(const QUIC_TSERVER *srv) in ossl_quic_tserver_get_short_header_conn_id_len() argument
244 return ossl_quic_channel_get_short_header_conn_id_len(srv->ch); in ossl_quic_tserver_get_short_header_conn_id_len()
247 int ossl_quic_tserver_is_handshake_confirmed(const QUIC_TSERVER *srv) in ossl_quic_tserver_is_handshake_confirmed() argument
249 return ossl_quic_channel_is_handshake_confirmed(srv->ch); in ossl_quic_tserver_is_handshake_confirmed()
252 int ossl_quic_tserver_read(QUIC_TSERVER *srv, in ossl_quic_tserver_read() argument
261 qs = ossl_quic_stream_map_get_by_id(ossl_quic_channel_get_qsm(srv->ch), in ossl_quic_tserver_read()
274 if (!is_client_init || !ossl_quic_channel_is_active(srv->ch)) in ossl_quic_tserver_read()
298 ossl_statm_get_rtt_info(ossl_quic_channel_get_statm(srv->ch), &rtt_info); in ossl_quic_tserver_read()
306 ossl_quic_stream_map_notify_totally_read(ossl_quic_channel_get_qsm(srv->ch), in ossl_quic_tserver_read()
310 ossl_quic_stream_map_update_state(ossl_quic_channel_get_qsm(srv->ch), qs); in ossl_quic_tserver_read()
315 int ossl_quic_tserver_has_read_ended(QUIC_TSERVER *srv, uint64_t stream_id) in ossl_quic_tserver_has_read_ended() argument
322 qs = ossl_quic_stream_map_get_by_id(ossl_quic_channel_get_qsm(srv->ch), in ossl_quic_tserver_has_read_ended()
354 ossl_quic_stream_map_notify_totally_read(ossl_quic_channel_get_qsm(srv->ch), in ossl_quic_tserver_has_read_ended()
356 ossl_quic_stream_map_update_state(ossl_quic_channel_get_qsm(srv->ch), qs); in ossl_quic_tserver_has_read_ended()
363 int ossl_quic_tserver_write(QUIC_TSERVER *srv, in ossl_quic_tserver_write() argument
371 if (!ossl_quic_channel_is_active(srv->ch)) in ossl_quic_tserver_write()
374 qs = ossl_quic_stream_map_get_by_id(ossl_quic_channel_get_qsm(srv->ch), in ossl_quic_tserver_write()
388 ossl_quic_stream_map_update_state(ossl_quic_channel_get_qsm(srv->ch), qs); in ossl_quic_tserver_write()
391 ossl_quic_tserver_tick(srv); in ossl_quic_tserver_write()
395 int ossl_quic_tserver_conclude(QUIC_TSERVER *srv, uint64_t stream_id) in ossl_quic_tserver_conclude() argument
399 if (!ossl_quic_channel_is_active(srv->ch)) in ossl_quic_tserver_conclude()
402 qs = ossl_quic_stream_map_get_by_id(ossl_quic_channel_get_qsm(srv->ch), in ossl_quic_tserver_conclude()
409 ossl_quic_stream_map_update_state(ossl_quic_channel_get_qsm(srv->ch), qs); in ossl_quic_tserver_conclude()
412 ossl_quic_tserver_tick(srv); in ossl_quic_tserver_conclude()
416 int ossl_quic_tserver_stream_new(QUIC_TSERVER *srv, in ossl_quic_tserver_stream_new() argument
422 if (!ossl_quic_channel_is_active(srv->ch)) in ossl_quic_tserver_stream_new()
425 if ((qs = ossl_quic_channel_new_stream_local(srv->ch, is_uni)) == NULL) in ossl_quic_tserver_stream_new()
432 BIO *ossl_quic_tserver_get0_rbio(QUIC_TSERVER *srv) in ossl_quic_tserver_get0_rbio() argument
434 return srv->args.net_rbio; in ossl_quic_tserver_get0_rbio()
437 SSL_CTX *ossl_quic_tserver_get0_ssl_ctx(QUIC_TSERVER *srv) in ossl_quic_tserver_get0_ssl_ctx() argument
439 return srv->ctx; in ossl_quic_tserver_get0_ssl_ctx()
442 int ossl_quic_tserver_stream_has_peer_stop_sending(QUIC_TSERVER *srv, in ossl_quic_tserver_stream_has_peer_stop_sending() argument
448 qs = ossl_quic_stream_map_get_by_id(ossl_quic_channel_get_qsm(srv->ch), in ossl_quic_tserver_stream_has_peer_stop_sending()
459 int ossl_quic_tserver_stream_has_peer_reset_stream(QUIC_TSERVER *srv, in ossl_quic_tserver_stream_has_peer_reset_stream() argument
465 qs = ossl_quic_stream_map_get_by_id(ossl_quic_channel_get_qsm(srv->ch), in ossl_quic_tserver_stream_has_peer_reset_stream()
476 int ossl_quic_tserver_set_new_local_cid(QUIC_TSERVER *srv, in ossl_quic_tserver_set_new_local_cid() argument
480 return ossl_quic_channel_replace_local_cid(srv->ch, conn_id); in ossl_quic_tserver_set_new_local_cid()
483 uint64_t ossl_quic_tserver_pop_incoming_stream(QUIC_TSERVER *srv) in ossl_quic_tserver_pop_incoming_stream() argument
485 QUIC_STREAM_MAP *qsm = ossl_quic_channel_get_qsm(srv->ch); in ossl_quic_tserver_pop_incoming_stream()
496 int ossl_quic_tserver_is_stream_totally_acked(QUIC_TSERVER *srv, in ossl_quic_tserver_is_stream_totally_acked() argument
501 qs = ossl_quic_stream_map_get_by_id(ossl_quic_channel_get_qsm(srv->ch), in ossl_quic_tserver_is_stream_totally_acked()
509 int ossl_quic_tserver_get_net_read_desired(QUIC_TSERVER *srv) in ossl_quic_tserver_get_net_read_desired() argument
512 ossl_quic_channel_get_reactor(srv->ch)); in ossl_quic_tserver_get_net_read_desired()
515 int ossl_quic_tserver_get_net_write_desired(QUIC_TSERVER *srv) in ossl_quic_tserver_get_net_write_desired() argument
518 ossl_quic_channel_get_reactor(srv->ch)); in ossl_quic_tserver_get_net_write_desired()
521 OSSL_TIME ossl_quic_tserver_get_deadline(QUIC_TSERVER *srv) in ossl_quic_tserver_get_deadline() argument
524 ossl_quic_channel_get_reactor(srv->ch)); in ossl_quic_tserver_get_deadline()
527 int ossl_quic_tserver_shutdown(QUIC_TSERVER *srv, uint64_t app_error_code) in ossl_quic_tserver_shutdown() argument
529 ossl_quic_channel_local_close(srv->ch, app_error_code, NULL); in ossl_quic_tserver_shutdown()
531 if (ossl_quic_channel_is_terminated(srv->ch)) in ossl_quic_tserver_shutdown()
534 ossl_quic_reactor_tick(ossl_quic_channel_get_reactor(srv->ch), 0); in ossl_quic_tserver_shutdown()
536 return ossl_quic_channel_is_terminated(srv->ch); in ossl_quic_tserver_shutdown()
539 int ossl_quic_tserver_ping(QUIC_TSERVER *srv) in ossl_quic_tserver_ping() argument
541 if (ossl_quic_channel_is_terminated(srv->ch)) in ossl_quic_tserver_ping()
544 if (!ossl_quic_channel_ping(srv->ch)) in ossl_quic_tserver_ping()
547 ossl_quic_reactor_tick(ossl_quic_channel_get_reactor(srv->ch), 0); in ossl_quic_tserver_ping()
551 QUIC_CHANNEL *ossl_quic_tserver_get_channel(QUIC_TSERVER *srv) in ossl_quic_tserver_get_channel() argument
553 return srv->ch; in ossl_quic_tserver_get_channel()
556 void ossl_quic_tserver_set_msg_callback(QUIC_TSERVER *srv, in ossl_quic_tserver_set_msg_callback() argument
563 ossl_quic_channel_set_msg_callback(srv->ch, f, srv->ssl); in ossl_quic_tserver_set_msg_callback()
564 ossl_quic_channel_set_msg_callback_arg(srv->ch, arg); in ossl_quic_tserver_set_msg_callback()
565 SSL_set_msg_callback(srv->tls, f); in ossl_quic_tserver_set_msg_callback()
566 SSL_set_msg_callback_arg(srv->tls, arg); in ossl_quic_tserver_set_msg_callback()
569 int ossl_quic_tserver_new_ticket(QUIC_TSERVER *srv) in ossl_quic_tserver_new_ticket() argument
571 return SSL_new_session_ticket(srv->tls); in ossl_quic_tserver_new_ticket()
574 int ossl_quic_tserver_set_max_early_data(QUIC_TSERVER *srv, in ossl_quic_tserver_set_max_early_data() argument
577 return SSL_set_max_early_data(srv->tls, max_early_data); in ossl_quic_tserver_set_max_early_data()
580 void ossl_quic_tserver_set_psk_find_session_cb(QUIC_TSERVER *srv, in ossl_quic_tserver_set_psk_find_session_cb() argument
583 SSL_set_psk_find_session_callback(srv->tls, cb); in ossl_quic_tserver_set_psk_find_session_cb()