X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=main.cpp;h=d77fb2e357cfbdc2f41c2abfcc3a90e3e5b31695;hp=db3be63f2d05a2cbcff27afa620205b97405f524;hb=ca9624c43b968a0f29ea44e47851ff686bb64bb6;hpb=684496ba9c7def1421d045435b6b92e80bc54c74 diff --git a/main.cpp b/main.cpp index db3be63..d77fb2e 100644 --- a/main.cpp +++ b/main.cpp @@ -26,6 +26,7 @@ #include "serverpool.h" #include "input.h" #include "stats.h" +#include "version.h" #include "state.pb.h" using namespace std; @@ -214,7 +215,7 @@ vector create_acceptors( acceptor = deserialized_acceptor_it->second; deserialized_acceptors->erase(deserialized_acceptor_it); } else { - int server_sock = create_server_socket(port); + int server_sock = create_server_socket(port, TCP_SOCKET); acceptor = new Acceptor(server_sock, port); } acceptor->run(); @@ -261,13 +262,19 @@ vector create_inputs(const vector &config, if (input->get_url() != src) { fprintf(stderr, "INFO: Stream '%s' has changed URL from '%s' to '%s', restarting input.\n", stream_id.c_str(), input->get_url().c_str(), src.c_str()); + input->close_socket(); delete input; input = NULL; } deserialized_inputs->erase(deserialized_input_it); } if (input == NULL) { - input = new Input(stream_id, src); + input = create_input(stream_id, src); + if (input == NULL) { + fprintf(stderr, "ERROR: did not understand URL '%s', clients will not get any data.\n", + src.c_str()); + continue; + } } input->run(); inputs.push_back(input); @@ -322,7 +329,7 @@ void create_streams(const vector &config, int main(int argc, char **argv) { - fprintf(stderr, "\nCubemap starting.\n"); + fprintf(stderr, "\nCubemap " SERVER_VERSION " starting.\n"); struct timeval serialize_start; bool is_reexec = false; @@ -358,7 +365,7 @@ int main(int argc, char **argv) for (int i = 0; i < loaded_state.inputs_size(); ++i) { deserialized_inputs.insert(make_pair( loaded_state.inputs(i).stream_id(), - new Input(loaded_state.inputs(i)))); + create_input(loaded_state.inputs(i)))); } // Convert the acceptor from older serialized formats.