123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #ifndef STREAM_PEER_SSL_H
- #define STREAM_PEER_SSL_H
- #include "core/io/stream_peer.h"
- class StreamPeerSSL : public StreamPeer {
- GDCLASS(StreamPeerSSL, StreamPeer);
- public:
- typedef void (*LoadCertsFromMemory)(const PoolByteArray &p_certs);
- protected:
- static StreamPeerSSL *(*_create)();
- static void _bind_methods();
- static LoadCertsFromMemory load_certs_func;
- static bool available;
- bool blocking_handshake;
- public:
- enum Status {
- STATUS_DISCONNECTED,
- STATUS_HANDSHAKING,
- STATUS_CONNECTED,
- STATUS_ERROR,
- STATUS_ERROR_HOSTNAME_MISMATCH
- };
- void set_blocking_handshake_enabled(bool p_enabled);
- bool is_blocking_handshake_enabled() const;
- virtual void poll() = 0;
- virtual Error accept_stream(Ref<StreamPeer> p_base) = 0;
- virtual Error connect_to_stream(Ref<StreamPeer> p_base, bool p_validate_certs = false, const String &p_for_hostname = String()) = 0;
- virtual Status get_status() const = 0;
- virtual void disconnect_from_stream() = 0;
- static StreamPeerSSL *create();
- static PoolByteArray get_cert_file_as_array(String p_path);
- static PoolByteArray get_project_cert_array();
- static void load_certs_from_file(String p_path);
- static void load_certs_from_memory(const PoolByteArray &p_memory);
- static bool is_available();
- StreamPeerSSL();
- };
- VARIANT_ENUM_CAST(StreamPeerSSL::Status);
- #endif
|