From 6204e62c69c1a05d3beddd0c7397b3f54e576d74 Mon Sep 17 00:00:00 2001 From: Aki Date: Tue, 29 Mar 2022 22:40:57 +0200 Subject: Split Param, Response and Request from HttpServer files --- NetEx/HttpServer.h | 184 +++-------------------------------------------------- 1 file changed, 10 insertions(+), 174 deletions(-) (limited to 'NetEx/HttpServer.h') diff --git a/NetEx/HttpServer.h b/NetEx/HttpServer.h index a4b906b..8bac7ab 100644 --- a/NetEx/HttpServer.h +++ b/NetEx/HttpServer.h @@ -3,27 +3,25 @@ Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors Copyright (c) 1997-2006, Destroyer Studios LLC. - AUTHOR: John DiCamillo + AUTHOR: John DiCamillo - OVERVIEW - ======== - Network Server Pump for HTTP Server + OVERVIEW + ======== + Network Server Pump for HTTP Server */ - #ifndef HttpServer_h #define HttpServer_h -#include "NetServer.h" - -// +-------------------------------------------------------------------+ +#include -class HttpParam; -class HttpRequest; -class HttpResponse; +#include "HttpRequest.h" +#include "HttpResponse.h" +#include "NetAddr.h" +#include "NetServer.h" +#include "Text.h" -// +-------------------------------------------------------------------+ class HttpServer : public NetServer { @@ -50,167 +48,5 @@ protected: Text http_server_name; }; -// +-------------------------------------------------------------------+ - -class HttpParam -{ -public: - static const char* TYPENAME() { return "HttpParam"; } - - HttpParam(const char* n, const char* v) : name(n), value(v) { } - - int operator == (const HttpParam& p) const { return name == p.name; } - - Text name; - Text value; -}; - -// +-------------------------------------------------------------------+ - -class HttpRequest -{ -public: - static const char* TYPENAME() { return "HttpRequest"; } - - enum METHOD { - HTTP_OPTIONS, - HTTP_GET, - HTTP_HEAD, - HTTP_POST, - HTTP_PUT, - HTTP_DELETE, - HTTP_TRACE, - HTTP_CONNECT - }; - - HttpRequest(const char* request=0); - ~HttpRequest(); - - operator Text(); - - void ParseRequest(Text request); - void ParseCookie(const char* param); - - int Method() const { return method; } - Text URI() const { return uri; } - Text Content() const { return content; } - Text RequestLine() const { return request_line; } - - List& GetQuery() { return query; } - List& GetHeaders() { return headers; } - List& GetCookies() { return cookies; } - - NetAddr GetClientAddr() const { return client_addr; } - void SetClientAddr(const NetAddr& a) { client_addr = a; } - - Text GetParam(const char* name); - - Text GetHeader(const char* name); - void SetHeader(const char* name, const char* value); - void AddHeader(const char* name, const char* value); - Text GetCookie(const char* name); - void SetCookie(const char* name, const char* value); - void AddCookie(const char* name, const char* value); - - Text DecodeParam(const char* value); - static Text EncodeParam(const char* value); - -private: - int method; - Text uri; - Text content; - Text request_line; - NetAddr client_addr; - - List query; - List headers; - List cookies; -}; - -// +-------------------------------------------------------------------+ - -class HttpResponse -{ -public: - static const char* TYPENAME() { return "HttpResponse"; } - - enum STATUS { - SC_CONTINUE = 100, - SC_SWITCHING_PROTOCOLS = 101, - - SC_OK = 200, - SC_CREATED = 201, - SC_ACCEPTED = 202, - SC_NON_AUTHORITATIVE = 203, - SC_NO_CONTENT = 204, - SC_RESET_CONTENT = 205, - SC_PARTIAL_CONTENT = 206, - - SC_MULTIPLE_CHOICES = 300, - SC_MOVED_PERMANENTLY = 301, - SC_FOUND = 302, - SC_SEE_OTHER = 303, - SC_NOT_MODIFIED = 304, - SC_USE_PROXY = 305, - SC_TEMPORARY_REDIRECT = 307, - - SC_BAD_REQUEST = 400, - SC_UNAUTHORIZED = 401, - SC_PAYMENT_REQUIRED = 402, - SC_FORBIDDEN = 403, - SC_NOT_FOUND = 404, - SC_METHOD_NOT_ALLOWED = 405, - SC_NOT_ACCEPTABLE = 406, - SC_PROXY_AUTH_REQ = 407, - SC_REQUEST_TIME_OUT = 408, - SC_CONFLICT = 409, - SC_GONE = 410, - SC_LENGTH_REQUIRED = 411, - - SC_SERVER_ERROR = 500, - SC_NOT_IMPLEMENTED = 501, - SC_BAD_GATEWAY = 502, - SC_SERVICE_UNAVAILABLE = 503, - SC_GATEWAY_TIMEOUT = 504, - SC_VERSION_NOT_SUPPORTED= 505 - }; - - - HttpResponse(int status=500, const char* content=0); - HttpResponse(const char* response); - ~HttpResponse(); - - operator Text(); - - void ParseResponse(Text request); - void ParseCookie(const char* param); - - int Status() const { return status; } - void SetStatus(int s) { status = s; } - - Text Content() const { return content; } - void SetContent(Text t) { content = t; } - void AddContent(Text t) { content += t; } - - List& GetHeaders() { return headers; } - List& GetCookies() { return cookies; } - - Text GetHeader(const char* name); - void SetHeader(const char* name, const char* value); - void AddHeader(const char* name, const char* value); - Text GetCookie(const char* name); - void SetCookie(const char* name, const char* value); - void AddCookie(const char* name, const char* value); - - void SendRedirect(const char* url); - -private: - int status; - Text content; - - List headers; - List cookies; -}; - #endif // HttpServer_h -- cgit v1.1