X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=udpinput.cpp;h=6b1779989f26d4a55abe928d6af7ae9553525f3b;hp=e444bbc09aa56e3231f9c8f06debad62386856fd;hb=f2530dbb8415f9e7cc0f2d4b45741120c95e8a05;hpb=bd694fdd3dd1417399aecead2c8b91fc4fe95ce8 diff --git a/udpinput.cpp b/udpinput.cpp index e444bbc..6b17799 100644 --- a/udpinput.cpp +++ b/udpinput.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -12,6 +13,7 @@ #include "mutexlock.h" #include "serverpool.h" #include "state.pb.h" +#include "stream.h" #include "udpinput.h" #include "util.h" #include "version.h" @@ -35,6 +37,7 @@ UDPInput::UDPInput(const string &url) stats.url = url; stats.bytes_received = 0; stats.data_bytes_received = 0; + stats.connect_time = time(NULL); } UDPInput::UDPInput(const InputProto &serialized) @@ -52,6 +55,11 @@ UDPInput::UDPInput(const InputProto &serialized) stats.url = url; stats.bytes_received = serialized.bytes_received(); stats.data_bytes_received = serialized.data_bytes_received(); + if (serialized.has_connect_time()) { + stats.connect_time = serialized.connect_time(); + } else { + stats.connect_time = time(NULL); + } } InputProto UDPInput::serialize() const @@ -61,6 +69,7 @@ InputProto UDPInput::serialize() const serialized.set_sock(sock); serialized.set_bytes_received(stats.bytes_received); serialized.set_data_bytes_received(stats.data_bytes_received); + serialized.set_connect_time(stats.connect_time); return serialized; } @@ -91,7 +100,8 @@ void UDPInput::do_work() while (!should_stop()) { if (sock == -1) { int port_num = atoi(port.c_str()); - sock = create_server_socket(port_num, UDP_SOCKET); + sockaddr_in6 addr = CreateAnyAddress(port_num); + sock = create_server_socket(addr, UDP_SOCKET); if (sock == -1) { log(WARNING, "[%s] UDP socket creation failed. Waiting 0.2 seconds and trying again...", url.c_str());