]> arthur.barton.de Git - netatalk.git/blob - include/atalk/cnid_dbd_private.h
Additional CNID db name index
[netatalk.git] / include / atalk / cnid_dbd_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
29 #define CNID_DBD_RES_OK            0x00
30 #define CNID_DBD_RES_NOTFOUND      0x01
31 #define CNID_DBD_RES_ERR_DB        0x02
32 #define CNID_DBD_RES_ERR_MAX       0x03
33 #define CNID_DBD_RES_ERR_DUPLCNID  0x04
34 #define CNID_DBD_RES_SRCH_CNT      0x05
35 #define CNID_DBD_RES_SRCH_DONE     0x06
36
37 #define DBD_MAX_SRCH_RPLY_PAYLOAD  4096
38
39 struct cnid_dbd_rqst {
40     int     op;
41     cnid_t  cnid;
42     dev_t   dev;
43     ino_t   ino;
44     union {
45         uint32_t type;
46         uint32_t reqcount;      /* for dbd_search: number of results per query */
47     };
48     union {
49         cnid_t  did;
50         uint32_t sindex;        /* for dbd_search: continuation index */
51     };
52     char   *name;
53     size_t  namelen;
54 };
55
56 struct cnid_dbd_rply {
57     int     result;    
58     union {
59         cnid_t  cnid;
60         uint32_t count;         /* for dbd_search: number of returned names */
61     };
62     cnid_t  did;
63     char   *name;
64     size_t  namelen;
65 };
66
67 typedef struct CNID_private {
68     u_int32_t magic;
69     char      db_dir[MAXPATHLEN + 1]; /* Database directory without /.AppleDB appended */
70     char      *cnidserver;
71     char      *cnidport;
72     int       fd;               /* File descriptor to cnid_dbd */
73     char      stamp[ADEDLEN_PRIVSYN]; /* db timestamp */
74     char      *client_stamp;
75     size_t    stamp_size;
76     int       notfirst;   /* already open before */
77     int       changed;  /* stamp differ */
78 } CNID_private;
79
80
81 #endif /* include/atalk/cnid_dbd.h */