summaryrefslogtreecommitdiffhomepage
path: root/NetEx/HttpServer.h
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2022-03-29 22:40:57 +0200
committerAki <please@ignore.pl>2022-03-29 22:40:57 +0200
commit6204e62c69c1a05d3beddd0c7397b3f54e576d74 (patch)
tree6dfc5ef3c017942fd1a9d980893fe1c0c0ebd427 /NetEx/HttpServer.h
parented2b908b7d88bcb5730ef74ae97020b683da51ae (diff)
downloadstarshatter-6204e62c69c1a05d3beddd0c7397b3f54e576d74.zip
starshatter-6204e62c69c1a05d3beddd0c7397b3f54e576d74.tar.gz
starshatter-6204e62c69c1a05d3beddd0c7397b3f54e576d74.tar.bz2
Split Param, Response and Request from HttpServer files
Diffstat (limited to 'NetEx/HttpServer.h')
-rw-r--r--NetEx/HttpServer.h184
1 files changed, 10 insertions, 174 deletions
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 <windows.h>
-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<HttpParam>& GetQuery() { return query; }
- List<HttpParam>& GetHeaders() { return headers; }
- List<HttpParam>& 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<HttpParam> query;
- List<HttpParam> headers;
- List<HttpParam> 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<HttpParam>& GetHeaders() { return headers; }
- List<HttpParam>& 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<HttpParam> headers;
- List<HttpParam> cookies;
-};
-
#endif // HttpServer_h