aboutsummaryrefslogtreecommitdiff
path: root/nss/nss_files
diff options
context:
space:
mode:
Diffstat (limited to 'nss/nss_files')
-rw-r--r--nss/nss_files/files-init.c46
1 files changed, 21 insertions, 25 deletions
diff --git a/nss/nss_files/files-init.c b/nss/nss_files/files-init.c
index 94d440aaa4..72eced41bf 100644
--- a/nss/nss_files/files-init.c
+++ b/nss/nss_files/files-init.c
@@ -21,47 +21,43 @@
#include <string.h>
#include <nscd/nscd.h>
+#define PWD_FILENAME "/etc/passwd"
+define_traced_file (pwd, PWD_FILENAME);
-#define TF(id, filename, ...) \
-static union \
-{ \
- struct traced_file file; \
- char buf[sizeof (struct traced_file) + sizeof (filename)]; \
-} id##_traced_file = \
- { \
- .file = \
- { \
- __VA_ARGS__ \
- } \
- }
-
-TF (pwd, "/etc/passwd");
-TF (grp, "/etc/group");
-TF (hst, "/etc/hosts");
-TF (resolv, "/etc/resolv.conf", .call_res_init = 1);
-TF (serv, "/etc/services");
-TF (netgr, "/etc/netgroup");
+#define GRP_FILENAME "/etc/group"
+define_traced_file (grp, GRP_FILENAME);
+#define HST_FILENAME "/etc/hosts"
+define_traced_file (hst, HST_FILENAME);
+
+#define RESOLV_FILENAME "/etc/resolv.conf"
+define_traced_file (resolv, RESOLV_FILENAME);
+
+#define SERV_FILENAME "/etc/services"
+define_traced_file (serv, SERV_FILENAME);
+
+#define NETGR_FILENAME "/etc/netgroup"
+define_traced_file (netgr, NETGR_FILENAME);
void
_nss_files_init (void (*cb) (size_t, struct traced_file *))
{
- strcpy (pwd_traced_file.file.fname, "/etc/passwd");
+ init_traced_file (&pwd_traced_file.file, PWD_FILENAME, 0);
cb (pwddb, &pwd_traced_file.file);
- strcpy (grp_traced_file.file.fname, "/etc/group");
+ init_traced_file (&grp_traced_file.file, GRP_FILENAME, 0);
cb (grpdb, &grp_traced_file.file);
- strcpy (hst_traced_file.file.fname, "/etc/hosts");
+ init_traced_file (&hst_traced_file.file, HST_FILENAME, 0);
cb (hstdb, &hst_traced_file.file);
- strcpy (resolv_traced_file.file.fname, "/etc/resolv.conf");
+ init_traced_file (&resolv_traced_file.file, RESOLV_FILENAME, 1);
cb (hstdb, &resolv_traced_file.file);
- strcpy (serv_traced_file.file.fname, "/etc/services");
+ init_traced_file (&serv_traced_file.file, SERV_FILENAME, 0);
cb (servdb, &serv_traced_file.file);
- strcpy (netgr_traced_file.file.fname, "/etc/netgroup");
+ init_traced_file (&netgr_traced_file.file, NETGR_FILENAME, 0);
cb (netgrdb, &netgr_traced_file.file);
}