]> arthur.barton.de Git - netatalk.git/blob - include/atalk/cnid_bdb_private.h
New MySQL CNID backend
[netatalk.git] / include / atalk / cnid_bdb_private.h
1 /*
2  *  Interface to the cnid_dbd daemon that stores/retrieves CNIDs from a database.
3  */
4
5
6 #ifndef _ATALK_CNID_DBD_PRIVATE_H
7 #define _ATALK_CNID_DBD_PRIVATE_H 1
8
9 #include <sys/stat.h>
10 #include <atalk/adouble.h>
11 #include <sys/param.h>
12
13 #include <atalk/cnid_private.h>
14
15 #define CNID_DBD_OP_OPEN        0x01
16 #define CNID_DBD_OP_CLOSE       0x02
17 #define CNID_DBD_OP_ADD         0x03
18 #define CNID_DBD_OP_GET         0x04
19 #define CNID_DBD_OP_RESOLVE     0x05
20 #define CNID_DBD_OP_LOOKUP      0x06
21 #define CNID_DBD_OP_UPDATE      0x07
22 #define CNID_DBD_OP_DELETE      0x08
23 #define CNID_DBD_OP_MANGLE_ADD  0x09
24 #define CNID_DBD_OP_MANGLE_GET  0x0a
25 #define CNID_DBD_OP_GETSTAMP    0x0b
26 #define CNID_DBD_OP_REBUILD_ADD 0x0c
27 #define CNID_DBD_OP_SEARCH      0x0d
28 #define CNID_DBD_OP_WIPE        0x0e
29
30 #define CNID_DBD_RES_OK            0x00
31 #define CNID_DBD_RES_NOTFOUND      0x01
32 #define CNID_DBD_RES_ERR_DB        0x02
33 #define CNID_DBD_RES_ERR_MAX       0x03
34 #define CNID_DBD_RES_ERR_DUPLCNID  0x04
35 #define CNID_DBD_RES_SRCH_CNT      0x05
36 #define CNID_DBD_RES_SRCH_DONE     0x06
37
38 #define DBD_MAX_SRCH_RSLTS 100
39
40 struct cnid_dbd_rqst {
41     int     op;
42     cnid_t  cnid;
43     dev_t   dev;
44     ino_t   ino;
45     uint32_t type;
46     cnid_t  did;
47     const char *name;
48     size_t  namelen;
49 };
50
51 struct cnid_dbd_rply {
52     int     result;    
53     cnid_t  cnid;
54     cnid_t  did;
55     char    *name;
56     size_t  namelen;
57 };
58
59 typedef struct CNID_bdb_private {
60     uint32_t magic;
61     char      db_dir[MAXPATHLEN + 1]; /* Database directory without /.AppleDB appended */
62     char      *cnidserver;
63     char      *cnidport;
64     int       fd;               /* File descriptor to cnid_dbd */
65     char      stamp[ADEDLEN_PRIVSYN]; /* db timestamp */
66     char      *client_stamp;
67     size_t    stamp_size;
68     int       notfirst;   /* already open before */
69     int       changed;  /* stamp differ */
70 } CNID_bdb_private;
71
72
73 #endif /* include/atalk/cnid_dbd.h */