QUIC: handle callback errors in compat.

The error may be triggered in add_handhshake_data() by incorrect transport
parameter sent by client.  The expected behaviour in this case is to close
connection complaining about incorrect parameter.  Currently the connection
just times out.
pull/92/head
Vladimir Khomutov 2 years ago
parent 027b681688
commit c37fdcdd1e
  1. 14
      src/event/quic/ngx_event_quic_openssl_compat.c

@ -408,7 +408,9 @@ ngx_quic_compat_message_callback(int write_p, int version, int content_type,
"quic compat tx %s len:%uz ",
ngx_quic_level_name(level), len);
(void) com->method->add_handshake_data(ssl, level, buf, len);
if (com->method->add_handshake_data(ssl, level, buf, len) != 1) {
goto failed;
}
break;
@ -420,11 +422,19 @@ ngx_quic_compat_message_callback(int write_p, int version, int content_type,
"quic compat %s alert:%ui len:%uz ",
ngx_quic_level_name(level), alert, len);
(void) com->method->send_alert(ssl, level, alert);
if (com->method->send_alert(ssl, level, alert) != 1) {
goto failed;
}
}
break;
}
return;
failed:
ngx_post_event(&qc->close, &ngx_posted_events);
}

Loading…
Cancel
Save