1 #ifndef NCHAN_DEFS_H
2 #define NCHAN_DEFS_H
3 
4 #define NCHAN_DEFAULT_SHM_SIZE 134217728 //128 megs
5 #define NCHAN_DEFAULT_MESSAGE_TIMEOUT 3600
6 #define NCHAN_DEFAULT_REDIS_IDLE_CHANNEL_CACHE_TIMEOUT 30
7 #define NCHAN_DEFAULT_SUBSCRIBER_TIMEOUT 0  //default: never timeout
8 #define NCHAN_DEFAULT_REDIS_NODE_CONNECT_TIMEOUT_MSEC 600
9 //(liucougar: this is a bit confusing, but it is what's the default behavior before this option is introducecd)
10 #define NCHAN_DEFAULT_SUBSCRIBER_PING_INTERVAL 0
11 
12 #define NCHAN_DEFAULT_CHANNEL_TIMEOUT 5 //default: timeout in 5 seconds
13 
14 #define NCHAN_DEFAULT_MIN_MESSAGES 1
15 #define NCHAN_DEFAULT_MAX_MESSAGES 10
16 
17 #define NCHAN_SUBSCRIBER_DEFAULT_FIRST_MESSAGE 1
18 #define NCHAN_SUBSCRIBER_FIRST_MESSAGE_UNSET 4096
19 
20 #define NCHAN_MAX_CHANNEL_ID_LENGTH 1024 //bytes
21 
22 #define NCHAN_META_CHANNEL_MAX_MESSAGES 100
23 #define NCHAN_META_CHANNEL_MESSAGE_TTL 10
24 #define NCHAN_META_CHANNEL_TIMEOUT 30
25 
26 #ifndef NGX_HTTP_REQUEST_TIMEOUT
27 #define NGX_HTTP_REQUEST_TIMEOUT 408
28 #endif
29 
30 #ifndef NGX_HTTP_CONFLICT
31 #define NGX_HTTP_CONFLICT 409
32 #endif
33 
34 #ifndef NGX_HTTP_SWITCHING_PROTOCOLS
35 #define NGX_HTTP_SWITCHING_PROTOCOLS       101
36 #endif
37 
38 #ifndef NGX_HTTP_GONE
39 #define NGX_HTTP_GONE 410
40 #endif
41 
42 #ifndef NGX_HTTP_CREATED
43 #define NGX_HTTP_CREATED 201
44 #endif
45 
46 #ifndef NGX_HTTP_ACCEPTED
47 #define NGX_HTTP_ACCEPTED 202
48 #endif
49 
50 #define NCHAN_MESSAGE_RECEIVED  9000
51 #define NCHAN_MESSAGE_QUEUED    9001
52 
53 #define NCHAN_NOTICE_SUBSCRIBER_INFO_REQUEST 1337
54 
55 #define NCHAN_SUBSCRIBER_INFO_CHANNEL_ID_BUFFER_SIZE 64
56 
57 extern const ngx_str_t NCHAN_HEADER_ETAG;
58 extern const ngx_str_t NCHAN_HEADER_IF_NONE_MATCH;
59 extern const ngx_str_t NCHAN_HEADER_VARY;
60 extern const ngx_str_t NCHAN_HEADER_ALLOW;
61 extern const ngx_str_t NCHAN_HEADER_CACHE_CONTROL;
62 extern const ngx_str_t NCHAN_HEADER_PRAGMA;
63 extern const ngx_str_t NCHAN_HEADER_ORIGIN;
64 
65 extern const ngx_str_t NCHAN_HEADER_ACCESS_CONTROL_ALLOW_HEADERS;
66 extern const ngx_str_t NCHAN_HEADER_ACCESS_CONTROL_ALLOW_METHODS;
67 extern const ngx_str_t NCHAN_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN;
68 extern const ngx_str_t NCHAN_HEADER_ACCESS_CONTROL_EXPOSE_HEADERS;
69 extern const ngx_str_t NCHAN_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS;
70 
71 extern const ngx_str_t NCHAN_HEADER_EVENTSOURCE_EVENT;
72 
73 extern const ngx_str_t NCHAN_HEADER_CONNECTION;
74 extern const ngx_str_t NCHAN_HEADER_UPGRADE;
75 extern const ngx_str_t NCHAN_HEADER_SEC_WEBSOCKET_KEY;
76 extern const ngx_str_t NCHAN_HEADER_SEC_WEBSOCKET_ACCEPT;
77 extern const ngx_str_t NCHAN_HEADER_SEC_WEBSOCKET_VERSION;
78 extern const ngx_str_t NCHAN_HEADERS_SEC_WEBSOCKET_PROTOCOL;
79 extern const ngx_str_t NCHAN_HEADER_SEC_WEBSOCKET_EXTENSIONS;
80 
81 //header values
82 extern const  ngx_str_t NCHAN_CACHE_CONTROL_VALUE;
83 
84 //status strings
85 extern const  ngx_str_t NCHAN_HTTP_STATUS_101;
86 extern const  ngx_str_t NCHAN_HTTP_STATUS_204;
87 extern const  ngx_str_t NCHAN_HTTP_STATUS_304;
88 extern const  ngx_str_t NCHAN_HTTP_STATUS_400;
89 extern const  ngx_str_t NCHAN_HTTP_STATUS_408;
90 extern const  ngx_str_t NCHAN_HTTP_STATUS_409;
91 extern const  ngx_str_t NCHAN_HTTP_STATUS_410;
92 
93 //other stuff
94 
95 extern const ngx_str_t NCHAN_UPGRADE;
96 extern const ngx_str_t NCHAN_SUBSCRIBER_TIMEOUT;
97 extern const ngx_str_t NCHAN_WEBSOCKET;
98 extern const ngx_str_t NCHAN_ANYSTRING;
99 extern const ngx_str_t NCHAN_ACCESS_CONTROL_ALLOWED_PUBLISHER_HEADERS;
100 extern const ngx_str_t NCHAN_ACCESS_CONTROL_ALLOWED_SUBSCRIBER_HEADERS;
101 extern const ngx_str_t NCHAN_ACCESS_CONTROL_ALLOWED_PUBSUB_HEADERS;
102 extern const ngx_str_t NCHAN_ACCESS_CONTROL_ALLOWED_GROUP_HEADERS;
103 extern const ngx_str_t NCHAN_ALLOW_GET_POST_PUT_DELETE;
104 extern const ngx_str_t NCHAN_ALLOW_GET_POST_DELETE;
105 extern const ngx_str_t NCHAN_ALLOW_GET;
106 extern const ngx_str_t NCHAN_VARY_HEADER_VALUE;
107 extern const ngx_str_t NCHAN_MSG_RESPONSE_ALLOWED_HEADERS;
108 extern const char *NCHAN_MSG_RESPONSE_ALLOWED_CUSTOM_ETAG_HEADERS_STRF;
109 extern const ngx_str_t NCHAN_CONTENT_TYPE_TEXT_PLAIN;
110 extern const ngx_str_t NCHAN_CHANNEL_INFO_PLAIN;
111 extern const ngx_str_t NCHAN_CHANNEL_INFO_JSON;
112 extern const ngx_str_t NCHAN_CHANNEL_INFO_XML;
113 extern const ngx_str_t NCHAN_CHANNEL_INFO_YAML;
114 
115 #define NCHAN_REDIS_DEFAULT_URL "redis://127.0.0.1:6379"
116 
117 #endif /* NCHAN_DEFS_H */
118