added sysprog entities
This commit is contained in:
213
SYSPROG/STPROCINS/PS_HTTPSERVER_EQUATES.txt
Normal file
213
SYSPROG/STPROCINS/PS_HTTPSERVER_EQUATES.txt
Normal file
@ -0,0 +1,213 @@
|
||||
compile insert ps_HTTPServer_Equates
|
||||
/*
|
||||
** Copyright (C) 2012-2021 Revelation Software Inc. All Rights Reserved **
|
||||
|
||||
Author : Wile C Coyote - Super Genius
|
||||
Date : January 2020
|
||||
Purpose : Constants for working with PS HTTPSERVER objects
|
||||
|
||||
|
||||
Comments
|
||||
========
|
||||
|
||||
|
||||
Amended Date Reason
|
||||
======= ==== ======
|
||||
Mr C 19 May 23 Corrected STARTUPMODE equates
|
||||
Mr C 31 Aug 22 Added "preserve-case" styles
|
||||
Mr C 26 Aug 22 Added STARTUPMODE support
|
||||
*/
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
#ifndef _PS_HTTPSERVER_EQUATES_
|
||||
#define _PS_HTTPSERVER_EQUATES_
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// HTTPSERVER's are basically derived STATIC controls so most STATIC
|
||||
// constants apply here as well
|
||||
$insert ps_Static_Equates
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// PS Style Equates
|
||||
equ PSS_HSV_MANUALSTART$ to 0x00000001 ; // STARTUPMODE property
|
||||
equ PSS_HSV_PRESERVECOOKIECASE$ to 0x00000002 ; // PRESERVECOOKIENAMECASE property
|
||||
equ PSS_HSV_PRESERVEHEADERCASE$ to 0x00000008 ; // PRESERVEHEADERNAMECASE property
|
||||
equ PSS_HSV_PRESERVEQUERYCASE$ to 0x00000010 ; // PRESERVEQUERYNAMECASE property
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// SYSREPOSWINS structure overrides
|
||||
equ POS_HSV_PORT$ to POS_TEXT_1$ ; // PORT property
|
||||
equ POS_HSV_CONNINFO$ to POS_TEXT_2$ ; // TIMEOUT/IPVERSION/MAXCONN
|
||||
equ POS_HSV_IPWHITELIST$ to POS_TEXT_3$ ; // IPWHITELIST property
|
||||
|
||||
// SYSREPOSWINEXES structure overrides
|
||||
equ PSPOS_HSV_PORT$ to PSPOS_TEXT_1$ ; // PORT property
|
||||
equ PSPOS_HSV_CONNINFO$ to PSPOS_TEXT_2$ ; // TIMEOUT/IPVERSION/MAXCONN
|
||||
equ PSPOS_HSV_IPWHITELIST$ to PSPOS_TEXT_3$ ; // IPWHITELIST property
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ConnInfo field (POS_HCL_CONNINFO$, PSPOS_HCL_CONNINFO$)
|
||||
//
|
||||
// <0,0,1> ConnectionTimeout
|
||||
// <0,0,2> IpVersion
|
||||
// <0,0,3> MaxConnections
|
||||
equ PS_HSV_CI_POS_TIMEOUT$ to 1
|
||||
equ PS_HSV_CI_POS_IPVERSION$ to 2
|
||||
equ PS_HSV_CI_POS_MAXCONN$ to 3
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// CONNECTIONTIMEOUT property (in seconds)
|
||||
equ PS_HSV_DFLT_TIMEOUT$ to 0 ; // Infinity (but not beyond)
|
||||
equ PS_HSV_MIN_TIMEOUT$ to 0 ; // Infinity
|
||||
equ PS_HSV_MAX_TIMEOUT$ to ( 60 * 60 ) ; // 1 hour
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// IPVERSION property
|
||||
equ PS_HSV_IPVERSION_IP4$ to 0
|
||||
equ PS_HSV_IPVERSION_IP6$ to 1
|
||||
equ PS_HSV_IPVERSION_DUALSTACK$ to 2
|
||||
|
||||
equ PS_HSV_DFLT_IPVERSION$ to PS_HSV_IPVERSION_IP4$
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// MAXCONNECTIONS property
|
||||
equ PS_HSV_DFLT_MAXCONN$ to 60; // (FD_SETSIZE - 4); ==> 60
|
||||
equ PS_HSV_MIN_MAXCONN$ to 1 ; // Don't do this :)
|
||||
equ PS_HSV_MAX_MAXCONN$ to PS_HSV_DFLT_MAXCONN$
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// STARTUPMODE property
|
||||
equ HSV_STARTMODE_AUTO$ to 0
|
||||
equ HSV_STARTMODE_MANUAL$ to 1
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// HTTPREQUEST event (requestID, requestHeaders)
|
||||
//
|
||||
// requestID : ID of the request that triggered the event. This ID
|
||||
// : must be used with the methods that set response
|
||||
// : content.
|
||||
// :
|
||||
// requestHeaders : @fm'd list of request header information. This is
|
||||
// : loosely based on the same struct as for an OECGI
|
||||
// : request (see INET_EQUATES), but with a few
|
||||
// : differences
|
||||
//
|
||||
// -------------------------------------------------------------------------
|
||||
// requestHeaders array structure:
|
||||
//
|
||||
// <1> QueryString - Not used (see QueryNames and QueryValues)
|
||||
// <2> PathInfo - Path info from URL (See below)
|
||||
// <3> ContentType - "Content-Type" header
|
||||
// <4> ContentLength - "Content-Length" header
|
||||
// <5> GatewayInterface - CGI version
|
||||
// <6> HTTPS - "on" if called through a secure port
|
||||
// <7> HTTPAccept - "Accept" Header
|
||||
// <8> HTTPCookie - "Cookie" Header
|
||||
// <9> HTTPFrom - "From" Header
|
||||
// <10> HTTPReferrer - "Referer" Header
|
||||
// <11> HTTPUserAgent - "User-Agent" Header
|
||||
// <12> PathTranslated - Resolved "OS path" of the request
|
||||
// <13> RemoteAddr - Client IP Address (decimal-dot)
|
||||
// <14> RemoteHost - Client IP Address (decimal-dot)
|
||||
// <15> RemoteIdent - Not used (we don't do a lookup)
|
||||
// <16> RemoteUser - Client Username
|
||||
// <17> RequestMethod - Request Method (GET,POST etc)
|
||||
// <18> ScriptName - Script portion of URL (See Below)
|
||||
// <19> ServerName - Fully Qualified domain name (e.g. www.cgi101.com) - "Host" header
|
||||
// <20> ServerPort - TCPIP Port server is listening on
|
||||
// <21> ServerProtocol - HTTP version
|
||||
// <22> ServerSoftware - Server software string
|
||||
// <23> ServerURL - URL
|
||||
// <24> <reserved> - Reserved for INET_EQUATES compatibility
|
||||
// <25> <reserved> - Reserved for INET_EQUATES compatibility
|
||||
// <26> <reserved> - Reserved for INET_EQUATES compatibility
|
||||
// <27> <reserved> - Reserved for INET_EQUATES compatibility
|
||||
// <28> <reserved> - Reserved for INET_EQUATES compatibility
|
||||
// <29> <reserved> - Reserved for INET_EQUATES compatibility
|
||||
// <30> <reserved> - Reserved for INET_EQUATES compatibility
|
||||
// <31> <reserved> - Reserved for INET_EQUATES compatibility
|
||||
// <32> <reserved> - Reserved for INET_EQUATES compatibility
|
||||
// <33> <reserved> - Reserved for INET_EQUATES compatibility
|
||||
// <34> <reserved> - Reserved for INET_EQUATES compatibility
|
||||
// <35> HeaderNames - @vm delimited list of all Header names
|
||||
// <36> HeaderValues - @vm delimited list of all Header values
|
||||
// <37> QueryNames - @vm delimited list of all Query names
|
||||
// <38> QueryValues - @vm delimited list of all Query values
|
||||
// <39> CookieNames - @vm delimited list of all Cookie names
|
||||
// <40> CookieValues - @vm delimited list of all Cookie values
|
||||
//
|
||||
// Parsing the URL:
|
||||
//
|
||||
// http://www.TSite.com/art/gallery.cgi/mammals?animal=dog&color=black
|
||||
//
|
||||
// HOST : www.TSite.com (+ port if it's there)
|
||||
// SCRIPT_NAME : /art/gallery.cgi
|
||||
// PATH_INFO : /mammals
|
||||
// PATH_TRANSLATED : <revboot>\art\gallery.cgi
|
||||
// QUERY : animal=dog&color=black
|
||||
//
|
||||
// http://domain.tld/mydir/some_cgi_script.pl
|
||||
//
|
||||
// HOST : domain.tld
|
||||
// SCRIPT_NAME : /mydir/some_cgi_script.pl
|
||||
// PATH_INFO : /mydir/some_cgi_script.pl
|
||||
// PATH_TRANSLATED : <revboot>\mydir\some_cgi_script.pl
|
||||
// QUERY : ""
|
||||
//
|
||||
// The problem we have with this is that a "normal" web-server can
|
||||
// identify the script from the URL because it knows how to map ".pl",
|
||||
// ".exe" and ".dll" files etc, so it can work out where the path
|
||||
// info starts. We can't really do that - so we assume that the path
|
||||
// info is the last part of the URL, and the script name is everything
|
||||
// before that.
|
||||
|
||||
equ PS_HSVR_REQHDR_UNUSED$ to 1
|
||||
equ PS_HSVR_REQHDR_PATHINFO$ to 2
|
||||
equ PS_HSVR_REQHDR_CONTENTTYPE$ to 3
|
||||
equ PS_HSVR_REQHDR_CONTENTLEN$ to 4
|
||||
equ PS_HSVR_REQHDR_GATEWAYINTERFACE$ to 5
|
||||
equ PS_HSVR_REQHDR_HTTPS$ to 6
|
||||
equ PS_HSVR_REQHDR_HTTPACCEPT$ to 7
|
||||
equ PS_HSVR_REQHDR_HTTPCOOKIE$ to 8
|
||||
equ PS_HSVR_REQHDR_HTTPFROM$ to 9
|
||||
equ PS_HSVR_REQHDR_HTTPREFERRER$ to 10
|
||||
equ PS_HSVR_REQHDR_HTTPUSERAGENT$ to 11
|
||||
equ PS_HSVR_REQHDR_PATHTRANSLATED$ to 12
|
||||
equ PS_HSVR_REQHDR_REMOTEADDR$ to 13
|
||||
equ PS_HSVR_REQHDR_REMOTEHOST$ to 14
|
||||
equ PS_HSVR_REQHDR_REMOTEIDENT$ to 15
|
||||
equ PS_HSVR_REQHDR_REMOTEUSER$ to 16
|
||||
equ PS_HSVR_REQHDR_REQUESTMETHOD$ to 17
|
||||
equ PS_HSVR_REQHDR_SCRIPTNAME$ to 18
|
||||
equ PS_HSVR_REQHDR_SERVERNAME$ to 19
|
||||
equ PS_HSVR_REQHDR_SERVERPORT$ to 20
|
||||
equ PS_HSVR_REQHDR_SERVERPROTOCOL$ to 21
|
||||
equ PS_HSVR_REQHDR_SERVERSOFTWARE$ to 22
|
||||
equ PS_HSVR_REQHDR_SERVERURL$ to 23
|
||||
|
||||
// Fields 24-34 reserved for INET_EQUATES compatibility
|
||||
|
||||
equ PS_HSVR_REQHDR_HEADERNAMES$ to 35 ; // Headers AMV
|
||||
equ PS_HSVR_REQHDR_HEADERVALUES$ to 36 ; // Headers AMV
|
||||
equ PS_HSVR_REQHDR_QUERYNAMES$ to 37 ; // Query AMV
|
||||
equ PS_HSVR_REQHDR_QUERYVALUES$ to 38 ; // Query AMV
|
||||
equ PS_HSVR_REQHDR_COOKIENAMES$ to 39 ; // Cookies AMV
|
||||
equ PS_HSVR_REQHDR_COOKIEVALUES$ to 40 ; // Cookies AMV
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
#endif
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
Reference in New Issue
Block a user