add mDNS lookup method to libosmo-mslookup (#2)

Add the first actually useful lookup method to the mslookup library: multicast
DNS.

The server side is added in a subsequent commit, when the mslookup server is
implemented for the osmo-hlr program.

Use custom DNS encoding instead of libc-ares (which we use in OsmoSGSN
already), because libc-ares is only a DNS client implementation and we will
need both client and server.

Resubmit of f10463c5fc6d9e786ab7c648d99f7450f9a25906 after being
reverted in 110a49f69f29fed844d8743b76fd748f4a14812a. This new version
skips the mslookup_client_mdns test if multicast is not supported in the
build environment. I have verified that it doesn't break the build
anymore in my own OBS namespace.

Related: OS#4237, OS#4361
Patch-by: osmith, nhofmeyr
Change-Id: I3c340627181b632dd6a0d577aa2ea2a7cd035c0c
diff --git a/tests/mslookup/Makefile.am b/tests/mslookup/Makefile.am
index 71602a3..ebf2add 100644
--- a/tests/mslookup/Makefile.am
+++ b/tests/mslookup/Makefile.am
@@ -16,11 +16,15 @@
 	$(NULL)
 
 EXTRA_DIST = \
+	mdns_test.err \
+	mslookup_client_mdns_test.err \
 	mslookup_client_test.err \
 	mslookup_test.err \
 	$(NULL)
 
 check_PROGRAMS = \
+	mdns_test \
+	mslookup_client_mdns_test \
 	mslookup_client_test \
 	mslookup_test \
 	$(NULL)
@@ -41,6 +45,22 @@
 	$(LIBOSMOGSM_LIBS) \
 	$(NULL)
 
+mslookup_client_mdns_test_SOURCES = \
+	mslookup_client_mdns_test.c \
+	$(NULL)
+mslookup_client_mdns_test_LDADD = \
+	$(top_builddir)/src/mslookup/libosmo-mslookup.la \
+	$(LIBOSMOGSM_LIBS) \
+	$(NULL)
+
+mdns_test_SOURCES = \
+	mdns_test.c \
+	$(NULL)
+mdns_test_LDADD = \
+	$(top_builddir)/src/mslookup/libosmo-mslookup.la \
+	$(LIBOSMOGSM_LIBS) \
+	$(NULL)
+
 .PHONY: update_exp
 update_exp:
 	for i in $(check_PROGRAMS); do \