ServerCallback


Description:

[ CCode ( instance_pos = 4.9 ) ]
public delegate void ServerCallback (Server server, ServerMessage msg, string path, HashTable<string,string>? query)

A callback used to handle requests to a [class@Server].

path and query contain the likewise-named components of the Request-URI, subject to certain assumptions. By default, [class@Server] decodes all percent-encoding in the URI path, such that `"/foo%2Fbar"` is treated the same as `"/foo/bar"`. If your server is serving resources in some non-POSIX-filesystem namespace, you may want to distinguish those as two distinct paths. In that case, you can set the [property@Server:raw-paths] property when creating the [class@Server], and it will leave those characters undecoded.

query contains the query component of the Request-URI parsed according to the rules for HTML form handling. Although this is the only commonly-used query string format in HTTP, there is nothing that actually requires that HTTP URIs use that format; if your server needs to use some other format, you can just ignore query, and call [method@Message.get_uri] and parse the URI's query field yourself.

See [method@Server.add_handler] and [method@Server.add_early_handler] for details of what handlers can/should do.

Parameters:

server

the Server

msg

the message being processed

path

the path component of msg's Request-URI

query

the parsed query component of msg's Request-URI

user_data

the data passed to [method@Server.add_handler] or [method@Server.add_early_handler].


Namespace: Soup
Package: libsoup-3.0