HttpServer
Used by to filter out unwanted connections.
Initializes a new instance of the class.
The socket.
Gets or sets if socket can be accepted.
Gets socket.
A request have been received.
Initializes a new instance of the class.
context that received the request.
Received request.
Response to send.
Gets context that received the request.
Do not forget to set to true if you are sending
back a response manually through .
Gets or sets if the request have been handled.
The library will not attempt to send the response object
back to the client if this property is set to true.
Gets request object.
Gets response object.
Cookies that should be set.
Adds a cookie in the collection.
cookie to add
cookie is null
Name and Content must be specified.
Copy a request cookie
When the cookie should expire
Remove all cookies
Gets a collection enumerator on the cookie list.
collection enumerator
Returns an enumerator that iterates through the collection.
A that can be used to iterate through the collection.
1
Gets the count of cookies in the collection.
Gets the cookie of a given identifier.
Cookie if found; otherwise null.
An exception that can't be handled by the library have been thrown.
Initializes a new instance of the class.
The exception.
Gets caught exception.
Data decoded from a POST body.
Initializes a new instance of the class.
Gets or sets decoded files.
Gets or sets decoded parameters.
Stores sessions in files.
All session parameters must be serializable.
Stores sessions in your favorite store
Saves the specified session.
The session.
Touches the specified session
Session id.
Used to prevent sessions from expiring.
Loads a session
Session id.
Session if found; otherwise null.
Delete a session
Id of session
Saves the specified session.
The session.
Touches the specified session
Session id.
Used to prevent sessions from expiring.
Loads a session
Session id.
Session if found; otherwise null.
HTTP methods.
Unknown method
Posting data
Get data
Update data
Remove data
Get only HTTP headers.
Options HTTP 1.1 header.
Http listener.
Http listener
Start listener.
Number of pending accepts.
Make sure that you are subscribing on first.
Listener have already been started.
Failed to start socket.
Invalid port number.
Stop listener.
Gets listener address.
Gets if listener is secure.
Gets if listener have been started.
Gets or sets logger.
Gets listening port.
Gets the maximum content size.
The content length limit.
Used when responding to 100-continue.
A new request have been received.
Can be used to reject certain clients.
A HTTP exception have been thrown.
Fill the body with a user friendly error page, or redirect to somewhere else.
Initializes a new instance of the class.
The address.
The port.
Initializes a new instance of the class.
The address.
The port.
The HTTP factory.
Creates a new instance with default factories.
Address that the listener should accept connections on.
Port that listener should accept connections on.
Created HTTP listener.
Creates a new instance with default factories.
Address that the listener should accept connections on.
Port that listener should accept connections on.
Factory used to create different types in the framework.
Created HTTP listener.
Creates a new instance with default factories.
Address that the listener should accept connections on.
Port that listener should accept connections on.
Certificate to use
Created HTTP listener.
Create a new context
Accepted socket
A new context.
Throwing exception if in debug mode and not exception handler have been specified.
Start listener.
Number of pending accepts.
Make sure that you are subscribing on first.
Listener have already been started.
Failed to start socket.
Invalid port number.
Stop listener.
Gets HTTP factory used to create types used by this HTTP library.
Gets or sets the maximum number of bytes that the request body can contain.
The content length limit.
Used when responding to 100-continue.
0 = turned off.
Gets listener address.
Gets if listener is secure.
Gets if listener have been started.
Gets or sets logger.
Gets listening port.
A new request have been received.
Can be used to reject certain clients.
A HTTP exception have been thrown.
Fill the body with a user friendly error page, or redirect to somewhere else.
Client asks if he may continue.
If the body is too large or anything like that you should respond .
Contents of a cookie header.
Header in a message
Important! Each header should override ToString()
and return it's data correctly formatted as a HTTP header value.
Gets header name
Gets value as it would be sent back to client.
Initializes a new instance of the class.
The collection.
collection is null.
Gets cookie collection
Gets header name
Gets value as it would be sent back to client.
Request couldn't be parsed successfully.
Exception thrown from HTTP server.
Initializes a new instance of the class.
HTTP status code.
Exception description.
Initializes a new instance of the class.
HTTP status code.
Exception description.
Inner exception.
Gets HTTP status code.
Initializes a new instance of the class.
Exception description.
Initializes a new instance of the class.
Exception description.
Exception description.
Something failed during parsing.
Initializes a new instance of the class.
Exception description.
Initializes a new instance of the class.
Exception description.
Inner exception.
Used to parse header values
Parse a header
Name of header.
Reader containing value.
HTTP Header
Header value is not of the expected format.
Collection of body decoders.
Body decoders are used to parse request body and convert it
into a and a .
Add another body decoder.
Decode body stream
Stream containing the content
Content type header
Stream encoding
Decoded data.
Body format is invalid for the specified content type.
Something unexpected failed.
Returns an enumerator that iterates through the collection.
A that can be used to iterate through the collection.
1
Returns an enumerator that iterates through a collection.
An object that can be used to iterate through the collection.
2
Gets number of decoders.
Custom network stream to mark sockets as reusable when disposing the stream.
Creates a new instance of the class for the specified .
The that the will use to send and receive data.
The parameter is null.
The parameter is not connected.
-or-
The property of the parameter is not .
-or-
The parameter is in a nonblocking state.
Initializes a new instance of the class for the specified with the specified ownership.
The that the will use to send and receive data.
Set to true to indicate that the will take ownership of the ; otherwise, false.
The parameter is null.
The parameter is not connected.
-or-
the value of the property of the parameter is not .
-or-
the parameter is in a nonblocking state.
Creates a new instance of the class for the specified with the specified access rights.
The that the will use to send and receive data.
A bitwise combination of the values that specify the type of access given to the over the provided .
The parameter is null.
The parameter is not connected.
-or-
the property of the parameter is not .
-or-
the parameter is in a nonblocking state.
Creates a new instance of the class for the specified with the specified access rights and the specified ownership.
The that the will use to send and receive data.
A bitwise combination of the values that specifies the type of access given to the over the provided .
Set to true to indicate that the will take ownership of the ; otherwise, false.
The parameter is null.
The parameter is not connected.
-or-
The property of the parameter is not .
-or-
The parameter is in a nonblocking state.
Closes the current stream and releases any resources (such as sockets and file handles) associated with the current stream.
Releases the unmanaged resources used by the and optionally releases the managed resources.
true to release both managed and unmanaged resources; false to release only unmanaged resources.
Parses query string
Parse a query string
string to parse
A collection
reader is null.
Parse a query string
string to parse
A collection
queryString is null.
Convention over configuration server.
Used to make it easy to create and use a web server.
All resources must exist in the "YourProject.Content" namespace (or a subdirectory called "Content" relative to yourapp.exe).
Http server.
Initializes a new instance of the class.
Factory used to create objects used in this library.
Initializes a new instance of the class.
Add a decoder.
decoder to add
Adding zero decoders will make the server add the
default ones which is and .
Add a new router.
Router to add
Server have been started.
Add a file module
Module to add
module is null.
Cannot add modules when server have been started.
Add a HTTP listener.
Listener have been started.
An error have occurred and we need to send a result pack to the client
The context.
The exception.
Invoke base class () to send the contents
of .
Called before anything else.
The context.
Looks after a in the request and will
use the if found.
All server modules are about to be invoked.
The context.
Called when routers have been invoked but no modules yet.
A request have arrived but not yet been processed yet.
The context.
Default implementation adds a Date header and Server header.
Go through all modules and check if any of them can handle the current request.
Process result (check if it should be sent back or not)
true if request was processed properly.; otherwise false.
Processes all routers.
Request context.
Processing result.
Requests authentication from the user.
Host/domain name that the server hosts.
Used when calculating hashes in Digest authentication.
Send a response.
Start http server.
Number of pending connections.
Stops the server
true if all modules should be removed.
Gets the authentication provider.
A authentication provider is used to keep track of all authentication types
that can be used.
Gets or sets number of bytes that a body can be.
Used to determine the answer to a 100-continue request.
0 = turned off.
Gets current server.
Only valid when a request have been received and is being processed.
Gets or sets the maximum size of request body (in bytes)
Gets or sets server name.
Used in the "Server" header when serving requests.
Invoked just before a response is sent back to the client.
Invoked *after* the web server has tried to handled the request.
The event can be used to handle the request after all routes and modules
have tried to process the request.
Invoked *before* the web server has tried to handled the request.
Event can be used to load a session from a cookie or to force
authentication or anything other you might need t do before a request
is handled.
An error page have been requested.
Initializes a new instance of the class.
Used to build headers.
Add a parser
Header that the parser is for.
Parser implementation
Will replace any existing parser for the specified header.
Add all default (built-in) parsers.
Will not replace previously added parsers.
Create a header parser
implementation.
Uses attribute to find which headers
the parser is for.
Will not replace previously added parsers.
Parse a header.
Name of header
Header value
Header.
Value is not a well formatted header value.
Request sent to a HTTP server.
Base interface for request and response.
Add a new header.
Add a new header.
Header to add.
Gets body stream.
Size of the body. MUST be specified before sending the header,
unless property Chunked is set to true.
Kind of content in the body
Default is text/html
Gets or sets encoding
Gets headers.
Get a header
Type that it should be cast to
Name of header
Header if found and casted properly; otherwise null.
Gets or sets connection header.
Gets cookies.
Gets all uploaded files.
Gets form parameters.
Gets or sets HTTP version.
Gets if request is an Ajax request.
Gets or sets HTTP method.
Gets query string and form parameters
Gets query string.
Gets requested URI.
Load resources from disk.
Loads resources from a specific location (such as assembly, hard drive etc).
Checks if a resource exists in the specified directory
Uri path to resource
true if resource was found; otherwise false.
if (resources.Exists("/files/user/user.png"))
Debug.WriteLine("Resource exists.");
Find all views in a folder/path.
Absolute Uri path to files that should be found, can end with wild card.
Collection to add all view names to.
Gets a resource.
Uri path to resource.
Resource
Uri contains forbidden characters.
Resource resource = resources.Get("/files/user/user.png");
Default forbidden characters.
relative to absolute path mappings.
Initializes a new instance of the class.
Initializes a new instance of the class.
Request URI path
Disk path
File names should not be included in URI or path.
new FileResources("/files/user/", "C:\\intetpub\\files\users\\");
Add a new resource mapping.
Request URI path
Disk path
File names should not be included in URI or path.
resources.Add("/files/", "C:\\intetpub\\files\\");
absolutePath is not found.
check if source contains any of the chars.
string to check
Characters to fined
Go through all mappings and find requested Uri.
Uri to get local path for.
Path if found; otherwise null.
Checks if a resource exists in the specified directory
Uri path to resource
true if resource was found; otherwise false.
if (resources.Exists("/files/user/user.png"))
Debug.WriteLine("Resource exists.");
Gets a resource.
Uri path to resource.
Resource
Uri contains forbidden characters.
Resource resource = resources.Get("/files/user/user.png");
Find all views in a folder/path.
Absolute Uri path to files that should be found, can end with wild card.
Collection to add all view names to.
Uri contains forbidden characters.
Find("
Gets or sets forbidden characters.
Used to revoke access to any system files.
Gets or sets absolute path on disk, including file name.
Gets or sets relative file path.
Gets or sets Uri path, excluding file name
Used to send a response back to the client.
Writes a object into a stream.
Important! ResponseWriter do not throw any exceptions. Instead it just logs them and
let them die peacefully. This is since the response writer is used from
catch blocks here and there.
Sends response using the specified context.
The context.
The response.
Converts and sends a string.
Encoding used to transfer string
Send a body to the client
Context containing the stream to use.
Body to send
Send all headers to the client
Response containing call headers.
Content used to send headers.
Decodes body stream.
Decode body stream
Stream containing the content
Content type header
Stream encoding
Decoded data.
Body format is invalid for the specified content type.
Something unexpected failed.
All content types that the decoder can parse.
A collection of all content types that the decoder can handle.
Decodes forms that have multiple sections.
http://www.faqs.org/rfcs/rfc1867.html
form-data
multipart/form-data
Decode body stream
Stream containing the content
Content type header
Stream encoding
Decoded data.
Body format is invalid for the specified content type.
Something unexpected failed.
stream is null.
All content types that the decoder can parse.
A collection of all content types that the decoder can handle.
Provides sessions.
Type of session object
Will always use files for sessions (utilizing the binary formatter), but can
also cache them in memory.
If caching is enabled, it will only write sessions to disk every 20 seconds if they have
been accessed the last minute (to not keep writing dead sessions to disk).
Initializes a new instance of the class.
Session type must use [Serializable] attribute.
Create a new session.
Load session
Id of session.
Session if found; otherwise null.
sessionId is null.
Load session when a new request comes in.
Save a session to disk.
Session to write to disk.
You are responsible for writing sessions to disk if you are not using caching.
Start the session system and hook
Stop session handling
Gets or sets session cookie name
Gets or sets cache
Gets current session.
Gets or sets number of seconds before a session expired.
A session have expired if nothing have accessed it for X seconds. This
class modifies the write time each time it's accessed.
Determines if cookie should be set in the response.
Invoked when a session have been changed and should be written to disc.
First line in a response have been received
Gets or sets motivation to why the status code was used.
Gets or sets message status code
Gets or sets sip protocol version used.
A request have been parsed successfully by the server.
Initializes a new instance of the class.
Received request.
Gets received request.
Provider returning user to be authenticated.
Lookups the specified user
User name.
Typically web server domain name.
User if found; otherwise null.
User name can basically be anything. For instance name entered by user when using
basic or digest authentication, or SID when using Windows authentication.
Gets the principal to use.
Successfully authenticated user.
Invoked when a user have successfully been authenticated.
User information used during authentication process.
Gets or sets user name used during authentication.
Gets or sets unencrypted password.
Password as clear text. You could use instead if your passwords
are encrypted in the database.
Gets or sets HA1 hash.
Digest authentication requires clear text passwords to work. If you
do not have that, you can store a HA1 hash in your database (which is part of
the Digest authentication process).
A HA1 hash is simply a Md5 encoded string: "UserName:Realm:Password". The quotes should
not be included. Realm is the currently requested Host (as in Request.Headers["host"]).
Leave the string as null if you are not using HA1 hashes.
Used to get or set properties on objects.
This class should be a bit faster than the standard reflection.
Get cached type.
Type to get/set properties in
Type to use
Used to load/store sessions in the server.
Initializes a new instance of the class.
Web server that the provider is for..
Store to use.
Initializes a new instance of the class.
The server.
Uses a file store.
Loads a session for all requests that got the session cookie.
The sender.
The instance containing the event data.
Gets current session
Session if set, otherwise null.
Gets or sets the session life time in minutes.
The session life time.
A session have been loaded. Use to access it.
Secure version of the HTTP listener.
Initializes a new instance of the class.
Address to accept new connections on.
Port to accept connections on.
Certificate securing the connection.
Create a new context
Accepted socket
A new context.
Factory is assigned by the on each incoming request.
Gets if listener is secure.
Gets or sets SSL protocol.
Gets or sets if client certificate should be used.
Arguments used when more body bytes have come.
Initializes a new instance of the class.
buffer that contains the received bytes.
offset in buffer where to start processing.
number of bytes from that should be parsed.
buffer is null.
Initializes a new instance of the class.
Gets or sets buffer that contains the received bytes.
Gets or sets number of bytes from that should be parsed.
Gets or sets offset in buffer where to start processing.
HTTP Module
Process a request.
Request information
What to do next.
Something unexpected went wrong.
Initializes a new instance of the class.
Exception description.
Initializes a new instance of the class.
Exception description.
Inner exception.
File sent from remote end.
Gets or sets content type.
Gets or sets name in form.
Gets or sets name original file name
Gets or sets filename for locally stored file.
Parses Cookie header.
Parse a header
Name of header.
Reader containing value.
HTTP Header
Header value is not of the expected format.
Decodes URL encoded values.
Stream containing the content
Content type header
Stream encoding
Collection with all parameters.
Body format is invalid for the specified content type.
Failed to read all bytes from body stream.
All content types that the decoder can parse.
A collection of all content types that the decoder can handle.
Base class for sessions.
Your class must be tagged with attribute to be able to use sessions.
The session have been changed and should be written to disk.
Session have been changed.
Gets or sets when session was accessed last
Gets current session.
Gets or sets session id.
Gets or sets when the session was last written to disk.
Parses and builds messages
The message factory takes care of building messages
from all end points.
Since both message and packet protocols are used, the factory
hands out contexts to all end points. The context keeps a state
to be able to parse partial messages properly.
Each end point need to hand the context back to the message factory
when the client disconnects (or a message have been parsed).
Initializes a new instance of the class.
Factory used to create headers.
Create a new message factory context.
A new context.
A context is used to parse messages from a specific endpoint.
Release a used factory context.
A request have been received from one of the end points.
A response have been received from one of the end points.
Interface used to write to log files.
If you want to use the built in filtering mechanism, create a constructor
which takes one parameter, a .
Write an entry that helps when debugging code.
Log message
Write an entry that helps when debugging code.
Log message
Thrown exception to log.
Something went wrong, but the application do not need to die. The current thread/request
cannot continue as expected.
Log message
Something went wrong, but the application do not need to die. The current thread/request
cannot continue as expected.
Log message
Thrown exception to log.
Something went very wrong, application might not recover.
Log message
Something went very wrong, application might not recover.
Log message
Thrown exception to log.
Informational message, needed when helping customer to find a problem.
Log message
Informational message, needed when helping customer to find a problem.
Log message
Thrown exception to log.
Write a entry that helps when trying to find hard to find bugs.
Log message
Write a entry that helps when trying to find hard to find bugs.
Log message
Thrown exception to log.
Something is not as we expect, but the code can continue to run without any changes.
Log message
Something is not as we expect, but the code can continue to run without any changes.
Log message
Thrown exception to log.
cookie sent by the client/browser
Constructor.
cookie identifier
cookie content
id or content is null
id is empty
Gets the cookie HTML representation.
cookie string
Gets the cookie identifier.
Gets value.
Set to null to remove cookie.
Arguments for .
Initializes a new instance of the class.
The context.
Gets or sets thrown exception
Gets or sets if error page was provided.
Gets requested resource.
Gets response to send
Implements HTTP Digest authentication. It's more secure than Basic auth since password is
encrypted with a "key" from the server.
Keep in mind that the password is encrypted with MD5. Use a combination of SSL and digest auth to be secure.
Authenticates requests
Authenticate request
Authorization header send by web client
Realm to authenticate in, typically a domain name.
HTTP Verb used in the request.
User if authentication was successful; otherwise null.
Create a authentication challenge.
Realm that the user should authenticate in
A WWW-Authenticate header.
If realm is empty or null.
Gets authenticator scheme
digest
Initializes a new instance of the class.
Supplies users during authentication process.
Used by test classes to be able to use hardcoded values
An authentication response have been received from the web browser.
Check if it's correct
Contents from the Authorization header
Realm that should be authenticated
GET/POST/PUT/DELETE etc.
Authentication object that is stored for the request. A user class or something like that.
if authenticationHeader is invalid
If any of the parameters is empty or null.
Encrypts parameters into a Digest string
Realm that the user want to log into.
User logging in
Users password.
HTTP method.
Uri/domain that generated the login prompt.
Quality of Protection.
"Number used ONCE"
Hexadecimal request counter.
"Client Number used ONCE"
Digest encrypted string
Md5 hex encoded "userName:realm:password", without the quotes.
Md5 hex encoded "method:uri", without the quotes
Quality of Protection
"Number used ONCE"
Hexadecimal request counter.
Client number used once
Create a authentication challenge.
Realm that the user should authenticate in
A correct auth request.
If realm is empty or null.
Gets the current nonce.
Gets the Md5 hash bin hex2.
To be hashed.
determines if the nonce is valid or has expired.
nonce value (check wikipedia for info)
true if the nonce has not expired.
Gets authentication scheme name
Gets authenticator scheme
digest
Provides authentication in the web server.
To initiate authentication you just need to throw a Una
Add a authenticator.
Authenticate request.
Requires that a AuthorizationHeader have been sent by the client. If not,
request one by sending a WWW-Authentication header (can be generated by the Challenge method).
Authorization header was not found in the request.
Requested authentication scheme is not supported.
Create a challenge header (WWW-authenticate)
Response that the authentication header should be added to
Realm that the user should authenticate in
WWW-Authenticate header.
Scheme can currently be basic or digest. Basic is not very safe, but easier to use.
Digest is quite safe.
Requested scheme is not supported.
Creates a console logger.
Factory implementation used to create logs.
Create a new logger.
Type that requested a logger.
Logger for the specified type;
MUST ALWAYS return a logger. Return if no logging
should be used.
Initializes a new instance of the class.
The filter.
Create a new logger.
Type that requested a logger.
Logger for the specified type;
MUST ALWAYS return a logger. Return if no logging
should be used.
redirects from one URL to another.
Rules are used to perform operations before a request is being handled.
Rules can be used to create routing etc.
Process the incoming request.
Request context information.
Processing result.
If any parameter is null.
Initializes a new instance of the class.
Absolute path (no server name)
Absolute path (no server name)
server.Add(new RedirectRule("/", "/user/index"));
Initializes a new instance of the class.
Absolute path (no server name)
Absolute path (no server name)
true if request should be redirected, false if the request URI should be replaced.
server.Add(new RedirectRule("/", "/user/index"));
Process the incoming request.
Request context.
Processing result.
If any parameter is null.
Gets string to match request URI with.
Is compared to request.Uri.AbsolutePath
Gets whether the server should redirect the client instead of simply modifying the URI.
false means that the rule will replace
the current request URI with the new one from this class.
true means that a redirect response is sent to the client.
Gets where to redirect.
The Connection general-header field allows the sender to specify options
that are desired for that particular connection and MUST NOT be
communicated by proxies over further connections.
HTTP/1.1 proxies MUST parse the Connection header field before a
message is forwarded and, for each connection-token in this field,
remove any header field(s) from the message with the same name as the
connection-token. Connection options are signaled by the presence of
a connection-token in the Connection header field, not by any
corresponding additional header field(s), since the additional header
field may not be sent if there are no parameters associated with that
connection option.
Message headers listed in the Connection header MUST NOT include
end-to-end headers, such as Cache-Control.
HTTP/1.1 defines the "close" connection option for the sender to
signal that the connection will be closed after completion of the
response. For example,
Connection: close
in either the request or the response header fields indicates that
the connection SHOULD NOT be considered `persistent' (section 8.1)
after the current request/response is complete.
HTTP/1.1 applications that do not support persistent connections MUST
include the "close" connection option in every message.
A system receiving an HTTP/1.0 (or lower-version) message that
includes a Connection header MUST, for each connection-token in this
field, remove and ignore any header field(s) from the message with
the same name as the connection-token. This protects against mistaken
forwarding of such header fields by pre-HTTP/1.1 proxies. See section
19.6.2 in RFC2616.
Header name
Default connection header for HTTP/1.0
Default connection header for HTTP/1.1
Initializes a new instance of the class.
Connection type.
The parameters.
Initializes a new instance of the class.
The type.
Returns data formatted as a HTTP header value.
A that represents the current .
Gets connection parameters.
Gets or sets connection type
Gets header name
Type of HTTP connection
Connection is closed after each request-response
Connection is kept alive for X seconds (unless another request have been made)
Requests message-body be sent with an encoding to be specified in the "Transfer-Encoding" header.
Helper for content types.
Flyweight design pattern implementation.
Type of object.
Initializes a new instance of the class.
How large buffers to allocate.
Get an object.
Created object.
Will create one if queue is empty.
Enqueues the specified buffer.
Object to enqueue.
Buffer is is less than the minimum requirement.
Used to create new objects.
Type of objects to create.
Newly created object.
.
A HTTP parser using delegates to which parsing methods.
Initializes a new instance of the class.
Parser method to copy all body bytes.
Needed since a TCP packet can contain multiple messages
after each other, or partial messages.
Try to find a header name.
Get header values.
Will also look for multi header values and automatically merge them to one line.
Content length is not a number.
Toggle body bytes event.
Raise the event, since we have successfully parsed a message and it's body.
First message line.
Will always contain three elements.
Used to raise the or event
depending on the words in the array.
BadRequestException.
Continue parsing a message
Byte buffer containing bytes
Where to start the parsing
Number of bytes to parse
index where the parsing stopped.
Parsing failed.
Parses the first line in a request/response.
true if first line is well formatted; otherwise false.
Invalid request/response line.
Reset parser to initial state.
Gets or sets current line number.
The request line has been parsed.
Response line has been parsed.
Parsed a header.
Received body bytes.
A message have been successfully parsed.
Used to be able to quickly swap parser method.
Get or create components used in the web server framework
Get or create a type.
Type to create
Created type.
Gets or creates types in the framework.
Check for more information on which
types the factory should contain.
Used to create all key types in the HTTP server.
Should have factory methods at least for the following types:
, ,
, ,
, ,
, ,
.
Check the default implementations to see which constructor
parameters you will get.
HttpFactory.Add(typeof(IRequest), (type, args) => new MyRequest((string)args[0]));
Initializes a new instance of the class.
Add a factory method for a type.
Type to create
Method creating the type.
Used to
Setup our singleton.
We want to use a singleton, but we also want to be able
to let the developer to setup his own header factory.
Therefore we use this method to create our own factory only if the user
have not specified one.
Small method to create a message factory singleton and replace then default delegate method.
Create a type.
Type to create
Created type.
Gets http factory for the current listener.
Delegate used to create a certain type
Created type.
Method must never fail.
Used to define which headers a parse is for.
Initializes a new instance of the class.
Name of the header.
Gets name of header that this parser is for.
Parses "Date" header.
Parse a header
Name of header.
Reader containing value.
HTTP Header
Header value is not of the expected format.
Authorization response
A user agent that wishes to authenticate itself with a server--
usually, but not necessarily, after receiving a 401 response--does
so by including an Authorization request-header field with the
request. The Authorization field value consists of credentials
containing the authentication information of the user agent for
the realm of the resource being requested.
Authorization = "Authorization" ":" credentials
HTTP access authentication is described in "HTTP Authentication:
Basic and Digest Access Authentication" [43]. If a request is
authenticated and a realm specified, the same credentials SHOULD
be valid for all other requests within this realm (assuming that
the authentication scheme itself does not require otherwise, such
as credentials that vary according to a challenge value or using
synchronized clocks).
When a shared cache (see section 13.7) receives a request
containing an Authorization field, it MUST NOT return the
corresponding response as a reply to any other request, unless one
of the following specific exceptions holds:
-
If the response includes the "s-maxage" cache-control
directive, the cache MAY use that response in replying to a
subsequent request. But (if the specified maximum age has
passed) a proxy cache MUST first revalidate it with the origin
server, using the request-headers from the new request to allow
the origin server to authenticate the new request. (This is the
defined behavior for s-maxage.) If the response includes "s-
maxage=0", the proxy MUST always revalidate it before re-using
it.
-
If the response includes the "must-revalidate" cache-control
directive, the cache MAY use that response in replying to a
subsequent request. But if the response is stale, all caches
MUST first revalidate it with the origin server, using the
request-headers from the new request to allow the origin server
to authenticate the new request.
-
If the response includes the "public" cache-control directive,
it MAY be returned in reply to any subsequent request.
Name constant
Gets or sets authentication data.
Gets or sets authentication protocol.
Gets name of header.
User needs to authenticate.
Initializes a new instance of the class.
Exception description.
Initializes a new instance of the class.
Exception description.
Inner exception.
A response have been received.
Initializes a new instance of the class.
The response.
Gets or sets response.
Creates a single message for one of the end points.
The factory is
Initializes a new instance of the class.
The MSG factory.
The factory.
The parser.
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
2
Received a header from parser
Will continue the parsing until nothing more can be parsed.
buffer to parse
where to start in the buffer
number of bytes to process.
Position where parser stopped parsing.
Parsing failed.
Reset parser.
Something failed, reset parser so it can start on a new request.
A request have been successfully parsed.
A response have been successfully parsed.
Client asks if he may continue.
If the body is too large or anything like that you should respond .
Used to notify about 100-continue header.
Initializes a new instance of the class.
request that want to continue.
Gets request that want to continue
Default log filter implementation.
Determines which classes can log
Checks if the specified type can send
log entries at the specified level.
Log level
Type that want to write a log entry.
true if logging is allowed; otherwise false.
Add a name space filter.
Name space to add filter for.
Minimum log level required.
// Parsing can only add error and fatal messages
AddNamespace("SipSharp.Messages.Headers.Parsers", LogLevel.Error);
AddType(typeof(SipParser), LogLevel.Error);
// Transport layer can only log warnings, errors and fatal messages
AddNamespace("SipSharp.Transports.*", LogLevel.Warning);
Used to specify standard filter rules
Parser can only display errors. Transports only warnings.
Add filter for a type
Type to add filter for.
Minimum log level required.
// Parsing can only add error and fatal messages
AddNamespace("SipSharp.Messages.Headers.Parsers", LogLevel.Error);
AddType(typeof(SipParser), LogLevel.Error);
// Transport layer can only log warnings, errors and fatal messages
AddNamespace("SipSharp.Transports.*", LogLevel.Warning);
Add filter for a type
Type to add filter for.
Minimum log level required.
// Parsing can only add error and fatal messages
AddNamespace("SipSharp.Messages.Headers.Parsers", LogLevel.Error);
AddType("SipSharp.Messages.MessageFactory", LogLevel.Error);
// Transport layer can only log warnings, errors and fatal messages
AddNamespace("SipSharp.Transports.*", LogLevel.Warning);
Type could not be identified.
Checks if the specified type can send
log entries at the specified level.
Log level
Type that want to write a log entry.
true if logging is allowed; otherwise false.
No filters = everything logged. = no logs. Don't use a rule with '*' or '.*'
User have specified a wild card filter.
Wild card filters are used to log a name space and
all it's children name spaces.
Result of processing.
Continue with the next handler
No more handlers can process the request.
The server will process the response object and
generate a HTTP response from it.
Response have been sent back by the handler.
This option should only be used if you are streaming
something or sending back a custom result. The server will
not process the response object or send anything back
to the client.
Used to store all headers that that aren't recognized.
Initializes a new instance of the class.
The name.
The value.
Gets or sets value
Gets header name
Parses .
Parse a header
Name of header.
Reader containing value.
HTTP Header
Header value is not of the expected format.
Collection of parameters
Get a parameter.
Add a query string parameter.
Parameter name
Value
Checks if the specified parameter exists
Parameter name.
true if found; otherwise false;
Gets number of parameters.
Gets last value of an parameter.
Parameter name
String if found; otherwise null.
Parameter in
Gets *last* value.
Parameters can have multiple values. This property will always get the last value in the list.
String if any value exist; otherwise null.
Gets or sets name.
Gets a list of all values.
A parameter in .
Returns an enumerator that iterates through the collection.
A that can be used to iterate through the collection.
1
Returns an enumerator that iterates through a collection.
An object that can be used to iterate through the collection.
2
Gets last value.
Parameters can have multiple values. This property will always get the last value in the list.
String if any value exist; otherwise null.
Gets or sets name.
Gets a list of all values.
Used when the request line have been successfully parsed.
Initializes a new instance of the class.
The HTTP method.
The URI path.
The HTTP version.
Initializes a new instance of the class.
Gets or sets HTTP method.
Should be one of the methods declared in .
Gets or sets requested URI path.
Gets or sets the version of the SIP protocol that the client want to use.
Content-type
Header name.
Initializes a new instance of the class.
Type of the content.
Value parameters.
Initializes a new instance of the class.
Type of the content.
Returns data formatted as a HTTP header value.
A that represents the current .
Gets all parameters.
Gets content type.
Gets header name
Requested resource may not be accessed.
Normally thrown after an authentication attempt have failed too many times.
Initializes a new instance of the class.
Exception description.
Initializes a new instance of the class.
Exception description.
Inner exception.
Stream-based multipart handling.
In this incarnation deals with an HttpInputStream as we are now using
IntPtr-based streams instead of byte []. In the future, we will also
send uploads above a certain threshold into the disk (to implement
limit-less HttpInputFiles).
Taken from HttpRequest in mono (http://www.mono-project.com)
Client X.509 certificate, X.509 chain, and any SSL policy errors encountered
during the SSL stream creation
Initializes a new instance of the class.
The certificate.
Client security certificate chain.
Any SSL policy errors encountered during the SSL stream creation.
Client security certificate
Client security certificate chain
Any SSL policy errors encountered during the SSL stream creation
Credits and description: http://theinstructionlimit.com/?p=76
Converted to .Net 2.0
Session in the system
Gets or sets session id.
Factory creating null logger.
Initializes a new instance of the class.
Create a new logger.
Type that requested a logger.
Logger for the specified type;
MUST ALWAYS return a logger. Return if no logging
should be used.
Logger instance.
Provides resources.
Used to access resources.
Add a new resource loader.
Provider to add.
Manager have been started.
Check if a resource exists.
Uri to check
true if found; otherwise false.
if (manager.Exists("/views/user/view.haml"))
return true
Get a resource.
Uri path to resource.
Resource if found; otherwise null.
Resource resource = manager.Get("/views/user/view.haml");
Start manager.
Gets number of resource providers
Get all view names from a folder.
Path to find views in.
A collection of view names (without path).
Add a new resource loader.
Provider to add.
Manager have been started.
Start manager.
Check if a resource exists.
Uri to check
true if found; otherwise false.
if (manager.Exists("/views/user/view.haml"))
return true
Get a resource.
Uri path to resource.
Resource if found; otherwise null.
Resource resource = manager.Get("/views/user/view.haml");
Gets number of resource providers
Loads resources that are embedded in assemblies.
No locks used internally since all mappings are loaded during start up.
Initializes a new instance of the class.
Initializes a new instance of the class.
Path (Uri) requested by clients
Assembly that the resources exist in
Name space that the resources exist in
Add a specific resource.
Path (Uri) requested by clients
Assembly that the resources exist in
Name space to root folder under (all name spaces below the specified one are considered as folders)
Name space and name of resource.
Add("/", Assembly.GetExecutingAssembly(), "MyApplication.Files", "Myapplication.Files.Images.MyImage.png");
Add resources.
Path (Uri) requested by clients
Assembly that the resources exist in
Name of resource, including name space.
true if file was found (and has not previously been added); otherwise false.
Add resources in a specific path (will not work with sub folders)
Path (Uri) requested by clients
Assembly that the resources exist in
Name space to root folder under which all name spaces exists in,
true if any files was found; otherwise false.
Adds all views in the specified folder. Sub folders are not supported since it's hard to determine
with parts are the path and witch parts are the filename. Use to get support
for sub folders.
Add("/user/", typeof(MyController).Assembly, "YourProject.Users.Views");
Add resources in a folder and it's sub folder
This method is not going to map files but keep the mapping and
try to look up views every time they are requested. This is the method
to use to add a resource folder that has sub folders.
Tries to load file by using previously added paths.
Uri path including file name
Checks if a resource exists in the specified directory
Uri path to resource
true if resource was found; otherwise false.
if (resources.Exists("/files/user/user.png"))
Debug.WriteLine("Resource exists.");
Load a resource.
Uri of resource.
Resource if found and loaded; otherwise null.
Find all views in a folder/path.
Uri path
Collection to add all view names to.
Loads all files in a resource directory
Gets or sets assembly that the resource exists in.
Gets or sets resource name.
Gets or sets full name space path to resource.
Gets or sets if this file is for a certain content type.
Gets or sets full "virtual" Uri path, excluding file name.
Gets or sets assembly
Gets or sets name space root.
Gets or sets uri path.
A list of request cookies.
Let's copy all the cookies.
value from cookie header.
Initializes a new instance of the class.
Adds a cookie in the collection.
cookie to add
cookie is null
Name must be specified.
Remove all cookies.
Remove a cookie from the collection.
Name of cookie.
Gets a collection enumerator on the cookie list.
collection enumerator
Returns an enumerator that iterates through the collection.
A that can be used to iterate through the collection.
1
Gets the count of cookies in the collection.
Gets the cookie of a given identifier (null if not existing).
Collection of headers.
Collection of headers.
Gets a header
header name.
header if found; otherwise null.
Initializes a new instance of the class.
Factory used to created headers.
Adds a header
Will replace any existing header with the same name.
header to add
header is null.
Header name cannot be null.
Add a header.
Header name
Header value
Will try to parse the header and create a object.
Header value is not correctly formatted.
name or value is null.
Add a header.
Header name
Header value
Will try to parse the header and create a object.
name or value is null.
Get a header
Type that it should be cast to
Name of header
Header if found and casted properly; otherwise null.
Returns an enumerator that iterates through the collection.
A that can be used to iterate through the collection.
1
Returns an enumerator that iterates through a collection.
An object that can be used to iterate through the collection.
2
Gets a header
header name.
header if found; otherwise null.
Header for "Date" and "If-Modified-Since"
The field value is an HTTP-date, as described in section 3.3.1 in RFC2616;
it MUST be sent in RFC 1123 [8]-date format. An example is
Date: Tue, 15 Nov 1994 08:12:31 GMT
Origin servers MUST include a Date header field in all
responses, except in these cases:
- If the response status code is 100 (Continue) or 101 (Switching
Protocols), the response MAY include a Date header field, at the server's
option.
- If the response status code conveys a server error, e.g. 500
(Internal Server Error) or 503 (Service Unavailable), and it is inconvenient
or impossible to generate a valid Date.
- If the server does not have a clock that can provide a
reasonable approximation of the current time, its responses MUST NOT include
a Date header field. In this case, the rules in section 14.18.1 in RFC2616
MUST be followed.
A received message that does not have a Date header field MUST
be assigned one by the recipient if the message will be cached by that
recipient or gatewayed via a protocol which requires a Date. An HTTP
implementation without a clock MUST NOT cache responses without revalidating
them on every use. An HTTP cache, especially a shared cache, SHOULD use a
mechanism, such as NTP [28], to synchronize its clock with a reliable
external standard.
Clients SHOULD only send a Date header field in messages that
include an entity-body, as in the case of the PUT and POST requests, and
even then it is optional. A client without a clock MUST NOT send a Date
header field in a request.
The HTTP-date sent in a Date header SHOULD NOT represent a date
and time subsequent to the generation of the message. It SHOULD represent
the best available approximation of the date and time of message generation,
unless the implementation has no means of generating a reasonably accurate
date and time. In theory, the date ought to represent the moment just before
the entity is generated. In practice, the date can be generated at any time
during the message origination without affecting its semantic value.
Header name
Initializes a new instance of the class.
Header name.
Name must not be empty.
Initializes a new instance of the class.
Header name.
Universal time.
Returns data formatted as a HTTP header value.
A that represents the current .
Gets or sets date time.
Should be in UTC.
Gets header name
Type cached for fast property value modifications.
Get a property value.
Instance to get value from.
Name of property.
Property value.
Assign a value, try to convert it if it's not the same type as the property type.
Object containing the property
Name of property
Value to convert and assign
Failed to find property.
Could not convert value type to property type.
Assign value to a property
Object containing the property
Name of property
Value to assign, must be of the same type as the property.
Failed to find property.
Used to cache property information
Gets the property.
The name.
Failed to find property.
InvalidCastException.
Get a property value.
Instance to get value from.
Name of property.
Property value.
Assign a value, try to convert it if it's not the same type as the property type.
Object containing the property
Name of property
Value to convert and assign
Failed to find property.
Could not convert value type to property type.
Assign value to a property
Object containing the property
Name of property
Value to assign, must be of the same type as the property.
Failed to find property.
Gets or sets member info
Gets or sets member type
Base interface to read string tokens from different sources.
Assign a new buffer
Buffer to process.
Where to start process buffer
Buffer length
Assign a new buffer
Buffer to process
Consume current character.
Consume specified characters
One or more characters.
Consumes horizontal white spaces (space and tab).
Consume horizontal white spaces and the specified character.
Extra character to consume
Checks if one of the remaining bytes are a specified character.
Character to find.
true if found; otherwise false.
Read a character.
Character if not EOF; otherwise null.
Get a text line.
Will merge multiline headers.
Read quoted string
string if current character (in buffer) is a quote; otherwise null.
Read until end of string, or to one of the delimiters are found.
characters to stop at
A string (can be ).
Will not consume the delimiter.
Read until end of string, or to one of the delimiters are found.
A string (can be ).
Will not consume the delimiter.
Read to end of buffer, or until specified delimiter is found.
Delimiter to find.
A string (can be ).
Will not consume the delimiter.
Will read until specified delimiter is found.
Character to stop at.
A string if the delimiter was found; otherwise null.
Will trim away spaces and tabs from the end.
Will not consume the delimiter.
Read until one of the delimiters are found.
characters to stop at
A string if one of the delimiters was found; otherwise null.
Will trim away spaces and tabs from the end.
Will not consume the delimiter.
Read until a horizontal white space occurs.
A string if a white space was found; otherwise null.
Gets current character
if end of buffer.
Gets if end of buffer have been reached
Gets if more bytes can be processed.
Gets or sets current position in buffer.
THINK before you manually change the position since it can blow up
the whole parsing in your face.
Gets total length of buffer.
Gets or sets line number.
Gets next character
if end of buffer.
Gets number of bytes left.
Factory is used to create new logs in the system.
Assigns log factory being used.
The log factory.
A factory have already been assigned.
Create a new logger.
Type that requested a logger.
Logger for the specified type;
Component that should be registered in the container.
Register using all interfaces that is specified in this assembly.
Used to authenticate users
Authentication is requested by throwing
Request implementation.
Initializes a new instance of the class.
The method.
The path.
The version.
Get a header
Type that it should be cast to
Name of header
Header if found and casted properly; otherwise null.
Add a new header.
Add a new header.
Header to add.
Returns an enumerator that iterates through the collection.
A that can be used to iterate through the collection.
1
Returns an enumerator that iterates through a collection.
An object that can be used to iterate through the collection.
2
Gets a header.
Gets request URI.
Gets cookies.
Gets all uploaded files.
Gets query string and form parameters
Gets form parameters.
Gets query string.
Gets if request is an Ajax request.
Gets or sets connection header.
Gets or sets HTTP version.
Gets or sets HTTP method.
Gets requested URI.
Kind of content in the body
Default is text/html
Gets or sets encoding
Gets headers.
Gets body stream.
Size of the body. MUST be specified before sending the header,
unless property Chunked is set to true.
Any specifically assigned value or Body stream length.
Event arguments used when a new header have been parsed.
Initializes a new instance of the class.
Name of header.
Header value.
Name cannot be empty
value is null.
Initializes a new instance of the class.
Gets or sets header name.
Gets or sets header value.
Collection of parameters.
or is not used since each parameter can
have multiple values.
Initializes a new instance of the class.
Collections to merge.
Later collections will overwrite parameters from earlier collections.
Initializes a new instance of the class.
Get a list of string arrays.
Get parameters
Sub array (text array)
Returns an enumerator that iterates through the collection.
A that can be used to iterate through the collection.
1
Returns an enumerator that iterates through a collection.
An object that can be used to iterate through the collection.
2
Get a parameter.
Add a query string parameter.
Parameter name
Value
Checks if the specified parameter exists
Parameter name.
true if found; otherwise false;
Gets number of parameters.
Gets last value of an parameter.
Parameter name
String if found; otherwise null.
Parses .
Parse a header
Name of header.
Reader containing value.
HTTP Header
Header value is not of the expected format.
Parses numerical values
Parse a header
Name of header.
Reader containing value.
HTTP Header
Header value is not of the expected format.
Parses .
Parse a header
Name of header.
Reader containing value.
HTTP Header
Header value is not of the expected format.
Request couldn't be parsed successfully.
Initializes a new instance of the class.
Exception description.
Initializes a new instance of the class.
Exception description.
Exception description.
Implements basic authentication scheme.
Create a response that can be sent in the WWW-Authenticate header.
Realm that the user should authenticate in
Not used by basic authentication
A WWW-Authenticate header.
Argument is null.
An authentication response have been received from the web browser.
Check if it's correct
Authorization header
Realm that should be authenticated
GET/POST/PUT/DELETE etc.
Authentication object that is stored for the request. A user class or something like that.
if authenticationHeader is invalid
If any of the paramters is empty or null.
Gets authenticator scheme
digest
Reads strings from a byte array.
Initializes a new instance of the class.
Initializes a new instance of the class.
Encoding to use when converting byte array to strings.
Initializes a new instance of the class.
Buffer to read from.
Encoding to use when converting byte array to strings.
Assign a new buffer
Buffer to process.
Where to start process buffer
Buffer length
Buffer needs to be a byte array
Assign a new buffer
Buffer to process
Buffer needs to be a byte array
Consume current character.
Get a text line.
Will merge multi line headers.
Read quoted string
string if current character (in buffer) is a quote; otherwise null.
Read until end of string, or to one of the delimiters are found.
characters to stop at
A string (can be ).
Will not consume the delimiter.
InvalidOperationException.
Read until end of string, or to one of the delimiters are found.
A string (can be ).
Will not consume the delimiter.
Read to end of buffer, or until specified delimiter is found.
Delimiter to find.
A string (can be ).
Will not consume the delimiter.
InvalidOperationException.
Consume specified characters
One or more characters.
Consumes horizontal white spaces (space and tab).
Consume horizontal white spaces and the specified character.
Extra character to consume
Read a character.
Character if not EOF; otherwise null.
Will read until specified delimiter is found.
Character to stop at.
A string if the delimiter was found; otherwise null.
Will trim away spaces and tabs from the end.
InvalidOperationException.
Read until one of the delimiters are found.
characters to stop at
A string if one of the delimiters was found; otherwise null.
Will not consume the delimiter.
InvalidOperationException.
Read until a horizontal white space occurs.
A string if a white space was found; otherwise null.
Checks if one of the remaining bytes are a specified character.
Character to find.
true if found; otherwise false.
Gets or sets line number.
Gets if end of buffer have been reached
Gets if more bytes can be processed.
Gets next character
if end of buffer.
Gets current character
if end of buffer.
Gets or sets current position in buffer.
THINK before you manually change the position since it can blow up
the whole parsing in your face.
Gets total length of buffer.
Gets number of bytes left.
Response to a request.
Redirect user.
Where to redirect to.
Any modifications after a redirect will be ignored.
Gets connection type.
Gets cookies.
Gets HTTP version.
Default is HTTP/1.1
Information about why a specific status code was used.
Status code that is sent to the client.
Default is
Gets or sets content type
Request context
Contains information about a HTTP request and where it came from.
Gets or sets http context.
Gets or sets http request.
Gets or sets http response.
Contains numerical value.
Initializes a new instance of the class.
The name.
The value.
Returns data formatted as a HTTP header value.
A that represents the current .
Gets value
Gets header name
Form parameters where form string arrays have been converted to real arrays.
Initializes a new instance of the class.
Initializes a new instance of the class.
The name.
The value.
Initializes a new instance of the class.
Parse parameters from the this collection.
Get a parameter.
Add a parameter
Name of parameter, can contain a string array.
Value
ArrayParameterCollection array = new ArrayParameterCollection();
array.Add("user[FirstName]", "Jonas");
array.Add("user[FirstName]", "Arne");
string firstName = array["user"]["FirstName"].Value; // "Arne" is returned
foreach (string value in array["user"]["FirstName"])
Console.WriteLine(value); // each name is displayed.
Checks if the specified parameter exists
Parameter name.
true if found; otherwise false;
Returns an enumerator that iterates through the collection.
A that can be used to iterate through the collection.
1
Gets first value of an item.
String if found; otherwise null.
Gets number of parameters.
Gets last value of an parameter.
Parameter name
String if found; otherwise null.
Assign properties from HTTP parameters.
Used to filter out properties.
Filter handler.
Handler have already been set.
Assign properties in the specified object.
Object to fill.
Contains all parameters that should be assigned to the properties.
Properties was not found or value could not be converted.
Any parameter is null.
Used to be able to filter properties
Model having it's properties assigned
Property about to be assigned
Value to assign
true if value can be set; otherwise false.
Failed to assign properties.
Initializes a new instance of the class.
The property errors.
Gets all errors during assignment.
Dictionary key is property name.
Used to read from a string object.
Initializes a new instance of the class.
Buffer to process.
Initializes a new instance of the class.
Assign a new buffer
Buffer to process.
Where to start process buffer
Buffer length
MUST be of type .
buffer needs to be of type string
Assign a new buffer
Buffer to process
MUST be of type .
buffer needs to be of type string
Consume current character.
Get a text line.
Will merge multiline headers.
Read quoted string
string if current character (in buffer) is a quote; otherwise null.
Read until end of string, or to one of the delimiters are found.
characters to stop at
A string (can be ).
InvalidOperationException.
Read until end of string, or to one of the delimiters are found.
A string (can be ).
Will not consume the delimiter.
Read to end of buffer, or until specified delimiter is found.
Delimiter to find.
A string (can be ).
InvalidOperationException.
Consume specified characters
One or more characters.
Consumes horizontal white spaces (space and tab).
Read a character.
Character if not EOF; otherwise null.
Will read until specified delimiter is found.
Character to stop at.
A string if the delimiter was found; otherwise null.
Will trim away spaces and tabs from the end.
Will not consume the delimiter.
InvalidOperationException.
Read until one of the delimiters are found.
characters to stop at
A string if one of the delimiters was found; otherwise null.
Will not consume the delimiter.
InvalidOperationException.
Read until a horizontal white space occurs (or end, or end of line).
A string if a white space was found; otherwise null.
Consume horizontal white spaces and the specified character.
Extra character to consume
Checks if one of the remaining bytes are a specified character.
Character to find.
true if found; otherwise false.
Gets or sets line number.
Gets if end of buffer have been reached
Gets if more bytes can be processed.
Gets next character
if end of buffer.
Gets current character
if end of buffer.
Gets or sets current position in buffer.
THINK before you manually change the position since it can blow up
the whole parsing in your face.
Gets total length of buffer.
Gets number of bytes left.
Default log writer, writes everything to void (nowhere).
The logging instance.
Write an entry that helps when debugging code.
Log message
Write an entry that helps when debugging code.
Log message
Thrown exception to log.
Write a entry needed when following through code during hard to find bugs.
Log message
Write a entry that helps when trying to find hard to find bugs.
Log message
Thrown exception to log.
Informational message, needed when helping customer to find a problem.
Log message
Informational message, needed when helping customer to find a problem.
Log message
Thrown exception to log.
Something is not as we expect, but the code can continue to run without any changes.
Log message
Something is not as we expect, but the code can continue to run without any changes.
Log message
Thrown exception to log.
Something went wrong, but the application do not need to die. The current thread/request
cannot continue as expected.
Log message
Something went wrong, but the application do not need to die. The current thread/request
cannot continue as expected.
Log message
Thrown exception to log.
Something went very wrong, application might not recover.
Log message
Something went very wrong, application might not recover.
Log message
Thrown exception to log.
Priority for log entries
Very detailed logs to be able to follow the flow of the program.
Logs to help debug errors in the application
Information to be able to keep track of state changes etc.
Something did not go as we expected, but it's no problem.
Something that should not fail failed, but we can still keep
on going.
Something failed, and we cannot handle it properly.
This class writes to the console.
It colors the output depending on the log level
and includes a 3-level stack trace (in debug mode)
Initializes a new instance of the class.
Type being logged.
Log filter.
Get color for the specified log level
Level for the log entry
A for the level
Write an entry
Importance of the log message
The message.
Write an entry that helps when debugging code.
Log message
Write an entry that helps when debugging code.
Log message
Thrown exception to log.
Write a entry needed when following through code during hard to find bugs.
Log message
Write a entry that helps when trying to find hard to find bugs.
Log message
Thrown exception to log.
Informational message, needed when helping customer to find a problem.
Log message
Informational message, needed when helping customer to find a problem.
Log message
Thrown exception to log.
Something is not as we expect, but the code can continue to run without any changes.
Log message
Something is not as we expect, but the code can continue to run without any changes.
Log message
Thrown exception to log.
Something went wrong, but the application do not need to die. The current thread/request
cannot continue as expected.
Log message
Something went wrong, but the application do not need to die. The current thread/request
cannot continue as expected.
Log message
Thrown exception to log.
Something went very wrong, application might not recover.
Log message
Something went very wrong, application might not recover.
Log message
Thrown exception to log.
Gets or sets type that the logger is for
A HTTP context
Context that received a HTTP request.
Disconnect context.
Gets if current context is using a secure connection.
Gets logger.
Gets remote end point
Gets stream used to send/receive data to/from remote end point.
The stream can be any type of stream, do not assume that it's a network
stream. For instance, it can be a or a ZipStream.
Gets the currently handled request
The request.
Gets the response that is going to be sent back
The response.
Initializes a new instance of the class.
Socket received from HTTP listener.
Context used to parse incoming messages.
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
2
Disconnect context.
Close and release socket.
Create stream used to send and receive bytes from the socket.
Socket to wrap
Stream
Stream could not be created.
Interpret incoming data.
A request was received from the parser.
Parse all complete requests in buffer.
offset in buffer where parsing stopped.
Parsing failed.
Start content.
A socket operation failed.
Reading from stream failed.
Gets currently executing HTTP context.
Gets or sets description
gets factory used to build request objects
Gets socket
Gets remove end point
Gets network stream.
Gets the currently handled request
The request.
Gets the response that is going to be sent back
The response.
Gets logger.
Gets if current context is using a secure connection.
Triggered for all requests in the server (after the response have been sent)
Triggered for current request (after the response have been sent)
A new request have been received.
A new request have been received (invoked for ALL requests)
Client have been disconnected.
Client asks if he may continue.
If the body is too large or anything like that you should respond .
Initializes a new instance of the class.
SSL protocol to use.
The socket.
The context.
Server certificate to use.
Create stream used to send and receive bytes from the socket.
Socket to wrap
Stream
Stream could not be created.
Gets or sets client certificate.
Gets used protocol.
Gets or sets if client certificate should be used instead of server certificate.
Resource information.
Used by content providers to be able to get information
on resources (views, files etc).
Gets or sets date when resource was modified.
if not used.
Should always be universal time.
Gets or sets resource stream.
Contains parameters for HTTP headers.
Add a parameter
name
value
Existing parameter with the same name will be replaced.
Parse parameters.
Parser containing buffer to parse.
A collection with all parameters (or just a empty collection).
Expected a value after equal sign.
Parse parameters.
Parser containing buffer to parse.
Parameter delimiter
A collection with all parameters (or just a empty collection).
Expected a value after equal sign.
Returns a that represents the current .
A that represents the current .
Gets or sets a value
parameter name
value if found; otherwise null.
Create a HTTP response object.
Initializes a new instance of the class.
HTTP Version.
HTTP status code.
Why the status code was selected.
Version must start with 'HTTP/'
Initializes a new instance of the class.
Context that the response will be sent through.
Request that the response is for.
Version must start with 'HTTP/'
Redirect user.
Where to redirect to.
Any modifications after a redirect will be ignored.
Add a new header.
Add a new header.
Header to add.
Returns an enumerator that iterates through the collection.
A that can be used to iterate through the collection.
1
Returns an enumerator that iterates through a collection.
An object that can be used to iterate through the collection.
2
Gets a header.
Gets connection type.
Status code that is sent to the client.
Default is
Gets HTTP version.
Default is HTTP/1.1
Information about why a specific status code was used.
Size of the body. MUST be specified before sending the header,
unless property Chunked is set to true.
Any specifically assigned value or Body stream length.
Kind of content in the body
Default is text/html
Gets or sets encoding
Gets cookies.
Gets body stream.
Gets headers.
A request have been received.
Initializes a new instance of the class.
The request.
End point that the request was received from.
End point that the message was received from.
Received request.
Class to make dynamic binding of redirects. Instead of having to specify a number of similar redirect rules
a regular expression can be used to identify redirect URLs and their targets.
[a-z0-9]+)", "/users/${target}/?find=true", RegexOptions.IgnoreCase)
]]>
Initializes a new instance of the class.
Expression to match URL
Expression to generate URL
[a-zA-Z0-9]+)", "/user/${first}"));
Result of ie. /employee1 will then be /user/employee1
]]>
Initializes a new instance of the class.
Expression to match URL
Expression to generate URL
Regular expression options to use, can be null
[a-zA-Z0-9]+)", "/user/{first}", RegexOptions.IgnoreCase));
Result of ie. /employee1 will then be /user/employee1
]]>
Initializes a new instance of the class.
Expression to match URL
Expression to generate URL
Regular expression options to apply
true if request should be redirected, false if the request URI should be replaced.
[a-zA-Z0-9]+)", "/user/${first}", RegexOptions.None));
Result of ie. /employee1 will then be /user/employee1
]]>
Argument is null.
Process the incoming request.
Request context.
Processing result.
If any parameter is null.
cookie being sent back to the browser.
Constructor.
cookie identifier
cookie content
cookie expiration date. Use for session cookie.
id or content is null
id is empty
Create a new cookie
name identifying the cookie
cookie value
when the cookie expires. Setting will delete the cookie when the session is closed.
Path to where the cookie is valid
Domain that the cookie is valid for.
Create a new cookie
Name and value will be used
when the cookie expires.
Gets the cookie HTML representation.
cookie string
Gets when the cookie expires.
means that the cookie expires when the session do so.
Gets path that the cookie is valid under.
The Cache-Control general-header field is used to specify directives that
MUST be obeyed by all caching mechanisms along the request/response
chain. .
The directives specify behavior intended to prevent caches from adversely
interfering with the request or response. These directives typically
override the default caching algorithms. Cache directives are
unidirectional in that the presence of a directive in a request does not
imply that the same directive is to be given in the response.
Note that HTTP/1.0 caches might not implement Cache-Control and
might only implement Pragma: no-cache (see section 14.32 in RFC2616).
Cache directives MUST be passed through by a proxy or gateway
application, regardless of their significance to that application, since the
directives might be applicable to all recipients along the request/response
chain. It is not possible to specify a cache- directive for a specific cache
When a directive appears without any 1#field-name parameter, the
directive applies to the entire request or response. When such a
directive appears with a 1#field-name parameter, it applies only to
the named field or fields, and not to the rest of the request or
response. This mechanism supports extensibility; implementations of
future versions of the HTTP protocol might apply these directives to
header fields not defined in HTTP/1.1.
The cache-control directives can be broken down into these general
categories:
-
Restrictions on what are cacheable; these may only be imposed by
the origin server.
-
Restrictions on what may be stored by a cache; these may be
imposed by either the origin server or the user agent.
-
Modifications of the basic expiration mechanism; these may be
imposed by either the origin server or the user agent.
-
Controls over cache revalidation and reload; these may only be
imposed by a user agent.
-
Control over transformation of entities.
-
Extensions to the caching system.
Header name
Gets header name
Serves files in the web server.
FileModule fileModule = new FileModule();
fileModule.Resources.Add(new FileResources("/", "C:\\inetpub\\myweb"));
Initializes a new instance of the class.
baseUri or basePath is null.
Mime types that this class can handle per default
Contains the following mime types:
Will send a file to client.
HTTP context containing outbound stream.
Response containing headers.
File stream
Process a request.
Request information
What to do next.
Failed to find file extension
Forbidden file type.
Gets a list with all allowed content types.
All other mime types will result in .
Gets provider used to add files to the file manager,
Collection of files.
Checks if a file exists.
Name of the file (form item name)
Add a new file.
File to add.
Remove all files from disk.
Get a file
Name in form
File if found; otherwise null.
Gets number of files