Fix the broken SO_REUSEADDR.
[cubemap] / cubemap.cpp
index 98db848152a380b9a279f4ac29e57ceedcf0a8d0..692d48baf1d9e507d36926aa10a7f35f7d8847b1 100644 (file)
@@ -35,6 +35,12 @@ int create_server_socket(int port)
                exit(1);
        }
 
+       int one = 1;
+       if (setsockopt(server_sock, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(one)) == -1) {
+               perror("setsockopt(SO_REUSEADDR)");
+               exit(1);
+       }
+
        // We want dual-stack sockets. (Sorry, OpenBSD and Windows XP...)
        int zero = 0;
        if (setsockopt(server_sock, IPPROTO_IPV6, IPV6_V6ONLY, &zero, sizeof(zero)) == -1) {
@@ -106,4 +112,9 @@ int main(int argc, char **argv)
 
        Input input(STREAM_ID);
        input.run(STREAM_URL);
+
+       for (int i = 0; i < NUM_SERVERS; ++i) {
+               servers[i].stop();
+       }
+       delete[] servers;
 }