X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=nss%2Ffile.h;h=9560bc3379182edbcabd94ce14e7756b622de4d6;hb=bfa9e0160a19bd7c151720de78749aa817d5986f;hp=7aac37ccc33c14e31c23da97724e30aa08b6e524;hpb=92afde4e875a96e1ab865e29b9f0d11b08d7db1c;p=nsscash%2Fnsscash.git diff --git a/nss/file.h b/nss/file.h index 7aac37c..9560bc3 100644 --- a/nss/file.h +++ b/nss/file.h @@ -24,15 +24,39 @@ #include #include -#include "cash.h" +#define MAGIC "NSS-CASH" + +// Defined in Makefile +#ifndef NSSCASH_PASSWD_FILE +# define NSSCASH_PASSWD_FILE "/etc/passwd.nsscash" +#endif +#ifndef NSSCASH_GROUP_FILE +# define NSSCASH_GROUP_FILE "/etc/group.nsscash" +#endif + + +struct header { + char magic[8]; // magic string + uint64_t version; // also doubles as byte-order check + + uint64_t count; + + // All offsets are relative to data + uint64_t off_orig_index; + uint64_t off_id_index; + uint64_t off_name_index; + uint64_t off_data; + + char data[]; +} __attribute__((packed)); struct file { int fd; size_t size; - uint64_t next_index; // used by getpwent (pw.c) const struct header *header; + uint64_t next_index; // used by getpwent (pw.c) }; bool map_file(const char *path, struct file *f) __attribute__((visibility("hidden")));