diff options
author | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2011-10-25 00:37:10 +0000 |
---|---|---|
committer | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2011-10-25 00:37:10 +0000 |
commit | 4bbe4e2185c5484328182720ff7b3bb4f9593bff (patch) | |
tree | cd67e40a74928c0f58d4f5b79d2e260e4099fee7 /libc/nss/nss_files/files-init.c | |
parent | 91b4be71461f78cabe1fb5f164cea71b60e9e98a (diff) |
Merge changes between r15223 and r15532 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@15545 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/nss/nss_files/files-init.c')
-rw-r--r-- | libc/nss/nss_files/files-init.c | 56 |
1 files changed, 21 insertions, 35 deletions
diff --git a/libc/nss/nss_files/files-init.c b/libc/nss/nss_files/files-init.c index cc6822d30..7012ab2b5 100644 --- a/libc/nss/nss_files/files-init.c +++ b/libc/nss/nss_files/files-init.c @@ -20,53 +20,39 @@ #include <nscd/nscd.h> -static union -{ - struct traced_file file; - char buf[sizeof (struct traced_file) + sizeof ("/etc/passwd")]; -} pwd_traced_file; - -static union -{ - struct traced_file file; - char buf[sizeof (struct traced_file) + sizeof ("/etc/group")]; -} grp_traced_file; - -static union -{ - struct traced_file file; - char buf[sizeof (struct traced_file) + sizeof ("/etc/hosts")]; -} hst_traced_file; - -static union -{ - struct traced_file file; - char buf[sizeof (struct traced_file) + sizeof ("/etc/resolv.conf")]; -} resolv_traced_file; - -static union -{ - struct traced_file file; - char buf[sizeof (struct traced_file) + sizeof ("/etc/services")]; -} serv_traced_file; +#define TF(id, filename, ...) \ +static union \ +{ \ + struct traced_file file; \ + char buf[sizeof (struct traced_file) + sizeof (filename)]; \ +} id##_traced_file = \ + { \ + .file = \ + { \ + .fname = filename, ## __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"); void _nss_files_init (void (*cb) (size_t, struct traced_file *)) { - strcpy (pwd_traced_file.file.fname, "/etc/passwd"); cb (pwddb, &pwd_traced_file.file); - strcpy (grp_traced_file.file.fname, "/etc/group"); cb (grpdb, &grp_traced_file.file); - strcpy (hst_traced_file.file.fname, "/etc/hosts"); cb (hstdb, &hst_traced_file.file); - resolv_traced_file.file.call_res_init = 1; - strcpy (resolv_traced_file.file.fname, "/etc/resolv.conf"); cb (hstdb, &resolv_traced_file.file); - strcpy (serv_traced_file.file.fname, "/etc/services"); cb (servdb, &serv_traced_file.file); + + cb (netgrdb, &netgr_traced_file.file); } |