/** * soup_server_add_handler: * @server: a #SoupServer * @path: the toplevel path for the handler * @callback: callback to invoke for requests under @path * @user_data: data for @callback * @destroy: destroy notifier to free @user_data * * Adds a handler to @server for requests under @path. See the * documentation for #SoupServerCallback for information about * how callbacks should behave. * * If @path is %NULL or "/", then this will be the default handler for * all requests that don't have a more specific handler. Note though * that if you want to handle requests to the special "*" URI, you * must explicitly register a handler for "*"; the default handler * will not be used for that case. **/ void soup_server_add_handler (SoupServer *server, const char *path, SoupServerCallback callback, gpointer user_data, GDestroyNotify destroy) { SoupServerPrivate *priv; SoupServerHandler *hand; g_return_if_fail (SOUP_IS_SERVER (server)); g_return_if_fail (callback != NULL); priv = SOUP_SERVER_GET_PRIVATE (server); /* "" was never documented as meaning the same this as "/", * but it effectively was. We have to special case it now or * otherwise it would match "*" too. */ if (path && (!*path || !strcmp (path, "/"))) path = NULL; hand = g_slice_new0 (SoupServerHandler); hand->path = g_strdup (path); hand->callback = callback; hand->destroy = destroy; hand->user_data = user_data; soup_server_remove_handler (server, path); if (path) soup_path_map_add (priv->handlers, path, hand); else priv->default_handler = hand; }
gboolean sim_server_api_stop (SoupServer * server) { gboolean result = FALSE; soup_server_remove_handler (server, "/server/status"); if (ossim.domain_auth != NULL) soup_auth_domain_remove_path (ossim.domain_auth, "/server/status"); g_free (old_engine_stats); g_free (old_server_stats); old_engine_stats = old_server_stats = NULL; result = TRUE; return result; }
void uninstall(WebServer *server) { soup_server_remove_handler(server->soupServer, NULL); }