]> git.sesse.net Git - cubemap/blobdiff - main.cpp
Fix a signed/unsigned warning.
[cubemap] / main.cpp
index 67c731dbb2c657ef1f586b1e10a6ead60b93d4c5..e8fa4e822ce720be53dc29f03de40ed31b1addc6 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -1,39 +1,29 @@
-#include <stdio.h>
-#include <string.h>
-#include <stdint.h>
-#include <unistd.h>
 #include <assert.h>
+#include <errno.h>
 #include <getopt.h>
-#include <arpa/inet.h>
-#include <sys/socket.h>
-#include <pthread.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
-#include <sys/poll.h>
+#include <signal.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 #include <sys/time.h>
-#include <sys/types.h>
 #include <sys/wait.h>
-#include <signal.h>
-#include <errno.h>
-#include <ctype.h>
-#include <fcntl.h>
-#include <vector>
-#include <string>
+#include <unistd.h>
 #include <map>
 #include <set>
+#include <string>
+#include <utility>
+#include <vector>
 
 #include "acceptor.h"
 #include "config.h"
+#include "input.h"
 #include "markpool.h"
-#include "metacube.h"
-#include "parse.h"
-#include "server.h"
 #include "serverpool.h"
-#include "input.h"
+#include "state.pb.h"
 #include "stats.h"
 #include "util.h"
 #include "version.h"
-#include "state.pb.h"
 
 using namespace std;
 
@@ -154,7 +144,9 @@ void create_streams(const Config &config,
        for (unsigned i = 0; i < config.streams.size(); ++i) {
                const StreamConfig &stream_config = config.streams[i];
                if (deserialized_stream_ids.count(stream_config.stream_id) == 0) {
-                       servers->add_stream(stream_config.stream_id);
+                       servers->add_stream(stream_config.stream_id, stream_config.backlog_size);
+               } else {
+                       servers->set_backlog_size(stream_config.stream_id, stream_config.backlog_size);
                }
                expecting_stream_ids.erase(stream_config.stream_id);
 
@@ -221,6 +213,9 @@ bool dry_run_config(const std::string &argv0, const std::string &config_filename
 
 int main(int argc, char **argv)
 {
+       signal(SIGHUP, hup);
+       signal(SIGPIPE, SIG_IGN);
+       
        // Parse options.
        int state_fd = -1;
        bool test_config = false;
@@ -309,8 +304,6 @@ start:
        // Find all streams in the configuration file, and create them.
        create_streams(config, deserialized_stream_ids, &deserialized_inputs);
 
-       servers->run();
-
        vector<Acceptor *> acceptors = create_acceptors(config, &deserialized_acceptors);
        vector<Input *> inputs = create_inputs(config, &deserialized_inputs);
        
@@ -323,18 +316,16 @@ start:
        for (int i = 0; i < loaded_state.clients_size(); ++i) {
                servers->add_client_from_serialized(loaded_state.clients(i));
        }
+       
+       servers->run();
 
        // Start writing statistics.
        StatsThread *stats_thread = NULL;
        if (!config.stats_file.empty()) {
                stats_thread = new StatsThread(config.stats_file, config.stats_interval);
                stats_thread->run();
-       } else if (config.stats_interval != -1) {
-               fprintf(stderr, "WARNING: 'stats_interval' given, but no 'stats_file'. No statistics will be written.\n");
        }
 
-       signal(SIGHUP, hup);
-       
        struct timeval server_start;
        gettimeofday(&server_start, NULL);
        if (state_fd != -1) {