in scripts/qlog_parser.py [0:0]
def parse_alpn_information(line):
#[2024/05/14 11:34:11 548027] [alpn_information]
#|scid:007cc254f81be8e78d765a2e63339fc99a66320d|xqc_ssl_alpn_select_cb|client_alpn:h3 |server_alpn:h3 h3-29 h3-ext transport |selected_alpn:h3|
data = {
"server_alpns": [],
"client_alpns": [],
"chosen_alpn": {"string_value" : "unknown"}
}
event_scid = "unknown"
segments = line.split('|')
segments = [segment.strip() for segment in segments]
assert(len(segments) > 1)
for i in range(1,len(segments)):
item = segments[i].split(':')
item = [i.strip() for i in item]
if(len(item) != 2):
continue
if item[0] == "scid":
event_scid = item[1]
elif item[0] == "client_alpn":
alpns = item[1].split(' ')
for alpn in alpns:
temp = {"string_value" : alpn}
data["client_alpns"].append(temp)
elif item[0] == "server_alpn":
alpns = item[1].split(' ')
for alpn in alpns:
temp = {"string_value" : alpn}
data["server_alpns"].append(temp)
elif item[0] == "selected_alpn":
data["chosen_alpn"]["string_value"] = item[1]
return (data, event_scid)