def get_next_proto_negotiated(self):
        """
        Get the protocol that was negotiated by NPN.

        :returns: A bytestring of the protocol name.  If no protocol has been
            negotiated yet, returns an empty string.

        .. versionadded:: 0.15
        """
        data = _ffi.new("unsigned char **")
        data_len = _ffi.new("unsigned int *")

        _lib.SSL_get0_next_proto_negotiated(self._ssl, data, data_len)

        return _ffi.buffer(data[0], data_len[0])[:]

        Get the protocol that was negotiated by NPN.

        :returns: A bytestring of the protocol name.  If no protocol has been
            negotiated yet, returns an empty string.

        .. versionadded:: 0.15
        
stackoverflow/venv/lib/python3.6/site-packages/OpenSSL/SSL.py