SoupServerCallback

A callback used to handle requests to a #SoupServer.

@path and @query contain the likewise-named components of the Request-URI, subject to certain assumptions. By default, #SoupServer 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 %SOUP_SERVER_RAW_PATHS property when creating the #SoupServer, and it will leave those characters undecoded. (You may want to call soup_uri_normalize() to decode any percent-encoded characters that you aren't handling specially.)

@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 soup_message_get_uri() and parse the URI's query field yourself.

See soup_server_add_handler() and soup_server_add_early_handler() for details of what handlers can/should do.

alias SoupServerCallback = void function(SoupServer* server, SoupMessage* msg, const(char)* path, GHashTable* query, SoupClientContext* client, void* userData)

Meta