X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=server.h;h=f1cc7a0dbfc0d56116739ebccda95829d8cfe577;hp=c44b81ee357b7ed3e2d6cd629d8690b009334ddd;hb=eb33692c9edee93e0883cd9f980d48dc7e17d801;hpb=cfe0df3728d8155fb03688f6db69e00971e23685 diff --git a/server.h b/server.h index c44b81e..f1cc7a0 100644 --- a/server.h +++ b/server.h @@ -23,11 +23,14 @@ struct Client { // this might not be finished. std::string client_request; -#if 0 // What stream we're connecting to; parsed from client_request. // Not relevant for READING_REQUEST. - string stream_id; -#endif + std::string stream_id; + + // The header we want to send. This is nominally a copy of Stream::header, + // but since that might change on reconnects etc., we keep a local copy here. + // Only relevant for SENDING_HEADER; blank otherwise. + std::string header; // Number of bytes we've sent of the header. Only relevant for SENDING_HEADER. size_t header_bytes_sent; @@ -61,8 +64,14 @@ public: private: void process_client(Client *client); + + // Close a given client socket, and clean up after it. void close_client(Client *client); + // Parse the HTTP request, construct the header, and set the client into + // the SENDING_HEADER state. + void parse_request(Client *client); + pthread_mutex_t mutex; // Map from stream ID to stream.