Data Structures | |
struct | _AUTHINFO |
HTTP authorization information structure. More... | |
struct | _AUTHINFO |
HTTP authorization information structure. More... | |
struct | _CGIFUNCTION |
Registered CGI function. More... | |
struct | _CGIFUNCTION |
Registered CGI function. More... | |
struct | _REQUEST |
HTTP request information structure. More... | |
struct | _REQUEST |
HTTP request information structure. More... | |
Defines | |
#define | BUFSIZE 512 |
#define | MAX_ASP_FUNC_SIZE 64 |
#define | MAX_BUFFER_SIZE 256 |
#define | METHOD_GET 1 |
#define | METHOD_HEAD 3 |
#define | METHOD_POST 2 |
#define | MIN(a, b) (a<b?a:b) |
#define | SSI_TYPE_EXEC 0x03 |
#define | SSI_TYPE_FILE 0x01 |
#define | SSI_TYPE_VIRTUAL 0x02 |
Typedefs | |
typedef typedef__END_DECLS struct _AUTHINFO | AUTHINFO |
typedef typedef__END_DECLS struct _CGIFUNCTION | CGIFUNCTION |
typedef _REQUEST | REQUEST |
Enumerations | |
enum | { ASP_STATE_IDLE = 0, ASP_STATE_START, ASP_STATE_COPY_FUNC } |
Functions | |
void | NutCgiProcessRequest (FILE *stream, REQUEST *req) |
Process an incoming CGI request. | |
void | NutClearAuth (void) |
Clear all authorization entries. | |
void * | NutGetMimeHandler (char *name) |
Return the mime type handler of a specified file name. | |
char * | NutGetMimeType (char *name) |
Return the mime type description of a specified file name. | |
__BEGIN_DECLS int | NutHttpAuthValidate (REQUEST *req) |
Validate an authorization request. | |
char * | NutHttpGetParameter (REQUEST *req, char *name) |
Gets a request parameter value by name. | |
int | NutHttpGetParameterCount (REQUEST *req) |
Gets the number of request parameters. | |
char * | NutHttpGetParameterName (REQUEST *req, int index) |
Gets the name of a request parameter. | |
char * | NutHttpGetParameterValue (REQUEST *req, int index) |
Get the value of a request paramter. | |
void | NutHttpProcessAsp (FILE *stream, int fd, int file_len, char *http_root, REQUEST *req) |
void | NutHttpProcessPostQuery (FILE *stream, REQUEST *req) |
Parses the QueryString. | |
void | NutHttpProcessQueryString (REQUEST *req) |
Parses the QueryString. | |
__BEGIN_DECLS void | NutHttpProcessRequest (FILE *stream) |
Process the next HTTP request. | |
void | NutHttpSendError (FILE *stream, REQUEST *req, int status) |
Send a HTTP error response. | |
void | NutHttpSendHeaderBot (FILE *stream, char *mime_type, long bytes) |
Send bottom lines of a standard HTML header. | |
void | NutHttpSendHeaderTop (FILE *stream, REQUEST *req, int status, char *title) |
Send top lines of a standard HTML header. | |
void | NutHttpURLDecode (char *str) |
URLDecodes a string. | |
char * | NutHttpURLEncode (char *str) |
void | NutRegisterAsp (void) |
Register ASP handler for asp files. | |
int | NutRegisterAspCallback (int(*func)(char *, FILE *)) |
int | NutRegisterAuth (CONST char *dirname, CONST char *login) |
Register an authorization entry. | |
int | NutRegisterCgi (char *name, int(*func)(FILE *, REQUEST *)) |
Register a CGI function. | |
int | NutRegisterHttpRoot (char *path) |
Register the HTTP server's root directory. | |
__BEGIN_DECLS void | NutRegisterSsi (void) |
Register SSI handler for shtml files. | |
u_char | NutSetMimeHandler (char *extension, void(*handler)(FILE *stream, int fd, int file_len, char *http_root, REQUEST *req)) |
Set the mime type handler for a specified file extension. | |
Variables | |
AUTHINFO * | authList = 0 |
CGIFUNCTION *volatile | cgiFunctionList = 0 |
CONFNET | confnet |
Global network configuration structure. |
Process an incoming CGI request.
Applications do not need to call this function. It is automatically called by NutHttpProcessRequest().
stream | Stream of the socket connection, previously opened for binary read and write. | |
req | Contains the HTTP request. |
void NutClearAuth | ( | void | ) |
Clear all authorization entries.
Clears all authorization entries and frees the used ressouces.
void * NutGetMimeHandler | ( | char * | name | ) |
Return the mime type handler of a specified file name.
This is the function that handles / sends a specific file type to the client. Escpecialy used for server side includes (shtml files)
name | Name of the file. |
char * NutGetMimeType | ( | char * | name | ) |
Return the mime type description of a specified file name.
The mime type returned is based on the file extension.
name | Name of the file. |
int NutHttpAuthValidate | ( | REQUEST * | req | ) |
Validate an authorization request.
req | Request to be checked. |
char* NutHttpGetParameter | ( | REQUEST * | req, | |
char * | name | |||
) |
Gets a request parameter value by name.
req | Request object | |
name | Name of parameter |
int NutHttpGetParameterCount | ( | REQUEST * | req | ) |
Gets the number of request parameters.
req | Request object |
char* NutHttpGetParameterName | ( | REQUEST * | req, | |
int | index | |||
) |
Gets the name of a request parameter.
req | Request object | |
index | Index of the requested parameter. |
char* NutHttpGetParameterValue | ( | REQUEST * | req, | |
int | index | |||
) |
Get the value of a request paramter.
req | Request object | |
index | Index to the requested parameter. |
Parses the QueryString.
Reads the query from input stream and parses it into name/value table. To save RAM, this method allocated ram and uses req_query to store the input data. Then it creates a table of pointers into the req_query buffer.
stream | Input stream | |
req | Request object to parse |
void NutHttpProcessQueryString | ( | REQUEST * | req | ) |
Parses the QueryString.
Reads the QueryString from a request, and parses it into name/value table. To save RAM, this method overwrites the contents of req_query, and creates a table of pointers into the req_query buffer.
req | Request object to parse |
void NutHttpProcessRequest | ( | FILE * | stream | ) |
Process the next HTTP request.
Waits for the next HTTP request on an established connection and processes it.
stream | Stream of the socket connection, previously opened for binary read and write. |
Send a HTTP error response.
A canned error file is used.
stream | Stream of the socket connection, previously opened for binary read and write. | |
req | Contains the HTTP request. | |
status | Error code to be returned. |
void NutHttpSendHeaderBot | ( | FILE * | stream, | |
char * | mime_type, | |||
long | bytes | |||
) |
Send bottom lines of a standard HTML header.
Sends Content-Type, Content-Lenght and Connection lines.
stream | Stream of the socket connection, previously opened for binary read and write. | |
mime_type | Points to a string that specifies the content type. Examples are "text/html", "image/png", "image/gif", "video/mpeg" or "text/css". A null pointer is ignored. | |
bytes | Content length of the data following this header. Ignored, if negative. |
Send top lines of a standard HTML header.
Sends HTTP and Server version lines.
stream | Stream of the socket connection, previously opened for binary read and write. | |
req | The associated client request. | |
status | Response status, error code or 200, if no error occured. | |
title | Error text, or OK, if no error occured. |
void NutHttpURLDecode | ( | char * | str | ) |
URLDecodes a string.
Takes a url-encoded string and decodes it.
str | String to decode. This is overwritten with the decoded string |
void NutRegisterAsp | ( | void | ) |
Register ASP handler for asp files.
asp files may use the following syntax:
<my_function%>
int NutRegisterAuth | ( | CONST char * | dirname, | |
CONST char * | login | |||
) |
Register an authorization entry.
Protect a specified directory from unauthorized access.
dirname | Name of the directory to protect. | |
login | Required login to access this directory. This string must contain a user name, followed by a colon followed by an uncrypted password. |
Register a CGI function.
name | Name of this CGI function. | |
func | The function to be called, if the client requests the specified name. |
int NutRegisterHttpRoot | ( | char * | path | ) |
Register the HTTP server's root directory.
Only one root directory is supported. Subsequent calls will override previous settings.
path | Pathname of the root directory. Must include the device name followed by a colon followed by a directory path followed by a trailing slash. |
void NutRegisterSsi | ( | void | ) |
Register SSI handler for shtml files.
shtml files may use the following ssi commands:
u_char NutSetMimeHandler | ( | char * | extension, | |
void(*)(FILE *stream, int fd, int file_len, char *http_root, REQUEST *req) | handler | |||
) |
Set the mime type handler for a specified file extension.
This is the function that handles / sends a specific file type to the client. Escpecialy used for server side includes (shtml files)
extension | Filename extension the handler should be registered for | |
handler | pointer to a function of the type void (u_char filename) |
CONFNET confnet |
Global network configuration structure.
Contains the current network configuration. Nut/Net will load this structure from non-volatile memory during initialization.