mirror of
https://github.com/nginx/nginx.git
synced 2025-07-24 06:06:25 +08:00
QUIC: fixed removal of unused client IDs.
If client ID was never used, its refcount is zero. To keep things simple, the ngx_quic_unref_client_id() function is now aware of such IDs. If client ID was used, the ngx_quic_replace_retired_client_id() function is supposed to find all users and unref the ID, thus ngx_quic_unref_client_id() should not be called after it.
This commit is contained in:
parent
0572c2a69f
commit
9ca3a02e68
@ -183,9 +183,10 @@ retire:
|
||||
if (ngx_quic_replace_retired_client_id(c, cid) != NGX_OK) {
|
||||
return NGX_ERROR;
|
||||
}
|
||||
}
|
||||
|
||||
ngx_quic_unref_client_id(c, cid);
|
||||
} else {
|
||||
ngx_quic_unref_client_id(c, cid);
|
||||
}
|
||||
}
|
||||
|
||||
done:
|
||||
@ -534,7 +535,9 @@ ngx_quic_unref_client_id(ngx_connection_t *c, ngx_quic_client_id_t *cid)
|
||||
{
|
||||
ngx_quic_connection_t *qc;
|
||||
|
||||
cid->refcnt--;
|
||||
if (cid->refcnt) {
|
||||
cid->refcnt--;
|
||||
} /* else: unused client id */
|
||||
|
||||
if (cid->refcnt) {
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user