X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=acceptor.h;fp=acceptor.h;h=969ea65889419a38efd6683072be36bf60e9dc35;hp=fe62c31396d119ea97addc6bdafae262fef8d452;hb=16a03b9858752fae9e81af261821a2a22855fde3;hpb=afa95dd1ddca5b46ebf45e5bdb6aa5f3dad25d48 diff --git a/acceptor.h b/acceptor.h index fe62c31..969ea65 100644 --- a/acceptor.h +++ b/acceptor.h @@ -3,6 +3,8 @@ #include +#include + #include "thread.h" enum SocketType { @@ -20,12 +22,25 @@ sockaddr_in6 extract_address_from_acceptor_proto(const AcceptorProto &proto); // and hands them off to the server pool. class Acceptor : public Thread { public: - Acceptor(int server_sock, const sockaddr_in6 &addr); + Acceptor(int server_sock, const sockaddr_in6 &addr, + const std::string &certificate_chain, const std::string &private_key); // Serialization/deserialization. Acceptor(const AcceptorProto &serialized); AcceptorProto serialize() const; + bool is_tls() const { return !certificate_chain.empty(); } + + std::string get_certificate_chain() const { + assert(is_tls()); + return certificate_chain; + } + + std::string get_private_key() const { + assert(is_tls()); + return private_key; + } + void close_socket(); private: @@ -33,6 +48,7 @@ private: int server_sock; sockaddr_in6 addr; + std::string certificate_chain, private_key; // Both empty for no TLS. }; #endif // !defined(_ACCEPTOR_H)