summaryrefslogtreecommitdiffstats
path: root/test-localuser.c
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2018-01-19 14:58:27 +0100
committerJosé Bollo <jose.bollo@iot.bzh>2018-10-26 13:31:56 +0200
commitd2d9e83bd9bdc3a091d6b9f1ccaec012fba2f0f4 (patch)
tree8d1ba496b809f6baf62ba2864756b417f4a3e1a7 /test-localuser.c
parenta248d2827dcfc35b894013299dc2486d4a37db0b (diff)
`nss-localuser` is a plugin for the GNU Name Service Switch (NSS) functionality of the GNU C Library (`glibc`) providing host name resolution for *"localuser"* family of virtual hostnames. The delivered NSS service defines one virtual host of name `localuser` that resolves to an IP address of the localhost loopback that integrates user ID. Change-Id: I2a33dc23518ce3f4581f5c37df9476dbbc58f262 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'test-localuser.c')
-rw-r--r--test-localuser.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/test-localuser.c b/test-localuser.c
new file mode 100644
index 0000000..ed27138
--- /dev/null
+++ b/test-localuser.c
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2018 IoT.bzh <jose.bollo@iot.bzh>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+#include <stdio.h>
+#include <netdb.h>
+
+void dumphostent(char *tag, char *arg, struct hostent *h)
+{
+ printf("\n----------------- %s %s\n", tag, arg);
+ if (h) {
+ printf("name: %s\n", h->h_name);
+ if (h->h_addrtype == AF_INET)
+ printf("ipv4: %d.%d.%d.%d\n",
+ (int)(unsigned char)h->h_addr_list[0][0],
+ (int)(unsigned char)h->h_addr_list[0][1],
+ (int)(unsigned char)h->h_addr_list[0][2],
+ (int)(unsigned char)h->h_addr_list[0][3]);
+ } else {
+ printf("NULL!\n");
+ }
+ printf("\n");
+}
+
+int main(int ac, char **av)
+{
+ struct hostent *h;
+
+ while (*++av) {
+ h = gethostbyname2(*av, AF_INET);
+ dumphostent("name->addr", *av, h);
+
+ if (h) {
+ h = gethostbyaddr(h->h_addr_list[0], h->h_length, h->h_addrtype);
+ dumphostent("addr->name", *av, h);
+ }
+ }
+ return 0;
+}
+