Mercurial > hg > nginx-quic
view contrib/unicode2nginx/unicode-to-nginx.pl @ 8192:183275308d9a quic
QUIC: fixed address validation issues in a new connection.
The client address validation didn't complete with a valid token,
which was broken after packet processing refactoring in d0d3fc0697a0.
An invalid or expired token was treated as a connection error.
Now we proceed as outlined in draft-ietf-quic-transport-32,
section 8.1.3 "Address Validation for Future Connections" below,
which is unlike validating the client address using Retry packets.
When a server receives an Initial packet with an address validation
token, it MUST attempt to validate the token, unless it has already
completed address validation. If the token is invalid then the
server SHOULD proceed as if the client did not have a validated
address, including potentially sending a Retry.
The connection is now closed in this case on internal errors only.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Mon, 02 Nov 2020 17:38:11 +0000 |
parents | 8752257e883f |
children |
line wrap: on
line source
#!/usr/bin/perl -w # Convert unicode mappings to nginx configuration file format. # You may find useful mappings in various places, including # unicode.org official site: # # http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1251.TXT # http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT # Needs perl 5.6 or later. # Written by Maxim Dounin, mdounin@mdounin.ru ############################################################################### require 5.006; while (<>) { # Skip comments and empty lines next if /^#/; next if /^\s*$/; chomp; # Convert mappings if (/^\s*0x(..)\s*0x(....)\s*(#.*)/) { # Mapping <from-code> <unicode-code> "#" <unicode-name> my $cs_code = $1; my $un_code = $2; my $un_name = $3; # Produce UTF-8 sequence from character code; my $un_utf8 = join('', map { sprintf("%02X", $_) } unpack("U0C*", pack("U", hex($un_code))) ); print " $cs_code $un_utf8 ; $un_name\n"; } else { warn "Unrecognized line: '$_'"; } } ###############################################################################