mirror of
https://gitee.com/openharmony/third_party_nghttp2
synced 2024-11-27 01:50:28 +00:00
83c063346d
Check the allowed characters for ":method" (see RFC 7230, section 3.2.6) and ":path". For ":path", the space and tab characters are now forbidden, but other special characters are still allowed for compatibility reasons. Update genvchartbl.py so that it generates the same table as in the code. Fixes #1611
30 lines
1.1 KiB
Python
Executable File
30 lines
1.1 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
import sys
|
|
|
|
def name(i):
|
|
if i < 0x21:
|
|
return \
|
|
['NUL ', 'SOH ', 'STX ', 'ETX ', 'EOT ', 'ENQ ', 'ACK ', 'BEL ',
|
|
'BS ', 'HT ', 'LF ', 'VT ', 'FF ', 'CR ', 'SO ', 'SI ',
|
|
'DLE ', 'DC1 ', 'DC2 ', 'DC3 ', 'DC4 ', 'NAK ', 'SYN ', 'ETB ',
|
|
'CAN ', 'EM ', 'SUB ', 'ESC ', 'FS ', 'GS ', 'RS ', 'US ',
|
|
'SPC '][i]
|
|
elif i == 0x7f:
|
|
return 'DEL '
|
|
|
|
for i in range(256):
|
|
if chr(i) in ["!" , "#" , "$" , "%" , "&" , "'" , "*",
|
|
"+" , "-" , "." , "^" , "_" , "`" , "|" , "~"] or\
|
|
('0' <= chr(i) and chr(i) <= '9') or \
|
|
('A' <= chr(i) and chr(i) <= 'Z') or \
|
|
('a' <= chr(i) and chr(i) <= 'z'):
|
|
sys.stdout.write('1 /* {} */, '.format(chr(i)))
|
|
elif (0x21 <= i and i < 0x7f):
|
|
sys.stdout.write('0 /* {} */, '.format(chr(i)))
|
|
elif 0x80 <= i:
|
|
sys.stdout.write('0 /* {} */, '.format(hex(i)))
|
|
else:
|
|
sys.stdout.write('0 /* {} */, '.format(name(i)))
|
|
if (i + 1)%4 == 0:
|
|
sys.stdout.write('\n')
|