X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=server.cpp;h=093899939b4d832be6dd28a8a3e8966d46efa650;hp=ee91ed8449faa1c5c6b6b344dbc733ca000aa6c8;hb=d449b08f94933533095316e2a2250efb1f444358;hpb=4c78d4cddfa8f5b9a9d275822237a0b1f8510dd2 diff --git a/server.cpp b/server.cpp index ee91ed8..0938999 100644 --- a/server.cpp +++ b/server.cpp @@ -252,19 +252,6 @@ void Server::set_header(int stream_index, const string &http_header, const strin assert(stream_index >= 0 && stream_index < ssize_t(streams.size())); streams[stream_index]->http_header = http_header; streams[stream_index]->stream_header = stream_header; - - // If there are clients we haven't sent anything to yet, we should give - // them the header, so push back into the SENDING_HEADER state. - for (map::iterator client_it = clients.begin(); - client_it != clients.end(); - ++client_it) { - Client *client = &client_it->second; - if (client->state == Client::WAITING_FOR_KEYFRAME || - (client->state == Client::SENDING_DATA && - client->stream_pos == 0)) { - construct_header(client); - } - } } void Server::set_mark_pool(int stream_index, MarkPool *mark_pool) @@ -528,8 +515,13 @@ int Server::parse_request(Client *client) return 404; // Not found. } + Stream *stream = streams[url_map_it->second]; + if (stream->http_header.empty()) { + return 503; // Service unavailable. + } + client->url = request_tokens[1]; - client->stream = streams[url_map_it->second]; + client->stream = stream; if (client->stream->mark_pool != NULL) { client->fwmark = client->stream->mark_pool->get_mark(); } else {