nghttpx: Tweak close wait handling
This commit is contained in:
parent
e2e6d827c7
commit
684a219e39
|
@ -93,13 +93,34 @@ int QUICConnectionHandler::handle_packet(const UpstreamAddr *faddr,
|
||||||
auto &quicconf = config->quic;
|
auto &quicconf = config->quic;
|
||||||
|
|
||||||
auto it = connections_.find(dcid_key);
|
auto it = connections_.find(dcid_key);
|
||||||
if ((data[0] & 0x80) && it == std::end(connections_)) {
|
if (it == std::end(connections_)) {
|
||||||
if (generate_quic_hashed_connection_id(dcid_key, remote_addr, local_addr,
|
auto cwit = close_waits_.find(dcid_key);
|
||||||
dcid_key) != 0) {
|
if (cwit != std::end(close_waits_)) {
|
||||||
|
auto cw = (*cwit).second;
|
||||||
|
|
||||||
|
cw->handle_packet(faddr, remote_addr, local_addr, data, datalen);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
it = connections_.find(dcid_key);
|
if (data[0] & 0x80) {
|
||||||
|
if (generate_quic_hashed_connection_id(dcid_key, remote_addr, local_addr,
|
||||||
|
dcid_key) != 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
it = connections_.find(dcid_key);
|
||||||
|
if (it == std::end(connections_)) {
|
||||||
|
auto cwit = close_waits_.find(dcid_key);
|
||||||
|
if (cwit != std::end(close_waits_)) {
|
||||||
|
auto cw = (*cwit).second;
|
||||||
|
|
||||||
|
cw->handle_packet(faddr, remote_addr, local_addr, data, datalen);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (it == std::end(connections_)) {
|
if (it == std::end(connections_)) {
|
||||||
|
@ -129,15 +150,6 @@ int QUICConnectionHandler::handle_packet(const UpstreamAddr *faddr,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
auto it = close_waits_.find(dcid_key);
|
|
||||||
if (it != std::end(close_waits_)) {
|
|
||||||
auto cw = (*it).second;
|
|
||||||
|
|
||||||
cw->handle_packet(faddr, remote_addr, local_addr, data, datalen);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// new connection
|
// new connection
|
||||||
|
|
||||||
auto &upstreamconf = config->conn.upstream;
|
auto &upstreamconf = config->conn.upstream;
|
||||||
|
|
Loading…
Reference in New Issue