summaryrefslogtreecommitdiffstats
path: root/src/libidn2-test.c
diff options
context:
space:
mode:
authorBoris Nagaev <bnagaev@gmail.com>2017-03-05 02:47:55 (GMT)
committerBoris Nagaev <bnagaev@gmail.com>2017-03-05 02:50:35 (GMT)
commit7ddc00eaeb0f51bdfb09823c4eee74486366c749 (patch)
tree8aa1b4949bb02c79da5d3807b5b6a66daac6778a /src/libidn2-test.c
parent155109d0c7a977d64b5edae02ee6af9e4cf95520 (diff)
downloadmxe-7ddc00eaeb0f51bdfb09823c4eee74486366c749.zip
mxe-7ddc00eaeb0f51bdfb09823c4eee74486366c749.tar.gz
mxe-7ddc00eaeb0f51bdfb09823c4eee74486366c749.tar.bz2
add package libidn2
See https://github.com/mxe/mxe/issues/1691https://github.com/mxe/mxe/issues/1691
Diffstat (limited to 'src/libidn2-test.c')
-rw-r--r--src/libidn2-test.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/libidn2-test.c b/src/libidn2-test.c
new file mode 100644
index 0000000..65cd099
--- /dev/null
+++ b/src/libidn2-test.c
@@ -0,0 +1,44 @@
+/*
+ * This file is part of MXE. See LICENSE.md for licensing information.
+ *
+ * Based on https://www.gnu.org/software/libidn/libidn2/manual/libidn2.html#Lookup
+ */
+
+#include <stdio.h> /* printf, fflush, fgets, stdin, perror, fprintf */
+#include <string.h> /* strlen */
+#include <locale.h> /* setlocale */
+#include <stdlib.h> /* free */
+#include <idn2.h> /* idn2_lookup_ul, IDN2_OK, idn2_strerror, idn2_strerror_name */
+
+int
+main ()
+{
+ int rc;
+ char src[BUFSIZ];
+ char *lookupname;
+
+ setlocale (LC_ALL, "");
+
+ printf ("Enter (possibly non-ASCII) domain name to lookup: ");
+ fflush (stdout);
+ if (!fgets (src, sizeof (src), stdin))
+ {
+ perror ("fgets");
+ return 1;
+ }
+ src[strlen (src) - 1] = '\0';
+
+ rc = idn2_lookup_ul (src, &lookupname, 0);
+ if (rc != IDN2_OK)
+ {
+ fprintf (stderr, "error: %s (%s, %d)\n",
+ idn2_strerror (rc), idn2_strerror_name (rc), rc);
+ return 1;
+ }
+
+ printf ("IDNA2008 domain name to lookup in DNS: %s\n", lookupname);
+
+ free (lookupname);
+
+ return 0;
+}