]> arthur.barton.de Git - netatalk.git/blobdiff - include/atalk/cnid_bdb_private.h
New MySQL CNID backend
[netatalk.git] / include / atalk / cnid_bdb_private.h
diff --git a/include/atalk/cnid_bdb_private.h b/include/atalk/cnid_bdb_private.h
new file mode 100644 (file)
index 0000000..8aab3e0
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ *  Interface to the cnid_dbd daemon that stores/retrieves CNIDs from a database.
+ */
+
+
+#ifndef _ATALK_CNID_DBD_PRIVATE_H
+#define _ATALK_CNID_DBD_PRIVATE_H 1
+
+#include <sys/stat.h>
+#include <atalk/adouble.h>
+#include <sys/param.h>
+
+#include <atalk/cnid_private.h>
+
+#define CNID_DBD_OP_OPEN        0x01
+#define CNID_DBD_OP_CLOSE       0x02
+#define CNID_DBD_OP_ADD         0x03
+#define CNID_DBD_OP_GET         0x04
+#define CNID_DBD_OP_RESOLVE     0x05
+#define CNID_DBD_OP_LOOKUP      0x06
+#define CNID_DBD_OP_UPDATE      0x07
+#define CNID_DBD_OP_DELETE      0x08
+#define CNID_DBD_OP_MANGLE_ADD  0x09
+#define CNID_DBD_OP_MANGLE_GET  0x0a
+#define CNID_DBD_OP_GETSTAMP    0x0b
+#define CNID_DBD_OP_REBUILD_ADD 0x0c
+#define CNID_DBD_OP_SEARCH      0x0d
+#define CNID_DBD_OP_WIPE        0x0e
+
+#define CNID_DBD_RES_OK            0x00
+#define CNID_DBD_RES_NOTFOUND      0x01
+#define CNID_DBD_RES_ERR_DB        0x02
+#define CNID_DBD_RES_ERR_MAX       0x03
+#define CNID_DBD_RES_ERR_DUPLCNID  0x04
+#define CNID_DBD_RES_SRCH_CNT      0x05
+#define CNID_DBD_RES_SRCH_DONE     0x06
+
+#define DBD_MAX_SRCH_RSLTS 100
+
+struct cnid_dbd_rqst {
+    int     op;
+    cnid_t  cnid;
+    dev_t   dev;
+    ino_t   ino;
+    uint32_t type;
+    cnid_t  did;
+    const char *name;
+    size_t  namelen;
+};
+
+struct cnid_dbd_rply {
+    int     result;    
+    cnid_t  cnid;
+    cnid_t  did;
+    char    *name;
+    size_t  namelen;
+};
+
+typedef struct CNID_bdb_private {
+    uint32_t magic;
+    char      db_dir[MAXPATHLEN + 1]; /* Database directory without /.AppleDB appended */
+    char      *cnidserver;
+    char      *cnidport;
+    int       fd;              /* File descriptor to cnid_dbd */
+    char      stamp[ADEDLEN_PRIVSYN]; /* db timestamp */
+    char      *client_stamp;
+    size_t    stamp_size;
+    int       notfirst;   /* already open before */
+    int       changed;  /* stamp differ */
+} CNID_bdb_private;
+
+
+#endif /* include/atalk/cnid_dbd.h */