upsertAlpnExtension method
void
upsertAlpnExtension()
Replace or insert the ALPN extension (0x0010) based on alpn.
Implementation
void upsertAlpnExtension() {
final protocols = alpn ?? <String>[];
// Remove ALPN extension if empty
if (protocols.isEmpty) {
extensions.removeWhere((e) => e.type == 0x0010);
return;
}
final extData = buildAlpnExtensionData(protocols);
final idx = extensions.indexWhere((e) => e.type == 0x0010);
final ext = TlsExtension(
type: 0x0010,
length: extData.length,
data: extData,
);
if (idx >= 0) {
extensions[idx] = ext;
} else {
extensions.add(ext);
}
}