]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - nss/nss_test.h
nsswitch: user new internal API (tests)
[thirdparty/glibc.git] / nss / nss_test.h
index 49a9aff2fda0e61f64128033b677c6f563002b95..b6c6ad23330c19f7c81bbb5fd507fc842b833d89 100644 (file)
 
 #include <pwd.h>
 #include <grp.h>
+#include <netdb.h>
 
 typedef struct test_tables {
   struct passwd *pwd_table;
   struct group *grp_table;
+  struct hostent *host_table;
 } test_tables;
 
 extern void _nss_test1_init_hook (test_tables *) __attribute__((weak));
@@ -44,9 +46,11 @@ extern void _nss_test2_init_hook (test_tables *) __attribute__((weak));
 
 #define PWD_LAST()    { .pw_name = NULL, .pw_uid = 0 }
 #define GRP_LAST()    { .gr_name = NULL, .gr_gid = 0 }
+#define HOST_LAST()    { .h_name = NULL, .h_aliases = NULL, .h_length = 0, .h_addr_list = NULL }
 
 #define PWD_ISLAST(p)    ((p)->pw_name == NULL && (p)->pw_uid == 0)
 #define GRP_ISLAST(g)    ((g)->gr_name == NULL && (g)->gr_gid == 0)
+#define HOST_ISLAST(h)    ((h)->h_name == NULL && (h)->h_length == 0)
 
 /* Macros to fill in the tables easily.  */
 
@@ -72,6 +76,11 @@ extern void _nss_test2_init_hook (test_tables *) __attribute__((weak));
     { .gr_name = (char *) n, .gr_passwd = (char *) "*", .gr_gid = u, \
       .gr_mem = (char **) m }
 
+#define HOST(u)                                                                \
+    { .h_name = (char *) "name" #u, .h_aliases = NULL, .h_addrtype = u,        \
+      .h_length = 4,                                                   \
+      .h_addr_list = (char **) hostaddr_##u  }
+
 /*------------------------------------------------------------*/
 
 /* Helper functions for testing passwd entries.  Call