]> git.sesse.net Git - nageru/blobdiff - httpd.cpp
Write 1.4.0 changelog.
[nageru] / httpd.cpp
index 6f94409f3a55fea4244dd441d1fd466f8250d92f..858d9522c9354f1ea275cd0e859e5fef60d30636 100644 (file)
--- a/httpd.cpp
+++ b/httpd.cpp
@@ -1,19 +1,18 @@
-#include <arpa/inet.h>
+#include "httpd.h"
+
 #include <assert.h>
+#include <byteswap.h>
 #include <endian.h>
 #include <microhttpd.h>
+#include <netinet/in.h>
 #include <stdio.h>
-#include <stdlib.h>
 #include <string.h>
-
-#include <vector>
-
-#include "httpd.h"
+#include <sys/time.h>
+#include <time.h>
+#include <memory>
 
 #include "defs.h"
-#include "flags.h"
 #include "metacube2.h"
-#include "timebase.h"
 
 struct MHD_Connection;
 struct MHD_Response;
@@ -26,11 +25,13 @@ HTTPD::HTTPD()
 
 HTTPD::~HTTPD()
 {
-       MHD_quiesce_daemon(mhd);
-       for (Stream *stream : streams) {
-               stream->stop();
+       if (mhd) {
+               MHD_quiesce_daemon(mhd);
+               for (Stream *stream : streams) {
+                       stream->stop();
+               }
+               MHD_stop_daemon(mhd);
        }
-       MHD_stop_daemon(mhd);
 }
 
 void HTTPD::start(int port)
@@ -41,6 +42,9 @@ void HTTPD::start(int port)
                               &answer_to_connection_thunk, this,
                               MHD_OPTION_NOTIFY_COMPLETED, nullptr, this,
                               MHD_OPTION_END);
+       if (mhd == nullptr) {
+               fprintf(stderr, "Warning: Could not open HTTP server. (Port already in use?)\n");
+       }
 }
 
 void HTTPD::add_data(const char *buf, size_t size, bool keyframe)