119 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* http.h
 | 
						|
 *
 | 
						|
 * This file is part of httpd.
 | 
						|
 *
 | 
						|
 * 02/17/1996 			Michael Temari <Michael@TemWare.Com>
 | 
						|
 * 07/07/1996 Initial Release	Michael Temari <Michael@TemWare.Com>
 | 
						|
 * 12/29/2002			Michael Temari <Michael@TemWare.Com>
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
#define	INDEX_FILE_NAME	"index.html"
 | 
						|
 | 
						|
#define	HTTP_REQUEST_TYPE_SIMPLE	0
 | 
						|
#define	HTTP_REQUEST_TYPE_FULL		1
 | 
						|
#define	HTTP_REQUEST_TYPE_PROXY		2
 | 
						|
 | 
						|
#define	HTTP_METHOD_UNKNOWN	0
 | 
						|
#define	HTTP_METHOD_OPTIONS	1
 | 
						|
#define	HTTP_METHOD_GET		2
 | 
						|
#define	HTTP_METHOD_HEAD	3
 | 
						|
#define	HTTP_METHOD_POST	4
 | 
						|
#define	HTTP_METHOD_PUT		5
 | 
						|
#define	HTTP_METHOD_PATCH	6
 | 
						|
#define	HTTP_METHOD_COPY	7
 | 
						|
#define	HTTP_METHOD_MOVE	8
 | 
						|
#define	HTTP_METHOD_DELETE	9
 | 
						|
#define	HTTP_METHOD_LINK	10
 | 
						|
#define	HTTP_METHOD_UNLINK	11
 | 
						|
#define	HTTP_METHOD_TRACE	12
 | 
						|
#define	HTTP_METHOD_WRAPPED	13
 | 
						|
 | 
						|
#define	HTTP_STATUS_OK			200
 | 
						|
#define	HTTP_STATUS_CREATED		201
 | 
						|
#define	HTTP_STATUS_ACCEPTED		202
 | 
						|
#define	HTTP_STATUS_NO_CONTENT		204
 | 
						|
#define	HTTP_STATUS_MOVED_PERM		301
 | 
						|
#define	HTTP_STATUS_MOVED_TEMP		302
 | 
						|
#define	HTTP_STATUS_NOT_MODIFIED	304
 | 
						|
#define	HTTP_STATUS_USE_PROXY		305
 | 
						|
#define	HTTP_STATUS_BAD_REQUEST		400
 | 
						|
#define	HTTP_STATUS_UNAUTHORIZED	401
 | 
						|
#define	HTTP_STATUS_FORBIDDEN		403
 | 
						|
#define	HTTP_STATUS_NOT_FOUND		404
 | 
						|
#define	HTTP_STATUS_METHOD_NOT_ALLOWED	405
 | 
						|
#define	HTTP_STATUS_PROXY_AUTH_REQRD	407
 | 
						|
#define	HTTP_STATUS_LENGTH_REQUIRED	411
 | 
						|
#define	HTTP_STATUS_SERVER_ERROR	500
 | 
						|
#define	HTTP_STATUS_NOT_IMPLEMENTED	501
 | 
						|
#define	HTTP_STATUS_BAD_GATEWAY		502
 | 
						|
#define	HTTP_STATUS_SERVICE_UNAVAILABLE	503
 | 
						|
#define	HTTP_STATUS_GATEWAY_TIMEOUT	504
 | 
						|
#define	HTTP_STATUS_UNSUPPORTED_VERSION	505
 | 
						|
 | 
						|
struct http_request {
 | 
						|
	int type;
 | 
						|
	int method;
 | 
						|
	char uri[256];
 | 
						|
	char url[256];
 | 
						|
	char query[256];
 | 
						|
	char host[256];
 | 
						|
	int port;
 | 
						|
	char useragent[256];
 | 
						|
	int vmajor;
 | 
						|
	int vminor;
 | 
						|
	time_t ifmodsince;
 | 
						|
	off_t size;
 | 
						|
	time_t msgdate;
 | 
						|
	int keepopen;
 | 
						|
	char wwwauth[128];
 | 
						|
	char authuser[128];
 | 
						|
	char authpass[128];
 | 
						|
	char cookie[128];
 | 
						|
};
 | 
						|
 | 
						|
struct http_reply {
 | 
						|
	int status;
 | 
						|
	char statusmsg[128];
 | 
						|
	int keepopen;
 | 
						|
	int headers;
 | 
						|
	char *mtype;
 | 
						|
	char realurl[256];
 | 
						|
	struct auth *auth;
 | 
						|
	int urlaccess;
 | 
						|
	off_t size;
 | 
						|
	time_t modtime;
 | 
						|
	int fd;
 | 
						|
	int ofd;
 | 
						|
	int pid;
 | 
						|
};
 | 
						|
 | 
						|
/* from httpd.c */
 | 
						|
 | 
						|
extern FILE *stdlog;
 | 
						|
extern FILE *dbglog;
 | 
						|
 | 
						|
/* from reply.c */
 | 
						|
 | 
						|
_PROTOTYPE(int sendreply, (struct http_reply *rp, struct http_request *rq));
 | 
						|
 | 
						|
/* from request.c */
 | 
						|
 | 
						|
_PROTOTYPE(int getrequest, (struct http_request *rq));
 | 
						|
 | 
						|
/* from process.c */
 | 
						|
 | 
						|
_PROTOTYPE(int processrequest, (struct http_request *rq, struct http_reply *rp));
 | 
						|
 | 
						|
/* from police.c */
 | 
						|
 | 
						|
_PROTOTYPE(int police, (struct http_request *rq, struct http_reply *rp));
 | 
						|
 | 
						|
/* from cgiexec.c */
 | 
						|
 | 
						|
_PROTOTYPE(int cgiexec, (struct http_request *rq, struct http_reply *rp));
 | 
						|
 | 
						|
/* from proxy.c */
 | 
						|
 | 
						|
_PROTOTYPE(void proxy, (struct http_request *rq, struct http_reply *rp));
 |