]> arthur.barton.de Git - netatalk.git/blob - etc/afpd/fce_api_internal.h
Add a configurable hold time option to FCE file modification event generation, defaul...
[netatalk.git] / etc / afpd / fce_api_internal.h
1 /* \r
2  * File:   fce_api_internal.h\r
3  * Author: mw\r
4  *\r
5  * Created on 1. Oktober 2010, 23:48\r
6  */\r
7 \r
8 #ifndef _FCE_API_INTERNAL_H\r
9 #define _FCE_API_INTERNAL_H\r
10 \r
11 #define FCE_MAX_UDP_SOCKS 5     /* Allow a maximum of udp listeners for file change events */\r
12 #define FCE_SOCKET_RETRY_DELAY_S 600 /* Pause this time in s after socket was broken */\r
13 #define FCE_PACKET_VERSION  1\r
14 #define FCE_HISTORY_LEN 10  /* This is used to coalesce events */\r
15 #define MAX_COALESCE_TIME_MS 1000  /* Events oldeer than this are not coalesced */\r
16 \r
17 #define FCE_COALESCE_CREATE (1 << 0)\r
18 #define FCE_COALESCE_DELETE (1 << 1)\r
19 #define FCE_COALESCE_ALL    (FCE_COALESCE_CREATE | FCE_COALESCE_DELETE)\r
20 \r
21 struct udp_entry\r
22 {\r
23     int sock;\r
24     char *addr;\r
25     char *port;\r
26     struct addrinfo addrinfo;\r
27     struct sockaddr_storage sockaddr;\r
28     time_t next_try_on_error;      /* In case of error set next timestamp to retry */\r
29 };\r
30 \r
31 struct fce_history\r
32 {\r
33     unsigned char mode;\r
34         int is_dir;\r
35         char path[MAXPATHLEN + 1];\r
36         struct timeval tv;\r
37 };\r
38 \r
39 struct fce_close_event {\r
40     time_t time;\r
41         char path[MAXPATHLEN + 1];\r
42 };\r
43 \r
44 #define PACKET_HDR_LEN (sizeof(struct fce_packet) - FCE_MAX_PATH_LEN)\r
45 \r
46 int fce_handle_coalescation( char *path, int is_dir, int mode );\r
47 void fce_initialize_history();\r
48 \r
49 \r
50 #endif  /* _FCE_API_INTERNAL_H */\r
51 \r