Example #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;
    }
}
Example #2
0
static gboolean
on_handle_resource (CockpitWebServer *server,
                    const gchar *path,
                    GHashTable *headers,
                    CockpitWebResponse *response,
                    gpointer user_data)
{
  gchar **parts;
  gchar *rebuilt;

  g_assert (g_str_has_prefix (path, "/pkg"));

  /* TODO: This needs a better implementation later, when the tests aren't all broken */
  parts = g_strsplit (path, "/", -1);
  if (g_strcmp0 (parts[2], "system") == 0)
    {
      g_free (parts[2]);
      parts[2] = g_strdup ("systemd");
    }

  rebuilt = g_strjoinv ("/", parts);
  inject_address (response, "bus_address", bus_address);
  inject_address (response, "direct_address", direct_address);

  cockpit_web_response_file (response, rebuilt, FALSE,
                             cockpit_web_server_get_document_roots (server));

  g_strfreev (parts);
  g_free (rebuilt);
  return TRUE;
}
Example #3
0
static gboolean
on_handle_source (CockpitWebServer *server,
                  const gchar *path,
                  GHashTable *headers,
                  CockpitWebResponse *response,
                  gpointer user_data)
{
    cockpit_web_response_set_cache_type (response, COCKPIT_WEB_RESPONSE_NO_CACHE);
    inject_address (response, "bus_address", bus_address);
    inject_address (response, "direct_address", direct_address);
    cockpit_web_response_file (response, path,  cockpit_web_server_get_document_roots (server));
    return TRUE;
}
Example #4
0
static void
handle_package_file (CockpitWebServer *server,
                     CockpitWebResponse *response,
                     gchar **parts)
{
    gchar *rebuilt;

    /* TODO: This needs a better implementation later, when the tests aren't all broken */
    if (g_strcmp0 (parts[2], "system") == 0)
    {
        g_free (parts[2]);
        parts[2] = g_strdup ("systemd");
    }
    if (g_strcmp0 (parts[2], "base1") == 0)
    {
        g_free (parts[1]);
        parts[1] = g_strdup ("src");
    }

    rebuilt = g_strjoinv ("/", parts);
    cockpit_web_response_file (response, rebuilt,  cockpit_web_server_get_document_roots (server));
    g_free (rebuilt);
}