Beispiel #1
0
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;
    }
}
Beispiel #2
0
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);
}