Functions

i4httools.h File Reference

Miscellaneous routines for building an HTTP server. More...

#include <stdio.h>

Go to the source code of this file.

Functions

int checkPath (const char relPath[])
 Checks if a relative path leaves the root directory.
void httpOK (FILE *client)
 Outputs an "OK" HTTP response to a stream.
void httpMovedPermanently (FILE *client, const char newRelPath[])
 Outputs a "moved permanently" HTTP response and error page to a stream.
void httpBadRequest (FILE *client, const char request[])
 Outputs a "bad request" HTTP response and error page to a stream.
void httpForbidden (FILE *client, const char fullPath[], const char relPath[])
 Outputs a "forbidden" HTTP response and error page to a stream.
void httpNotFound (FILE *client, const char fullPath[], const char relPath[])
 Outputs a "not found" HTTP response and error page to a stream.
void httpInternalServerError (FILE *client, const char fullPath[], const char relPath[])
 Outputs an "internal server error" HTTP response and error page to a stream.

Detailed Description

Miscellaneous routines for building an HTTP server.

This module contains some routines that are useful for implementing a web server.


Function Documentation

int checkPath ( const char  relPath[]  ) 

Checks if a relative path leaves the root directory.

This routine checks if the relative path component of a request ascends the VFS beyond the root directory. Such requests should not be served.

Note:
This function stops processing as soon as the path ascends beyond the root of the web directory.
Parameters:
relPath Requested URL.
Returns:
Positive depth of the request relative to the web directory, or -1 if the relative URL ascends beyond the web directory.
void httpBadRequest ( FILE *  client,
const char  request[] 
)

Outputs a "bad request" HTTP response and error page to a stream.

This routine generates an "HTTP/1.0 400 Bad Request" status line and a corresponding HTML error page on the given stream, which should normally be the client connection.

Parameters:
client The output stream.
request Request string.
void httpForbidden ( FILE *  client,
const char  fullPath[],
const char  relPath[] 
)

Outputs a "forbidden" HTTP response and error page to a stream.

This routine generates an "HTTP/1.0 403 Forbidden" status line and a corresponding HTML error page on the given stream, which should normally be the client connection.

Parameters:
client The output stream.
fullPath Full local path of the requested file.
relPath Requested URL.
void httpInternalServerError ( FILE *  client,
const char  fullPath[],
const char  relPath[] 
)

Outputs an "internal server error" HTTP response and error page to a stream.

This routine generates an "HTTP/1.0 500 Internal Server Error" status line and a corresponding HTML error page on the given stream, which should normally be the client connection.

Parameters:
client The output stream.
fullPath Full local path of the requested file.
relPath Requested URL.
void httpMovedPermanently ( FILE *  client,
const char  newRelPath[] 
)

Outputs a "moved permanently" HTTP response and error page to a stream.

This routine generates a "moved permanently (301)" HTTP response on the given stream, which should normally be the client connection.

Parameters:
client The output stream.
newRelPath Path to which the request is redirected.
void httpNotFound ( FILE *  client,
const char  fullPath[],
const char  relPath[] 
)

Outputs a "not found" HTTP response and error page to a stream.

This routine generates an "HTTP/1.0 404 Not Found" status line and a corresponding HTML error page on the given stream, which should normally be the client connection.

Parameters:
client The output stream.
fullPath Full local path of the requested file.
relPath Requested URL.
void httpOK ( FILE *  client  ) 

Outputs an "OK" HTTP response to a stream.

This routine generates an "OK (200)" status line on the given stream, which should normally be the client connection.

Parameters:
client The output stream.
 All Files Functions Typedefs