From c9fcc7f14860777458153eb2d13c773ccfa1daa2 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Wed, 4 Sep 2013 18:02:09 +0200
Subject: [PATCH] system/resolver: convert to C++

---
 Makefile.am                               |  4 ++--
 src/ClientNew.cxx                         |  4 +---
 src/event/ServerSocket.cxx                |  2 +-
 src/output/HttpdOutputPlugin.cxx          |  2 +-
 src/system/{resolver.c => Resolver.cxx}   | 14 +++++++-------
 src/system/{resolver.h => Resolver.hxx}   | 14 +++-----------
 test/{run_resolver.c => run_resolver.cxx} |  4 ++--
 7 files changed, 17 insertions(+), 27 deletions(-)
 rename src/system/{resolver.c => Resolver.cxx} (93%)
 rename src/system/{resolver.h => Resolver.hxx} (91%)
 rename test/{run_resolver.c => run_resolver.cxx} (94%)

diff --git a/Makefile.am b/Makefile.am
index 4b338d074..2c9ff41ec 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -285,7 +285,7 @@ libsystem_a_SOURCES = \
 	src/system/fd_util.c src/system/fd_util.h \
 	src/system/SocketUtil.cxx src/system/SocketUtil.hxx \
 	src/system/SocketError.hxx \
-	src/system/resolver.c src/system/resolver.h \
+	src/system/Resolver.cxx src/system/Resolver.hxx \
 	src/system/EventPipe.cxx src/system/EventPipe.hxx \
 	src/system/EventFD.cxx src/system/EventFD.hxx \
 	src/system/SignalFD.cxx src/system/SignalFD.hxx \
@@ -1072,7 +1072,7 @@ test_read_conf_SOURCES = test/read_conf.cxx
 test_run_resolver_LDADD = \
 	libsystem.a \
 	$(GLIB_LIBS)
-test_run_resolver_SOURCES = test/run_resolver.c
+test_run_resolver_SOURCES = test/run_resolver.cxx
 
 test_DumpDatabase_LDADD = \
 	$(DB_LIBS) \
diff --git a/src/ClientNew.cxx b/src/ClientNew.cxx
index c277423ab..dd5aba318 100644
--- a/src/ClientNew.cxx
+++ b/src/ClientNew.cxx
@@ -23,9 +23,7 @@
 #include "Partition.hxx"
 #include "Instance.hxx"
 #include "system/fd_util.h"
-extern "C" {
-#include "system/resolver.h"
-}
+#include "system/Resolver.hxx"
 #include "Permission.hxx"
 
 #include <assert.h>
diff --git a/src/event/ServerSocket.cxx b/src/event/ServerSocket.cxx
index a137e2d9a..d22790de5 100644
--- a/src/event/ServerSocket.cxx
+++ b/src/event/ServerSocket.cxx
@@ -27,7 +27,7 @@
 #include "system/SocketUtil.hxx"
 #include "system/SocketError.hxx"
 #include "event/SocketMonitor.hxx"
-#include "system/resolver.h"
+#include "system/Resolver.hxx"
 #include "system/fd_util.h"
 
 #include <sys/types.h>
diff --git a/src/output/HttpdOutputPlugin.cxx b/src/output/HttpdOutputPlugin.cxx
index fbf25ca00..745ed26a2 100644
--- a/src/output/HttpdOutputPlugin.cxx
+++ b/src/output/HttpdOutputPlugin.cxx
@@ -24,7 +24,7 @@
 #include "OutputAPI.hxx"
 #include "EncoderPlugin.hxx"
 #include "EncoderList.hxx"
-#include "system/resolver.h"
+#include "system/Resolver.hxx"
 #include "Page.hxx"
 #include "IcyMetaDataServer.hxx"
 #include "system/fd_util.h"
diff --git a/src/system/resolver.c b/src/system/Resolver.cxx
similarity index 93%
rename from src/system/resolver.c
rename to src/system/Resolver.cxx
index 243b7cd02..a574e82c1 100644
--- a/src/system/resolver.c
+++ b/src/system/Resolver.cxx
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2011 The Music Player Daemon Project
+ * Copyright (C) 2003-2013 The Music Player Daemon Project
  * http://www.musicpd.org
  *
  * This program is free software; you can redistribute it and/or modify
@@ -18,7 +18,7 @@
  */
 
 #include "config.h"
-#include "resolver.h"
+#include "Resolver.hxx"
 
 #ifndef G_OS_WIN32
 #include <sys/socket.h>
@@ -120,11 +120,11 @@ resolve_host_port(const char *host_port, unsigned default_port,
 	if ((flags & AI_PASSIVE) != 0 && strcmp(host, "*") == 0)
 		host = NULL;
 
-	const struct addrinfo hints = {
-		.ai_flags = flags,
-		.ai_family = AF_UNSPEC,
-		.ai_socktype = socktype,
-	};
+	addrinfo hints;
+	memset(&hints, 0, sizeof(hints));
+	hints.ai_flags = flags;
+	hints.ai_family = AF_UNSPEC;
+	hints.ai_socktype = socktype;
 
 	struct addrinfo *ai;
 	int ret = getaddrinfo(host, port, &hints, &ai);
diff --git a/src/system/resolver.h b/src/system/Resolver.hxx
similarity index 91%
rename from src/system/resolver.h
rename to src/system/Resolver.hxx
index af14f5f23..a1cd00329 100644
--- a/src/system/resolver.h
+++ b/src/system/Resolver.hxx
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2011 The Music Player Daemon Project
+ * Copyright (C) 2003-2013 The Music Player Daemon Project
  * http://www.musicpd.org
  *
  * This program is free software; you can redistribute it and/or modify
@@ -17,8 +17,8 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#ifndef MPD_RESOLVER_H
-#define MPD_RESOLVER_H
+#ifndef MPD_RESOLVER_HXX
+#define MPD_RESOLVER_HXX
 
 #include "gcc.h"
 
@@ -34,10 +34,6 @@ resolver_quark(void)
 	return g_quark_from_static_string("resolver");
 }
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 /**
  * Converts the specified socket address into a string in the form
  * "IP:PORT".  The return value must be freed with g_free() when you
@@ -67,8 +63,4 @@ resolve_host_port(const char *host_port, unsigned default_port,
 		  int flags, int socktype,
 		  GError **error_r);
 
-#ifdef __cplusplus
-}
-#endif
-
 #endif
diff --git a/test/run_resolver.c b/test/run_resolver.cxx
similarity index 94%
rename from test/run_resolver.c
rename to test/run_resolver.cxx
index 87067ad23..bb7f6deaa 100644
--- a/test/run_resolver.c
+++ b/test/run_resolver.cxx
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2011 The Music Player Daemon Project
+ * Copyright (C) 2003-2013 The Music Player Daemon Project
  * http://www.musicpd.org
  *
  * This program is free software; you can redistribute it and/or modify
@@ -18,7 +18,7 @@
  */
 
 #include "config.h"
-#include "system/resolver.h"
+#include "system/Resolver.hxx"
 
 #ifdef WIN32
 #include <ws2tcpip.h>