/[hydra]/hydra/src/defines.h
ViewVC logotype

Annotation of /hydra/src/defines.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.30 - (hide annotations)
Sun Oct 27 08:45:51 2002 UTC (21 years, 5 months ago) by nmav
Branch: MAIN
CVS Tags: hydra_0_0_10, hydra_0_0_9, hydra_0_1_0
Branch point for: hydra_0_1_0_patches
Changes since 1.29: +2 -2 lines
File MIME type: text/plain
SSLParamsRefresh was renamed to MaintenanceInterval and is more
generic, since it includes some server cleanups.

1 nmav 1.1 /*
2     * Boa, an http server
3     * Copyright (C) 1995 Paul Phillips <paulp@go2net.com>
4     * Some changes Copyright (C) 1997 Jon Nelson <jnelson@boa.org>
5     *
6     * This program is free software; you can redistribute it and/or modify
7     * it under the terms of the GNU General Public License as published by
8     * the Free Software Foundation; either version 1, or (at your option)
9     * any later version.
10     *
11     * This program is distributed in the hope that it will be useful,
12     * but WITHOUT ANY WARRANTY; without even the implied warranty of
13     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14     * GNU General Public License for more details.
15     *
16     * You should have received a copy of the GNU General Public License
17     * along with this program; if not, write to the Free Software
18     * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19     *
20     */
21    
22 nmav 1.30 /* $Id: defines.h,v 1.29 2002/10/21 19:10:31 nmav Exp $*/
23 nmav 1.1
24     #ifndef _DEFINES_H
25     #define _DEFINES_H
26    
27     /***** Change this, or use -c on the command line to specify it *****/
28    
29     #ifndef SERVER_ROOT
30 nmav 1.23 #define SERVER_ROOT "/etc/hydra"
31 nmav 1.1 #endif
32    
33 nmav 1.10 /***** Change this via the CGIPath configuration value in hydra.conf *****/
34 nmav 1.1 #define DEFAULT_PATH "/bin:/usr/bin:/usr/local/bin"
35    
36 nmav 1.10 /***** Change this via the SinglePostLimit configuration value in hydra.conf *****/
37 nmav 1.1 #define SINGLE_POST_LIMIT_DEFAULT 1024 * 1024 /* 1 MB */
38    
39     /***** BOA error codes for socket operations */
40     #define BOA_E_AGAIN -1
41     #define BOA_E_PIPE -2
42     #define BOA_E_INTR -3
43     #define BOA_E_UNKNOWN -255
44    
45     /***** Various stuff that you may want to tweak, but probably shouldn't *****/
46    
47 nmav 1.28 #define SOCKETBUF_SIZE 32*1024
48 nmav 1.1 #define MAX_HEADER_LENGTH 1024
49 nmav 1.28 #define CLIENT_STREAM_SIZE 8192
50     #define BUFFER_SIZE 4096
51 nmav 1.1
52 nmav 1.17 #define MODULE_HASHTABLE_SIZE 8
53 nmav 1.1 #define MIME_HASHTABLE_SIZE 47
54     #define ALIAS_HASHTABLE_SIZE 17
55     #define PASSWD_HASHTABLE_SIZE 47
56 nmav 1.18 #define VIRTHOST_HASHTABLE_SIZE 20 /* You'd better increase this
57     * if you host several sites.
58     */
59 nmav 1.12 #define DIRECTORY_INDEX_TABLE_SIZE 30
60 nmav 1.1
61     #define REQUEST_TIMEOUT 60
62    
63     #define CGI_MIME_TYPE "application/x-httpd-cgi"
64    
65     /***** CHANGE ANYTHING BELOW THIS LINE AT YOUR OWN PERIL *****/
66     /***** You will probably introduce buffer overruns unless you know
67     what you are doing *****/
68    
69     #define MAX_SITENAME_LENGTH 256
70     #define MAX_LOG_LENGTH MAX_HEADER_LENGTH + 1024
71     #define MAX_FILE_LENGTH NAME_MAX
72     #define MAX_PATH_LENGTH PATH_MAX
73 nmav 1.22 #define MAX_ETAG_LENGTH 13+1 /* does include the
74 nmav 1.20 * quotes, and includes the
75     * terminating null character.
76     */
77 nmav 1.1
78 nmav 1.9 #define MAX_USER_DIR_LENGTH 60
79    
80 nmav 1.1 #ifdef ACCEPT_ON
81     #define MAX_ACCEPT_LENGTH MAX_HEADER_LENGTH
82     #else
83     #define MAX_ACCEPT_LENGTH 0
84     #endif
85    
86     #define CGI_VERSION "CGI/1.1"
87 nmav 1.28
88     #ifdef USE_NCSA_CGI_ENV
89     # define COMMON_CGI_COUNT 5
90     #else
91     # define COMMON_CGI_COUNT 4
92     #endif
93    
94 nmav 1.1 #define CGI_ENV_MAX 50
95     #define CGI_ARGC_MAX 128
96    
97     /******************* RESPONSE CLASSES *****************/
98    
99     #define R_INFORMATIONAL 1
100     #define R_SUCCESS 2
101     #define R_REDIRECTION 3
102     #define R_CLIENT_ERROR 4
103     #define R_SERVER_ERROR 5
104    
105     /******************* RESPONSE CODES ******************/
106    
107     #define R_REQUEST_OK 200
108     #define R_CREATED 201
109     #define R_ACCEPTED 202
110     #define R_PROVISIONAL 203 /* provisional information */
111     #define R_NO_CONTENT 204
112 nmav 1.4 #define R_REQUEST_PARTIAL 206
113 nmav 1.1
114     #define R_MULTIPLE 300 /* multiple choices */
115     #define R_MOVED_PERM 301
116     #define R_MOVED_TEMP 302
117     #define R_NOT_MODIFIED 304
118    
119     #define R_BAD_REQUEST 400
120     #define R_UNAUTHORIZED 401
121     #define R_PAYMENT 402 /* payment required */
122     #define R_FORBIDDEN 403
123     #define R_NOT_FOUND 404
124     #define R_METHOD_NA 405 /* method not allowed */
125     #define R_NONE_ACC 406 /* none acceptable */
126     #define R_PROXY 407 /* proxy authentication required */
127     #define R_REQUEST_TO 408 /* request timeout */
128     #define R_CONFLICT 409
129     #define R_GONE 410
130 nmav 1.19 #define R_PRECONDITION_FAILED 412
131     #define R_RANGE_UNSATISFIABLE 416
132 nmav 1.1
133     #define R_ERROR 500 /* internal server error */
134     #define R_NOT_IMP 501 /* not implemented */
135     #define R_BAD_GATEWAY 502
136     #define R_SERVICE_UNAV 503 /* service unavailable */
137     #define R_GATEWAY_TO 504 /* gateway timeout */
138     #define R_BAD_VERSION 505
139    
140     /****************** METHODS *****************/
141    
142     #define M_GET 1
143     #define M_HEAD 2
144     #define M_PUT 3
145     #define M_POST 4
146     #define M_DELETE 5
147     #define M_LINK 6
148     #define M_UNLINK 7
149    
150     /************** REQUEST STATUS (req->status) ***************/
151    
152     #define READ_HEADER 0
153     #define ONE_CR 1
154     #define ONE_LF 2
155     #define TWO_CR 3
156     #define BODY_READ 4
157     #define BODY_WRITE 5
158     #define WRITE 6
159     #define PIPE_READ 7
160     #define PIPE_WRITE 8
161 nmav 1.28 #define IOSHUFFLE 9
162     #define DONE 10
163     #define DEAD 11
164     #define FINISH_HANDSHAKE 12
165     #define SEND_ALERT 13
166    
167 nmav 1.1
168     /************** CGI TYPE (req->is_cgi) ******************/
169    
170     #define CGI 1
171     #define NPH 2
172 nmav 1.12 #define INDEXER_CGI 3
173 nmav 1.14 #define HIC_CGI 4
174 nmav 1.1
175     /************* ALIAS TYPES (aliasp->type) ***************/
176    
177     #define ALIAS 0
178     #define SCRIPTALIAS 1
179     #define REDIRECT 2
180    
181     /*********** KEEPALIVE CONSTANTS (req->keepalive) *******/
182    
183     #define KA_INACTIVE 0
184     #define KA_STOPPED 1
185     #define KA_ACTIVE 2
186 nmav 1.8
187     /********* SSL stuff */
188 nmav 1.30 #define MIN_MAINTENANCE_INTERVAL 1800 /* half an hour */
189 nmav 1.1
190     /********* CGI STATUS CONSTANTS (req->cgi_status) *******/
191     #define CGI_PARSE 1
192     #define CGI_BUFFER 2
193     #define CGI_DONE 3
194    
195     /*********** MMAP_LIST CONSTANTS ************************/
196 nmav 1.2 #define USE_MMAP_LIST /* undefine it in constraint environments
197     * to save memory, from mmaped files.
198     */
199    
200 nmav 1.11 #define MMAP_LIST_NEXT(i) (((i)+1)%max_files_cache)
201 nmav 1.27 #define MMAP_LIST_HASH(dev,ino,size) (((unsigned long int)ino)%max_files_cache)
202 nmav 1.26
203     /***************** Defines for break_comma_list() *************/
204     #define MAX_COMMA_SEP_ELEMENTS 6
205 nmav 1.13
206     /***************** HTTP HEADER STUFF ***************************/
207    
208     #define TEXT_HTML "text/html; charset=ISO-8859-1"
209     #define CRLF "\r\n"
210 nmav 1.22 #define HTTP_VERSION "HTTP/1.1"
211 nmav 1.13
212 nmav 1.19 /***************** HTTP/1.1 If-Match stuff ********************/
213    
214     #define IF_NO_IF 0 /* unused - just to indicate that 0 is no If header */
215     #define IF_MATCH 1
216     #define IF_NONE_MATCH 2
217 nmav 1.21 #define IF_RANGE 4
218     #define IF_MODIFIED_SINCE 8
219 nmav 1.1
220     /***************** USEFUL MACROS ************************/
221 nmav 1.24
222     #ifndef INT_MAX
223     # define INT_MAX 2147483647L
224     #endif
225 nmav 1.25
226     #define HEX(x) (((x)>9)?(('a'-10)+(x)):('0'+(x)))
227 nmav 1.1
228 nmav 1.28 #ifdef USE_POLL
229     # define BOA_READ POLLIN|POLLPRI
230     # define BOA_WRITE POLLOUT
231 nmav 1.29 # define BOA_FD_SET(req, thefd,where) { struct pollfd *my_pfd; \
232     my_pfd = &params->pfds[params->pfd_len]; \
233     req->pollfd_id = params->pfd_len++; \
234     my_pfd->fd = thefd; \
235     my_pfd->events = where; \
236     }
237     # define BOA_FD_ZERO( ign) /* nothing */
238 nmav 1.28 # define BOA_FD_CLR(req, fd, where) /* this doesn't do anything? */
239     #else /* SELECT */
240     # define BOA_READ &params->block_read_fdset
241     # define BOA_WRITE &params->block_write_fdset
242     # define BOA_FD_SET(req, fd, where) { FD_SET(fd, where); if (fd > params->max_fd) params->max_fd = fd; }
243     # define BOA_FD_CLR(req, fd, where) { FD_CLR(fd, where); }
244 nmav 1.29 # define BOA_FD_ZERO( fdset) FD_ZERO( fdset)
245 nmav 1.28 #endif
246 nmav 1.1
247 nmav 1.28 /******** MACROS TO CHANGE BLOCK/NON-BLOCK **************/
248 nmav 1.1
249     #define DIE(mesg) log_error_mesg(__FILE__, __LINE__, mesg), exit(1)
250     #define WARN(mesg) log_error_mesg(__FILE__, __LINE__, mesg)
251    
252     #endif
253 nmav 1.28
254     /***************** USEFUL MACROS ************************/
255    
256     #define SQUASH_KA(req) (req->keepalive=KA_STOPPED)
257    

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26