diff options
Diffstat (limited to 'httpserver/defs.h')
-rw-r--r-- | httpserver/defs.h | 249 |
1 files changed, 249 insertions, 0 deletions
diff --git a/httpserver/defs.h b/httpserver/defs.h new file mode 100644 index 0000000..26d3b36 --- /dev/null +++ b/httpserver/defs.h @@ -0,0 +1,249 @@ +/* +* This file is part of rasdaman community. +* +* Rasdaman community is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* Rasdaman community is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with rasdaman community. If not, see <http://www.gnu.org/licenses/>. +* +* Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann / +rasdaman GmbH. +* +* For more information please see <http://www.rasdaman.org> +* or contact Peter Baumann via <baumann@rasdaman.com>. +*/ +/*------------------------------------------------------------------------*/ +/* defs.h - Global defines and typedefs. */ +/*------------------------------------------------------------------------*/ + + +#ifndef _DEFS_H +#define _DEFS_H + + +/* Name of this daemon + */ + +#define PROGRAM_NAME "httpserver" +#define PROGRAM_VERSION "1.0" +#define DAEMONNAME PROGRAM_NAME "/" PROGRAM_VERSION +#define SERVERFIELD "Server: " DAEMONNAME "\r\n" + + +/* These constants *may* be changed + */ + +#define BUFFSIZE 8192 +#define MAXLINELEN 4096 +#define PIPE_BUFFSIZE 4096 +#define DATE_BUFFSIZE 40 +#define IO_BUFFSIZE 65536 +#define DEFAULT_MAXURLLENGTH 1000000 +// #define IO_BUFFSIZE 1024 + +/* TimeOut values are given in seconds + */ + + /* Timeout when talking with subservers and client */ +#define DIALOG_TIMEOUT 30 + /* Timeout when trying to get an unspecified mesage body, for example */ + /* dynamically generated output (typically CGI output). */ + /* You may have to *really* wait for it, so don't make it too small! */ +#define MSGBODY_TIMEOUT 30 + + +/* Misc. defines + */ + +#ifndef TRUE +#define TRUE 1 +#endif +#ifndef FALSE +#define FALSE 0 +#endif + +#ifdef SOCKLENNOTDEFINED +typedef int socklen_t; +#endif + +#define max(a,b) (a > b ? a : b) +#define min(a,b) (a < b ? a : b) + +#define FOREGROUND 0 +#define BACKGROUND 1 + +/* Std.-Zugriffsberechtigung für neue Dateien */ +#define FILE_MODE ( S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH ) + +/* Filetypes: */ +#define FT_NOFILE 0 +#define FT_CONFFILE 1 +#define FT_ACCESSLOG 2 +#define FT_SERVERLOG 3 +#define FT_COMMLOG 4 +#define FT_PIDFILE 5 +#define FT_CACHEFILE 6 + +/* Stringtypes: */ +#define ST_NOSTRING 0 +#define ST_HOSTNAME 1 +#define ST_MAILADDRESS 2 + + +/* Pipe Status: + */ + +#define PIPE_OPEN 1 +#define PIPE_CLOSED 0 + +/* LogFile Status: + */ + +#define FILE_OPEN 1 +#define FILE_CLOSED 0 + +/* Logging Modes: + * FILE (0) ServerLog und AccessLog einrichten und oeffnen + * STDIO (1) ServerLog -> stderr; AccessLog -> stdout + * DEBUG (2) Detaillierte Meldungen + */ + +#define LF_VERB 0x0001 +#define LF_STDERR 0x0002 + +#define LM_NORMAL 0 /* Not Verbose, write into log files */ +#define LM_VERBOSE 1 /* Verbose, write into log files */ +#define LM_STDERR 2 /* Not Verbose, use STDOUT/STDERR */ +#define LM_VERBOSE_STDERR 3 /* Verbose, use STDOUT/STDERR */ + + +/* LogLevels / ReturnCodes: + * DEBUG (1) Detaillierte Aktionsmeldungen + * INFO (2) Statusmeldungen + * NOTE (3) Hinweise auf besondere Situationen + * WARN (5) Behebbare Fehlersituationen + * ERROR (10) Fehler die zu Aktionsabbruch fuehren + * FAIL (20) Fehler die zum Programmabbruch fuehren + */ + +#define OK 0 +#define DEBUG 1 +#define INFO 2 +#define NOTE 3 +#define WARN 5 +#define ERROR 10 +#define FAIL 20 +#define DUMP 50 + +#define SYS_ERROR -1 + +/* Logging sub-systems: + * LG_SERVER generic server logfile + * LG_ACCESS HTTP request logfile + */ + +#define LG_SERVER 1 +#define LG_ACCESS 2 +#define LG_COMM 3 + +/* Error-Type flags: + * SYS TRUE System Error: strerror(errno) + * PRIV FALSE Application Error + */ + +#define E_SYS TRUE +#define E_PRIV FALSE + +/* Configuration Keyword Keys: + */ + +#define KEY_ACCESSLOG 1 +#define KEY_COMMLOG 2 +#define KEY_INDEXFILE 3 +#define KEY_MAXURLLENGTH 4 +#define KEY_PIDFILE 5 +#define KEY_PORT 6 +#define KEY_SERVERADMIN 7 +#define KEY_SERVERLOG 8 +#define KEY_SERVERNAME 9 +#define KEY_SERVERROOT 10 +#define NUM_KEYS 11 + +/* SubServer Communication Status Codes: + */ + +#define COMM_UNSUPPORTED -3 /* don't know how to handle comm state */ +#define COMM_UNEXPECTED -2 /* unexpected data received */ +#define COMM_FAILED -1 /* trouble while communicating, protocol failure */ +#define COMM_IDLE 0 /* not connected and ready */ +#define COMM_CONNECTING 1 /* trying to connect or "Keep-Alive" connection */ +#define COMM_GET_RESPHEAD 2 /* reading and processing response header */ +#define COMM_GET_RESPBODY 3 /* reading response body */ +#define COMM_MAY_GET_BODY 4 /* have to check for response body */ +#define COMM_HERE_IS_MORE 5 /* select() indicated that there IS more data */ +#define COMM_DONE 9 /* communication done, protocol OK */ +/* Currently not in use: */ +#define COMM_RECONNECTING 10 /* trying to reconnect for authorization */ +#define COMM_VERIFYING 11 /* analysing response: add. processing required */ +#define COMM_SENDINGAUTH 12 /* (re-)sending request with authorization */ + +/* Connection Mode Codes: + */ + +#define CONN_FAILURE -3 /* Failure when setting up connection */ +#define CONN_BROKEN -2 /* Connection broken while communicating */ +#define CONN_UNDEFINED -1 /* Connection not initiated */ +#define CONN_CLOSE 0 /* Connection will be closed ASAP */ +#define CONN_OPEN 1 /* Connection is ready for communication */ +#define CONN_ERROR 2 /* Error condition in communication */ + +/* ToDo Action Codes: + */ + +#define DO_NOTHING 0 +#define DO_SINGLE_SERVER 1 +#define DO_REWRITE 2 +#define DO_SEND_RESPONSE 3 +#define DO_SEND_ERROR 4 +#define DO_SHUTDOWN 5 + +/* Client Types */ +#define BROWSER 1 +#define RASCLIENT 2 + +/* ToDo Argument Codes: + */ + +/* - DO_REWRITE: */ +#define MODE_HTTP_1_0 1 +#define MODE_HTTP_1_1 2 + +/* - INTERPRETE_POST_REQUEST: - */ +#define REQU_OK 1 +#define REQU_UNKNOWN_PARAMETER 2 +#define REQU_UNKNOWN_CLIENT 3 + +/* - Result Types: Error, MDD, Skalar - */ +#define RESULT_ERROR 1 +#define RESULT_MDD 2 +#define RESULT_SKALAR 3 + +/* - DO_SEND_ERROR: */ +/* -> use HTTP Status Codes (see http-defs.h) */ + +/* - DO_SHUTDOWN: */ +#define CLOSE_ALL 1 +#define CLOSE_CLIENT_ONLY 2 /* Currently not used */ + +/* - DO_NOTHING: */ +#define REALLY_NOTHING 0 + +#endif /* _DEFS_H not defined */ |