static void cockpit_web_server_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { CockpitWebServer *server = COCKPIT_WEB_SERVER (object); switch (prop_id) { case PROP_PORT: g_value_set_int (value, cockpit_web_server_get_port (server)); break; case PROP_CERTIFICATE: g_value_set_object (value, server->certificate); break; case PROP_DOCUMENT_ROOTS: g_value_set_boxed (value, cockpit_web_server_get_document_roots (server)); break; case PROP_SSL_EXCEPTION_PREFIX: g_value_set_string (value, server->ssl_exception_prefix->str); case PROP_SOCKET_ACTIVATED: g_value_set_boolean (value, server->socket_activated); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static void server_ready (void) { const gchar *roots[] = { ".", SRCDIR, NULL }; GError *error = NULL; CockpitWebServer *server; gchar *url; if (!isatty (1)) server_port = 0; /* select one automatically */ else server_port = 8765; server = cockpit_web_server_new (server_port, /* TCP port to listen to */ NULL, /* TLS cert */ roots,/* Where to serve files from */ NULL, /* GCancellable* */ &error); if (server == NULL) { g_critical ("Error setting up web server: %s (%s, %d)", error->message, g_quark_to_string (error->domain), error->code); } g_signal_connect (server, "handle-stream", G_CALLBACK (on_handle_stream_socket), NULL); g_signal_connect (server, "handle-stream", G_CALLBACK (on_handle_stream_external), NULL); g_signal_connect (server, "handle-resource::/pkg/", G_CALLBACK (on_handle_resource), NULL); g_signal_connect (server, "handle-resource::/src/", G_CALLBACK (on_handle_source), NULL); g_signal_connect (server, "handle-resource::/mock/", G_CALLBACK (on_handle_mock), NULL); server_port = cockpit_web_server_get_port (server); url = g_strdup_printf("http://localhost:%d", server_port); if (!isatty (1)) { g_print ("%s\n", url); } else { g_print ("**********************************************************************\n" "Please connect a supported web browser to\n" "\n" " %s/src/base1/test-dbus.html\n" "\n" "and check that the test suite passes. Press Ctrl+C to exit.\n" "**********************************************************************\n" "\n", url); } g_free (url); }