parseAlpnExtensionData function
Implementation
List<String> parseAlpnExtensionData(Uint8List data) {
final buf = QuicBuffer(data: data);
final protocols = <String>[];
if (buf.remaining < 2) return protocols;
final listLen = buf.pullUint16();
final end = buf.readOffset + listLen;
while (buf.readOffset < end && buf.remaining > 0) {
final nameLen = buf.pullUint8();
if (buf.remaining < nameLen) {
throw StateError('ALPN extension truncated');
}
final nameBytes = buf.pullBytes(nameLen);
protocols.add(utf8.decode(nameBytes, allowMalformed: true));
}
return protocols;
}