'Specify the clients ALPN protocol list.
These protocols are offered to the server during protocol negotiation.
:param protos: A list of the protocols to be offered to the server.
This list should be a Python list of bytestrings representing the
protocols to offer, e.g. ``[b\'http/1.1\', b\'spdy/2\']``.'

@_requires_alpn
def set_alpn_protos(self, protos):

    protostr = ''.join(chain.from_iterable(((int2byte(len(p)), p) for p in protos)))
    input_str = _ffi.new('unsigned    char[]', protostr)
    input_str_len = _ffi.cast('unsigned', len(protostr))
    _lib.SSL_CTX_set_alpn_protos(self._context, input_str, input_str_len)
