Beispiel #1
0
static void
server_callback (SoupServer *server, SoupMessage *msg,
		 const char *path, GHashTable *query,
		 SoupClientContext *context, gpointer data)
{
    UiConnection *self = (UiConnection *)data;

    imgflo_debug("%s %s HTTP/1.%d\n", msg->method, path,
         soup_message_get_http_version(msg));
    ensure_hostname_set(self, soup_message_get_uri(msg));

    if (msg->method == SOUP_METHOD_GET && g_strcmp0(path, "/process") == 0) {
        process_image_callback(server, msg, path, query, context, self);
    } else if (msg_is_upgrade(msg)) {
        // fall-through, let libsoup WebSocket handle this
    } else if (msg->method == SOUP_METHOD_GET && g_strcmp0(path, "/") == 0) {
        serve_frontpage(server, msg, path, query, context, self);
    } else {
        imgflo_warning("Unknown HTTP request: %s, %s", msg->method, path);
        SoupMessageHeadersIter iter;
        const char *name, *value;
        soup_message_headers_iter_init(&iter, msg->request_headers);
        while (soup_message_headers_iter_next(&iter, &name, &value))
            imgflo_debug("%s: %s\n", name, value);
        if (msg->request_body->length)
            imgflo_debug("%s\n", msg->request_body->data);
        soup_message_set_status(msg, SOUP_STATUS_NOT_IMPLEMENTED);
    }
}
Beispiel #2
0
static void
server_callback (SoupServer *server, SoupMessage *msg,
		 const char *path, GHashTable *query,
		 SoupClientContext *context, gpointer data)
{

    SoupMessageHeadersIter iter;
    const char *name, *value;

    g_print("%s %s HTTP/1.%d\n", msg->method, path,
         soup_message_get_http_version(msg));

    if (g_strcmp0(path, "/process") == 0 && msg->method == SOUP_METHOD_GET) {
        process_image_callback(server, msg, path, query, context, data);
    } else {
        soup_message_headers_iter_init(&iter, msg->request_headers);
        while (soup_message_headers_iter_next(&iter, &name, &value))
            g_print("%s: %s\n", name, value);
        if (msg->request_body->length)
            g_print("%s\n", msg->request_body->data);

        g_print("  -> %d %s\n\n", msg->status_code, msg->reason_phrase);

        soup_message_set_status(msg, SOUP_STATUS_NOT_IMPLEMENTED);
    }
}