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
27 lines
881 B
Python
Executable File
27 lines
881 B
Python
Executable File
#!/usr/bin/env python3
|
|
import sys
|
|
|
|
def name(i):
|
|
if i < 0x20:
|
|
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 '][i]
|
|
elif i == 0x7f:
|
|
return 'DEL '
|
|
|
|
for i in range(256):
|
|
if chr(i) == ' ':
|
|
sys.stdout.write('1 /* SPC */, ')
|
|
elif chr(i) == '\t':
|
|
sys.stdout.write('1 /* HT */, ')
|
|
elif (0x21 <= i and i < 0x7f):
|
|
sys.stdout.write('1 /* {} */, '.format(chr(i)))
|
|
elif 0x80 <= i:
|
|
sys.stdout.write('1 /* {} */, '.format(hex(i)))
|
|
else:
|
|
sys.stdout.write('0 /* {} */, '.format(name(i)))
|
|
if (i + 1)%4 == 0:
|
|
sys.stdout.write('\n')
|