Rudiments

Classes | Public Member Functions | List of all members
httprequest Class Reference

Inherited by urlhttprequest.

## Classes
struct | parameterrequirement

## Public Member Functions
| httprequest (httpserverapi *sapi)
virtual void | dumpVariables ()
const char * | getEnvironmentVariable (const char *name)
uint64_t | getEnvironmentVariableCount ()
const char *const * | getEnvironmentVariables ()
const char *const * | getEnvironmentValues ()
bool | setEnvironmentVariable (const char *name, const char *value)
void | dumpEnvironment ()
const char * | getParameter (const char *name)
void | getParametersAsGetString (output *container, const char *const *exceptions)
void | getParametersAsHiddenVariables (output *container, const char *const *excepcions)
uint64_t | getParameterCount ()
const char *const * | getParameterVariables ()
const char *const * | getParameterValues ()
bool | setParameter (const char *name, const char *value)
const char * | getFileParameterFilename (const char *name)
const char * | getFileParameterTempFilename (const char *name)
const char * | getFileParameterMimeType (const char *name)
uint64_t | getFileCount ()
const char *const * | getFileNames ()
bool | setFileParameter (const char *name, const char *filename, const char *tempfilename, const char *mimetype)
void | removeTempFiles ()
const char * | getCookie (const char *name)
uint64_t | getCookieCount ()
const char *const * | getCookieVariables ()
const char *const * | getCookieValues ()
bool | setCookie (const char *name, const char *value)
uint64_t | getAllVariableCount ()
const char *const * | getAllVariables ()
const char *const * | getAllValues ()
virtual bool | methodAllowed (const char *deniedmethods, const char *allowedmethods)
virtual bool | ipAllowed (const char *deniedips, const char *allowedips)
virtual bool | refererAllowed (const char *deniedreferers, const char *allowedreferers)
bool | requiredParameters (parameterrequirement **pr)

## Detailed Description

The httprequest class provides methods for accessing components of the http request.

## Member Function Documentation

## ◆ dumpEnvironment()

void httprequest::dumpEnvironment | ( |  | ) |

Writes all environment variables to the browser. Similar to running "env" on the command line.

## ◆ dumpVariables()

virtual void httprequest::dumpVariables | ( |  | ) |
| virtual

Dumps all environment variables, parameters, file parameters, and cookies to the browser.

Reimplemented in urlhttprequest.

## ◆ getAllValues()

const char* const* httprequest::getAllValues | ( |  | ) |

Returns a null terminated list of the values corresponding to the variables returned from getAllVariables().

## ◆ getAllVariableCount()

uint64_t httprequest::getAllVariableCount | ( |  | ) |

Returns the total number of variables - environment, parameters, files, and cookies.

## ◆ getAllVariables()

const char* const* httprequest::getAllVariables | ( |  | ) |

Returns a null terminated list of all variables. The order of the list is the order the variables were received in.

## ◆ getCookie()

const char* httprequest::getCookie | ( | const char * | name | ) |

Returns the value of cookie "name".

## ◆ getCookieCount()

uint64_t httprequest::getCookieCount | ( |  | ) |

Returns the number of cookies collected.

## ◆ getCookieValues()

const char* const* httprequest::getCookieValues | ( |  | ) |

Returns a null terminated list of values corresponding to the variables returned from getCookieVariables().

## ◆ getCookieVariables()

const char* const* httprequest::getCookieVariables | ( |  | ) |

Returns a null terminated list of cookie variables. The order of the list is the order the variables were received in.

## ◆ getEnvironmentValues()

const char* const* httprequest::getEnvironmentValues | ( |  | ) |

Returns a null terminated list of environment variable values.

## ◆ getEnvironmentVariable()

const char* httprequest::getEnvironmentVariable | ( | const char * | name | ) |

Returns the value of the environment variable "name".

## ◆ getEnvironmentVariableCount()

uint64_t httprequest::getEnvironmentVariableCount | ( |  | ) |

Returns the number of environment variables.

## ◆ getEnvironmentVariables()

const char* const* httprequest::getEnvironmentVariables | ( |  | ) |

Returns a null terminated list of environment variables.

## ◆ getFileCount()

uint64_t httprequest::getFileCount | ( |  | ) |

Returns the number of posted files.

## ◆ getFileNames()

const char* const* httprequest::getFileNames | ( |  | ) |

Returns a null terminated list of file names. The order of the list is the order in which the file parameters were received.

## ◆ getFileParameterFilename()

const char* httprequest::getFileParameterFilename | ( | const char * | name | ) |

Returns the filename passed in from file parameter "name".

## ◆ getFileParameterMimeType()

const char* httprequest::getFileParameterMimeType | ( | const char * | name | ) |

Returns the mime type of the file parameter "name".

## ◆ getFileParameterTempFilename()

const char* httprequest::getFileParameterTempFilename | ( | const char * | name | ) |

Returns the filename of the local file created when file parameter "name" was passed in.

## ◆ getParameter()

const char* httprequest::getParameter | ( | const char * | name | ) |

Returns the value of parameter "name".

## ◆ getParameterCount()

uint64_t httprequest::getParameterCount | ( |  | ) |

Returns the number of parameters.

## ◆ getParametersAsGetString()

void httprequest::getParametersAsGetString | ( | output * | container,
|  | const char *const * | exceptions
| ) |  |

Returns all parameters formatted as an escaped get string into "container" with the exception of a NULL terminated list of exceptions. If "container" is NULL, the list is written to the browser.

## ◆ getParametersAsHiddenVariables()

void httprequest::getParametersAsHiddenVariables | ( | output * | container,
|  | const char *const * | excepcions
| ) |  |

Returns all parameters formatted as a list of hidden variables into "container" with the exception of a NULL terminated list of exceptions passed in after "container". If "container" is NULL, the list is written to the browser.

## ◆ getParameterValues()

const char* const* httprequest::getParameterValues | ( |  | ) |

Returns a null terminated list of values corresponding to the variables returned from getParameterVariables().

## ◆ getParameterVariables()

const char* const* httprequest::getParameterVariables | ( |  | ) |

Returns a null terminated list of parameter variables. The order of the list is the order the variables were received in.

## ◆ ipAllowed()

virtual bool httprequest::ipAllowed | ( | const char * | deniedips,
|  | const char * | allowedips
| ) |  |
| virtual

Matches the REMOTE_ADDR environment variable against "deniedips" and "allowedips" (in that order) using regular expression syntax to determine whether the client's IP address is allowed to access this application.

This method may be overriden to provide customized ip-based security.

## ◆ methodAllowed()

virtual bool httprequest::methodAllowed | ( | const char * | deniedmethods,
|  | const char * | allowedmethods
| ) |  |
| virtual

Matches the REQUEST_METHOD environment variable against "deniedmethods" and "allowedmethods" (in that order) using regular expression syntax to determine whether the client's IP address is allowed to access this application.

This method may be overriden to provide customized ip-based security.

## ◆ refererAllowed()

virtual bool httprequest::refererAllowed | ( | const char * | deniedreferers,
|  | const char * | allowedreferers
| ) |  |
| virtual

Matches the HTTP_REFERER environment variable against "deniedreferers" and "allowedreferers" (in that order) using regular expression syntax to determine whether the client's IP address is allowed to access this application.

This method may be overriden to provide customized referer-based security.

## ◆ removeTempFiles()

void httprequest::removeTempFiles | ( |  | ) |

Removes all temporary files that were created when parsing the request.

## ◆ requiredParameters()

bool httprequest::requiredParameters | ( | parameterrequirement ** | pr | ) |

Reads through the NULL terminated list of parameter requirements. Returns true if the parameters meet the requirements and false if they did not.

Each parameterrequirement contains a parameter variable name and a boolean value indicating whether that variable can be empty or not.

For example. The following call requires that "first", "last", "address", "city", "state" and "phone" be present but allows "address", "city" and "state" to be blank.

parameterrequirement *pr[]={{"first",false}, {"last",false}, {"address",true}, {"city",true}, {"state",true}, {"phone",false}, NULL}; success=requiredParameters(pr);

## ◆ setCookie()

bool httprequest::setCookie | ( | const char * | name,
|  | const char * | value
| ) |  |

Creates a new cookie with name "name" and value "value" or updates an existing cookie "name" to have value "value".

## ◆ setEnvironmentVariable()

bool httprequest::setEnvironmentVariable | ( | const char * | name,
|  | const char * | value
| ) |  |

Creates a new environment variable with name "name" and value "value" or updates an existing environment variable "name" to have value "value".

## ◆ setFileParameter()

bool httprequest::setFileParameter | ( | const char * | name,
|  | const char * | filename,
|  | const char * | tempfilename,
|  | const char * | mimetype
| ) |  |

Updates file parameter with name "name", to filename "filename", temporary filename "tempfilename" and mime-type "mimetype". If the file parameter doesn't already exist, then no action is taken.

## ◆ setParameter()

bool httprequest::setParameter | ( | const char * | name,
|  | const char * | value
| ) |  |

Creates a new parameter with name "name" and value "value" or updates an existing parameter "name" to have value "value".