From c686c87f864fa508e322c78eb4ed3bd9502e4a65 Mon Sep 17 00:00:00 2001 From: sergiotarxz Date: Thu, 6 Jan 2022 00:07:49 +0100 Subject: [PATCH] Adding libsoup hello world. --- meson.build | 3 ++- src/main.c | 41 ++++++++++++++++++++++++++++++++++++++--- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index 5415d8b..1c335e8 100644 --- a/meson.build +++ b/meson.build @@ -3,7 +3,8 @@ project('depueblo', 'c') inc = include_directories('include') depueblo_deps = [ - dependency('glib-2.0') + dependency('glib-2.0'), + dependency('libsoup-2.4'), ] sources = [ diff --git a/src/main.c b/src/main.c index b77aac7..db9b34f 100644 --- a/src/main.c +++ b/src/main.c @@ -1,5 +1,40 @@ -#include +#include -int main () { - printf ("%s\n", "hello world"); +#include + +static void +callback (SoupServer *server, + SoupMessage *message, + const char *path, + GHashTable *query, + SoupClientContext *context, + gpointer user_data); +int +main () { + SoupServer *soup_server = soup_server_new (NULL, NULL); + GError *error = NULL; + GMainLoop *loop; + soup_server_add_handler (soup_server, "/", callback, NULL, NULL); + soup_server_listen_local (soup_server, 8080, 0, &error); + if (error) { + g_error ("%s\n", error->message); + return 1; + } + loop = g_main_loop_new (NULL, true); + g_main_loop_run (loop); + return 0; +} + +static void +callback (SoupServer *server, + SoupMessage *message, + const char *path, + GHashTable *query, + SoupClientContext *context, + gpointer user_data) { + char *response_text = "Hello World"; + soup_message_set_status (message, 200); + soup_message_set_response (message, "text/html", SOUP_MEMORY_COPY, + response_text, (strlen (response_text)) + * sizeof *response_text); }