summaryrefslogtreecommitdiff
path: root/src/backend/dbus/dbus.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/dbus/dbus.c')
-rw-r--r--src/backend/dbus/dbus.c190
1 files changed, 0 insertions, 190 deletions
diff --git a/src/backend/dbus/dbus.c b/src/backend/dbus/dbus.c
deleted file mode 100644
index 0b30ccf..0000000
--- a/src/backend/dbus/dbus.c
+++ /dev/null
@@ -1,190 +0,0 @@
-/* dbus.c
- *
- * Copyright 2022-2023 The Libproxy Team
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * SPDX-License-Identifier: LGPL-2.1-or-later
- */
-
-#include "px-manager.h"
-#include "px-interface.h"
-
-#include <gio/gio.h>
-
-static gboolean replace;
-static gboolean use_system;
-
-static GApplication *app;
-
-const GOptionEntry options[] = {
- { "replace", 'r', 0, G_OPTION_ARG_NONE, &replace, "Replace running daemon.", NULL },
- { "system", 's', 0, G_OPTION_ARG_NONE, &use_system, "Use system bus.", NULL },
- { NULL }
-};
-
-static void
-handle_method_call (GDBusConnection *connection,
- const gchar *sender,
- const gchar *object_path,
- const gchar *interface_name,
- const gchar *method_name,
- GVariant *parameters,
- GDBusMethodInvocation *invocation,
- gpointer user_data)
-{
- PxManager *manager = PX_MANAGER (user_data);
- GVariantBuilder *result;
- g_auto (GStrv) proxies = NULL;
- g_autoptr (GError) error = NULL;
- const gchar *url;
- int idx;
-
- g_application_hold (app);
- if (g_strcmp0 (method_name, "GetProxiesFor") != 0) {
- g_warning ("Invalid method name '%s', aborting.", method_name);
- g_dbus_method_invocation_return_error (invocation,
- PX_MANAGER_ERROR,
- PX_MANAGER_ERROR_UNKNOWN_METHOD,
- "Unknown method");
- g_application_release (app);
- return;
- }
-
- g_variant_get (parameters, "(&s)", &url);
-
- proxies = px_manager_get_proxies_sync (manager, url, &error);
- if (error) {
- g_warning ("Could not query proxy servers: %s", error->message);
- g_dbus_method_invocation_return_gerror (invocation, error);
- g_application_release (app);
- return;
- }
-
- result = g_variant_builder_new (G_VARIANT_TYPE ("as"));
- if (proxies) {
- for (idx = 0; proxies[idx]; idx++) {
- g_variant_builder_add (result, "s", proxies[idx]);
- }
- }
-
- g_dbus_method_invocation_return_value (invocation,
- g_variant_new ("(as)", result));
- g_application_release (app);
-}
-
-static const GDBusInterfaceVTable interface_vtable = {
- handle_method_call,
-};
-
-static void
-on_bus_acquired (GDBusConnection *connection,
- const gchar *name,
- gpointer user_data)
-{
- g_autoptr (GError) error = NULL;
- PxManager *manager = NULL;
-
- manager = px_manager_new ();
- g_dbus_connection_register_object (connection,
- "/org/libproxy/proxy",
- (GDBusInterfaceInfo *)&org_libproxy_proxy_interface,
- &interface_vtable,
- manager,
- g_object_unref,
- &error);
- g_application_release (user_data);
-
- if (error) {
- g_warning ("Could not register dbus object: %s", error->message);
- g_application_quit (user_data);
- return;
- }
-}
-
-static void
-on_name_lost (GDBusConnection *connection,
- const gchar *name,
- gpointer user_data)
-{
- if (!connection) {
- g_warning ("Can't connect proxy bus");
- g_application_quit (user_data);
- } else {
- g_warning ("Unknown name lost error");
- g_application_quit (user_data);
- }
-}
-
-static void
-activate (GApplication *application)
-{
- GBusNameOwnerFlags flags;
-
- flags = G_BUS_NAME_OWNER_FLAGS_ALLOW_REPLACEMENT;
- if (replace)
- flags |= G_BUS_NAME_OWNER_FLAGS_REPLACE;
-
- g_bus_own_name (use_system ? G_BUS_TYPE_SYSTEM : G_BUS_TYPE_SESSION,
- "org.libproxy.proxy",
- flags,
- on_bus_acquired,
- NULL,
- on_name_lost,
- app,
- NULL);
-
- g_application_hold (app);
-}
-
-int
-main (int argc,
- char **argv)
-{
- GOptionContext *context;
- g_autoptr (GError) error = NULL;
-
- replace = FALSE;
- use_system = FALSE;
-
- context = g_option_context_new ("");
- g_option_context_set_summary (context, "Libproxy D-Bus Service");
- g_option_context_add_main_entries (context, options, "libproxy");
-
- if (!g_option_context_parse (context, &argc, &argv, &error)) {
- g_printerr ("%s: %s", g_get_application_name (), error->message);
- g_printerr ("\n");
- g_printerr ("Try \"%s --help\" for more information.",
- g_get_prgname ());
- g_printerr ("\n");
- g_option_context_free (context);
- return 1;
- }
-
- app = g_application_new ("org.libproxy.proxy-service",
-#if GLIB_CHECK_VERSION (2, 73, 0)
- G_APPLICATION_DEFAULT_FLAGS
-#else
- G_APPLICATION_FLAGS_NONE
-#endif
- );
-
- g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
-
- /* Set application timeout to 60 seconds */
- g_application_set_inactivity_timeout (app, 60000);
-
- return g_application_run (app, argc, argv);
-}