def parse_alpn_information()

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)