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

Annotation of /hydra/src/defines.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations)
Sat Sep 21 22:42:08 2002 UTC (21 years, 7 months ago) by nmav
Branch: MAIN
Changes since 1.1: +5 -1 lines
File MIME type: text/plain
Improved the mmap caching.

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.2 /* $Id: defines.h,v 1.1.1.1 2002/09/21 13:53:50 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     #define SERVER_ROOT "/etc/boa"
31     #endif
32    
33     /***** Change this via the CGIPath configuration value in boa.conf *****/
34     #define DEFAULT_PATH "/bin:/usr/bin:/usr/local/bin"
35    
36     /***** Change this via the SinglePostLimit configuration value in boa.conf *****/
37     #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     #define SOCKETBUF_SIZE 8192
48     #define MAX_HEADER_LENGTH 1024
49     #define CLIENT_STREAM_SIZE SOCKETBUF_SIZE
50     #define BUFFER_SIZE CLIENT_STREAM_SIZE
51    
52     #define MIME_HASHTABLE_SIZE 47
53     #define ALIAS_HASHTABLE_SIZE 17
54     #define PASSWD_HASHTABLE_SIZE 47
55    
56     #define REQUEST_TIMEOUT 60
57    
58     #define CGI_MIME_TYPE "application/x-httpd-cgi"
59    
60     /***** CHANGE ANYTHING BELOW THIS LINE AT YOUR OWN PERIL *****/
61     /***** You will probably introduce buffer overruns unless you know
62     what you are doing *****/
63    
64     #define MAX_SITENAME_LENGTH 256
65     #define MAX_LOG_LENGTH MAX_HEADER_LENGTH + 1024
66     #define MAX_FILE_LENGTH NAME_MAX
67     #define MAX_PATH_LENGTH PATH_MAX
68    
69     #ifdef ACCEPT_ON
70     #define MAX_ACCEPT_LENGTH MAX_HEADER_LENGTH
71     #else
72     #define MAX_ACCEPT_LENGTH 0
73     #endif
74    
75     #ifndef SERVER_VERSION
76     #define SERVER_VERSION "Boa/0.94.13"
77     #endif
78    
79     #define CGI_VERSION "CGI/1.1"
80     #define COMMON_CGI_COUNT 5
81     #define CGI_ENV_MAX 50
82     #define CGI_ARGC_MAX 128
83    
84     /******************* RESPONSE CLASSES *****************/
85    
86     #define R_INFORMATIONAL 1
87     #define R_SUCCESS 2
88     #define R_REDIRECTION 3
89     #define R_CLIENT_ERROR 4
90     #define R_SERVER_ERROR 5
91    
92     /******************* RESPONSE CODES ******************/
93    
94     #define R_REQUEST_OK 200
95     #define R_CREATED 201
96     #define R_ACCEPTED 202
97     #define R_PROVISIONAL 203 /* provisional information */
98     #define R_NO_CONTENT 204
99    
100     #define R_MULTIPLE 300 /* multiple choices */
101     #define R_MOVED_PERM 301
102     #define R_MOVED_TEMP 302
103     #define R_NOT_MODIFIED 304
104    
105     #define R_BAD_REQUEST 400
106     #define R_UNAUTHORIZED 401
107     #define R_PAYMENT 402 /* payment required */
108     #define R_FORBIDDEN 403
109     #define R_NOT_FOUND 404
110     #define R_METHOD_NA 405 /* method not allowed */
111     #define R_NONE_ACC 406 /* none acceptable */
112     #define R_PROXY 407 /* proxy authentication required */
113     #define R_REQUEST_TO 408 /* request timeout */
114     #define R_CONFLICT 409
115     #define R_GONE 410
116    
117     #define R_ERROR 500 /* internal server error */
118     #define R_NOT_IMP 501 /* not implemented */
119     #define R_BAD_GATEWAY 502
120     #define R_SERVICE_UNAV 503 /* service unavailable */
121     #define R_GATEWAY_TO 504 /* gateway timeout */
122     #define R_BAD_VERSION 505
123    
124     /****************** METHODS *****************/
125    
126     #define M_GET 1
127     #define M_HEAD 2
128     #define M_PUT 3
129     #define M_POST 4
130     #define M_DELETE 5
131     #define M_LINK 6
132     #define M_UNLINK 7
133    
134     /************** REQUEST STATUS (req->status) ***************/
135    
136     #define READ_HEADER 0
137     #define ONE_CR 1
138     #define ONE_LF 2
139     #define TWO_CR 3
140     #define BODY_READ 4
141     #define BODY_WRITE 5
142     #define WRITE 6
143     #define PIPE_READ 7
144     #define PIPE_WRITE 8
145     #define DONE 9
146     #define DEAD 10
147     #define FINISH_HANDSHAKE 11
148     #define SEND_ALERT 12
149    
150     /************** CGI TYPE (req->is_cgi) ******************/
151    
152     #define CGI 1
153     #define NPH 2
154    
155     /************* ALIAS TYPES (aliasp->type) ***************/
156    
157     #define ALIAS 0
158     #define SCRIPTALIAS 1
159     #define REDIRECT 2
160    
161     /*********** KEEPALIVE CONSTANTS (req->keepalive) *******/
162    
163     #define KA_INACTIVE 0
164     #define KA_STOPPED 1
165     #define KA_ACTIVE 2
166    
167     /********* CGI STATUS CONSTANTS (req->cgi_status) *******/
168     #define CGI_PARSE 1
169     #define CGI_BUFFER 2
170     #define CGI_DONE 3
171    
172     /*********** MMAP_LIST CONSTANTS ************************/
173 nmav 1.2 #define USE_MMAP_LIST /* undefine it in constraint environments
174     * to save memory, from mmaped files.
175     */
176    
177 nmav 1.1 #define MMAP_LIST_SIZE 256
178     #define MMAP_LIST_MASK 255
179     #define MMAP_LIST_USE_MAX 128
180     #define MMAP_LIST_NEXT(i) (((i)+1)&MMAP_LIST_MASK)
181     #define MMAP_LIST_HASH(dev,ino,size) ((ino)&MMAP_LIST_MASK)
182    
183     #define MAX_FILE_MMAP 100 * 1024 /* 100K */
184    
185     /***************** USEFUL MACROS ************************/
186    
187     #define SQUASH_KA(req) (req->keepalive=KA_STOPPED)
188    
189     #define BOA_FD_SET(fd, where) { FD_SET(fd, where); \
190     if (fd > params->max_fd) params->max_fd = fd; \
191     }
192    
193     /* If and when everyone has a modern gcc or other near-C99 compiler,
194     * change these to static inline functions. Also note that since
195     * we never fuss with O_APPEND append or O_ASYNC, we shouldn't have
196     * to perform an extra system call to F_GETFL first.
197     */
198    
199     #ifdef BOA_USE_GETFL
200     #define set_block_fd(fd) real_set_block_fd(fd)
201     #define set_nonblock_fd(fd) real_set_nonblock_fd(fd)
202     #else
203     #define set_block_fd(fd) fcntl(fd, F_SETFL, 0)
204     #define set_nonblock_fd(fd) fcntl(fd, F_SETFL, NOBLOCK)
205     #endif
206    
207     #define DIE(mesg) log_error_mesg(__FILE__, __LINE__, mesg), exit(1)
208     #define WARN(mesg) log_error_mesg(__FILE__, __LINE__, mesg)
209    
210     #endif

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26