* Those don't hold a reference until they are accepted, so only drop
* the count if the application has accepted them
*/
- if (ctx.qc->accepted == 1 && ctx.qc->listener != NULL)
+ if (ctx.qc->pending == 0 && ctx.qc->listener != NULL)
SSL_free(&ctx.qc->listener->obj.ssl);
if (ctx.qc->domain != NULL)
SSL_free(&ctx.qc->domain->obj.ssl);
qctx_unlock(&ctx);
- qc->accepted = 1;
return &qc->obj.ssl;
err:
conn_ssl = ossl_quic_channel_get0_tls(new_ch);
conn_ssl = SSL_CONNECTION_GET_USER_SSL(SSL_CONNECTION_FROM_SSL(conn_ssl));
qc = (QUIC_CONNECTION *)conn_ssl;
- qc->accepted = 1;
qc->listener = ctx.ql;
qc->pending = 0;
if (!SSL_up_ref(&ctx.ql->obj.ssl)) {
}
ossl_quic_channel_get_peer_addr(ch, &qc->init_peer_addr); /* best effort */
- qc->accepted = 0;
qc->listener = NULL;
qc->pending = 1;
qc->engine = ql->engine;
unsigned int addressed_mode_w : 1;
unsigned int addressed_mode_r : 1;
- /* Flag to indicate if this connection has been accepted */
- unsigned int accepted : 1;
-
/* Flag to indicate waiting on accept queue */
unsigned int pending : 1;