++clientState.nonCompliantQueries;
++frontend.d_errorResponses;
h3_send_response(conn, streamID, 400, msg);
+ conn.d_streamBuffers.erase(streamID);
+ conn.d_headersBuffers.erase(streamID);
};
auto& headers = conn.d_headersBuffers.at(streamID);
}
case QUICHE_H3_EVENT_FINISHED:
case QUICHE_H3_EVENT_RESET:
- case QUICHE_H3_EVENT_PRIORITY_UPDATE:
+ conn.d_headersBuffers.erase(streamID);
+ conn.d_streamBuffers.erase(streamID);
+ break;
case QUICHE_H3_EVENT_GOAWAY:
+ case QUICHE_H3_EVENT_PRIORITY_UPDATE:
break;
}
++dnsdist::metrics::g_stats.nonCompliantQueries;
++clientState.nonCompliantQueries;
quiche_conn_stream_shutdown(conn.d_conn.get(), streamID, QUICHE_SHUTDOWN_WRITE, static_cast<uint64_t>(DOQ_Error_Codes::DOQ_PROTOCOL_ERROR));
+ conn.d_streamBuffers.erase(streamID);
return;
}
++dnsdist::metrics::g_stats.nonCompliantQueries;
++clientState.nonCompliantQueries;
quiche_conn_stream_shutdown(conn.d_conn.get(), streamID, QUICHE_SHUTDOWN_WRITE, static_cast<uint64_t>(DOQ_Error_Codes::DOQ_PROTOCOL_ERROR));
+ conn.d_streamBuffers.erase(streamID);
return;
}
++dnsdist::metrics::g_stats.nonCompliantQueries;
++clientState.nonCompliantQueries;
quiche_conn_stream_shutdown(conn.d_conn.get(), streamID, QUICHE_SHUTDOWN_WRITE, static_cast<uint64_t>(DOQ_Error_Codes::DOQ_PROTOCOL_ERROR));
+ conn.d_streamBuffers.erase(streamID);
return;
}
DEBUGLOG("Dispatching query");