]> ruderich.org/simon Gitweb - nsscash/nsscash.git/blobdiff - nss/file.h
nss: file.h: re-order struct file members
[nsscash/nsscash.git] / nss / file.h
index 7aac37ccc33c14e31c23da97724e30aa08b6e524..9560bc3379182edbcabd94ce14e7756b622de4d6 100644 (file)
 #include <stdint.h>
 #include <stdlib.h>
 
-#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")));