X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=client.h;h=834ddad9cd2227e7b302674d33e67d49783ca1f1;hb=50651c954803c1941e6ad1bb494712891c18f7d2;hp=2ee478375fd9edcda5da464c90907b0e41f7e0e6;hpb=38a2bb28fd8dcb5bb1e0cb56028936a35f20f503;p=cubemap diff --git a/client.h b/client.h index 2ee4783..834ddad 100644 --- a/client.h +++ b/client.h @@ -7,6 +7,8 @@ #include #include +#include "tlse.h" + class ClientProto; struct Stream; @@ -45,7 +47,7 @@ struct Client { std::string user_agent; enum State { READING_REQUEST, SENDING_HEADER, SENDING_DATA, SENDING_SHORT_RESPONSE, WAITING_FOR_KEYFRAME, PREBUFFERING }; - State state; + State state = READING_REQUEST; // The HTTP request, as sent by the client. If we are in READING_REQUEST, // this might not be finished. @@ -54,7 +56,7 @@ struct Client { // What stream we're connecting to; parsed from . // Not relevant for READING_REQUEST. std::string url; - Stream *stream; + Stream *stream = nullptr; // The header we want to send, or the response with headers if we know // it in its entirety after reading the request (typically an error). @@ -65,7 +67,7 @@ struct Client { // Number of bytes we've sent of the header. Only relevant for SENDING_HEADER // or SENDING_SHORT_RESPONSE. - size_t header_or_short_response_bytes_sent; + size_t header_or_short_response_bytes_sent = 0; // Number of bytes we are into the stream (ie., the end of last send). // -1 means we want to send from the end of the backlog (the normal case), @@ -73,14 +75,19 @@ struct Client { // -2 means we want to send from the _beginning_ of the backlog. // Once we go into WAITING_FOR_KEYFRAME, PREBUFFERING or SENDING_DATA, // these negative values will be translated to real numbers. - size_t stream_pos; + size_t stream_pos = 0; // Number of bytes we've sent of data. Only relevant for SENDING_DATA. - size_t bytes_sent; + size_t bytes_sent = 0; // Number of times we've skipped forward due to the backlog being too big, // and how many bytes we've skipped over in all. Only relevant for SENDING_DATA. - size_t bytes_lost, num_loss_events; + size_t bytes_lost = 0, num_loss_events = 0; + + TLSContext *tls_context = nullptr; + const unsigned char *tls_data_to_send = nullptr; + unsigned tls_data_left_to_send = 0; + bool in_ktls_mode = false; }; #endif // !defined(_CLIENT_H)