Index: tools/skiaserve/skiaserve.cpp |
diff --git a/tools/skiaserve/skiaserve.cpp b/tools/skiaserve/skiaserve.cpp |
index 195544e83af5dcddf6c841310584c096f10e96ab..d4a84ac795be9a3fa53e5ae78c2dc7754171908f 100644 |
--- a/tools/skiaserve/skiaserve.cpp |
+++ b/tools/skiaserve/skiaserve.cpp |
@@ -14,6 +14,7 @@ |
#include "urlhandlers/UrlHandler.h" |
#include <sys/socket.h> |
+#include <arpa/inet.h> |
using namespace Response; |
@@ -23,6 +24,7 @@ using namespace Response; |
__SK_FORCE_IMAGE_DECODER_LINKING; |
DEFINE_int32(port, 8888, "The port to listen on."); |
+DEFINE_string(address, "localhost", "The address to bind to."); |
class UrlManager { |
public: |
@@ -82,10 +84,18 @@ int answer_to_connection(void* cls, struct MHD_Connection* connection, |
int skiaserve_main() { |
Request request(SkString("/data")); // This simple server has one request |
+ struct sockaddr_in address; |
+ address.sin_family = AF_INET; |
+ address.sin_port = htons(FLAGS_port); |
+ inet_pton(AF_INET, FLAGS_address[0], &address.sin_addr); |
+ |
+ printf("Visit http://%s:%d in your browser.\n", FLAGS_address[0], FLAGS_port); |
+ |
struct MHD_Daemon* daemon; |
// TODO Add option to bind this strictly to an address, e.g. localhost, for security. |
daemon = MHD_start_daemon(MHD_USE_SELECT_INTERNALLY, FLAGS_port, nullptr, nullptr, |
&answer_to_connection, &request, |
+ MHD_OPTION_SOCK_ADDR, &address, |
MHD_OPTION_END); |
if (NULL == daemon) { |
return 1; |