static void* no_bus_init_server (ServerData *sd) { DBusServer *server; DBusError error; dbus_error_init (&error); server = dbus_server_listen ("unix:tmpdir="DBUS_TEST_SOCKET_DIR, &error); if (server == NULL) { g_printerr ("Could not start server: %s\n", error.message); exit (1); } messages_address = dbus_server_get_address (server); dbus_server_set_new_connection_function (server, no_bus_new_connection_callback, sd, NULL); dbus_server_setup_with_g_main (server, NULL); return server; }
static dbus_bool_t dbus_py_glib_set_up_srv(DBusServer *srv, void *data) { GMainContext *ctx = (GMainContext *)data; Py_BEGIN_ALLOW_THREADS dbus_server_setup_with_g_main(srv, ctx); Py_END_ALLOW_THREADS return 1; }
int main(int argc, char *argv[]) { librdf_world* world; GMainLoop *loop; DBusServer *server; DBusError error; char *program=argv[0]; if (argc < 2) { fprintf (stderr, "%s: USAGE [server address]\n", program); return 1; } world=librdf_new_world(); librdf_world_open(world); g_thread_init (NULL); dbus_gthread_init (); dbus_error_init (&error); server = dbus_server_listen (argv[1], &error); if (server == NULL) { fprintf (stderr, "Failed to start server on %s: %s\n", argv[1], error.message); dbus_error_free (&error); return 1; } if (!dbus_connection_allocate_data_slot (&handler_slot)) g_error ("no memory for data slot"); disconnect_handler = dbus_message_handler_new (handle_disconnect, NULL, NULL); if (disconnect_handler == NULL) g_error ("no memory for handler"); dbus_server_set_new_connection_function (server, new_connection_callback, NULL, NULL); dbus_server_setup_with_g_main (server, NULL); loop = g_main_loop_new (NULL, FALSE); g_main_run (loop); librdf_free_world(world); #ifdef LIBRDF_MEMORY_DEBUG librdf_memory_report(stderr); #endif /* keep gcc -Wall happy */ return 0; }
int main (int argc, char *argv[]) { GMainLoop *loop; DBusServer *server; DBusError error; g_thread_init (NULL); dbus_g_thread_init (); if (argc < 2) { fprintf (stderr, "Give the server address as an argument\n"); return 1; } dbus_error_init (&error); #ifndef __SYMBIAN32__ server = dbus_server_listen (argv[1], &error); #else server = dbus_server_listen ("tcp:host=localhost,port=12435", &error); #endif if (server == NULL) { fprintf (stderr, "Failed to start server on %s: %s\n", argv[1], error.message); dbus_error_free (&error); return 1; } dbus_server_set_new_connection_function (server, new_connection_callback, NULL, NULL); dbus_server_setup_with_g_main (server, NULL); loop = g_main_loop_new (NULL, FALSE); g_main_run (loop); return 0; }
gboolean hald_runner_start_runner(void) { DBusServer *server = NULL; DBusError err; GError *error = NULL; GPid pid; char *argv[] = { NULL, NULL}; char *env[] = { NULL, NULL, NULL, NULL}; const char *hald_runner_path; char *server_addr; running_processes = g_hash_table_new (g_direct_hash, g_direct_equal); dbus_error_init(&err); server = dbus_server_listen(DBUS_SERVER_ADDRESS, &err); if (server == NULL) { HAL_ERROR (("Cannot create D-BUS server for the runner")); goto error; } dbus_server_setup_with_g_main(server, NULL); dbus_server_set_new_connection_function(server, handle_connection, NULL, NULL); argv[0] = "hald-runner"; server_addr = dbus_server_get_address (server); env[0] = g_strdup_printf("HALD_RUNNER_DBUS_ADDRESS=%s", server_addr); dbus_free (server_addr); hald_runner_path = g_getenv("HALD_RUNNER_PATH"); if (hald_runner_path != NULL) { env[1] = g_strdup_printf ("PATH=%s:" PACKAGE_LIBEXEC_DIR ":" PACKAGE_SCRIPT_DIR ":" PACKAGE_BIN_DIR, hald_runner_path); } else { env[1] = g_strdup_printf ("PATH=" PACKAGE_LIBEXEC_DIR ":" PACKAGE_SCRIPT_DIR ":" PACKAGE_BIN_DIR); } /*env[2] = "DBUS_VERBOSE=1";*/ if (!g_spawn_async(NULL, argv, env, G_SPAWN_DO_NOT_REAP_CHILD|G_SPAWN_SEARCH_PATH, NULL, NULL, &pid, &error)) { HAL_ERROR (("Could not spawn runner : '%s'", error->message)); g_error_free (error); goto error; } g_free(env[0]); g_free(env[1]); HAL_INFO (("Runner has pid %d", pid)); g_child_watch_add(pid, runner_died, NULL); while (runner_connection == NULL) { /* Wait for the runner */ g_main_context_iteration(NULL, TRUE); } return TRUE; error: if (server != NULL) dbus_server_unref(server); return FALSE; }
int main (int argc, char**argv) { DBusServer* server; GMainLoop * loop; DBusError derror; guint16 port; GError * error = NULL; gchar * command; g_type_init (); dbus_error_init (&derror); server = dbus_server_listen("tcp:bind=*", &derror); if (dbus_error_is_set (&derror)) { g_warning ("error setting up peer-to-peer server: %s", derror.message); dbus_error_free (&derror); return 1; } dbus_server_set_new_connection_function(server, &new_connection_cb, NULL, NULL); port = my_dbus_server_get_port (server); command = g_strdup_printf ("./client %s %d", "localhost", port); if (argc > 1) { g_print ("starting \"%s\" twice:\n", command); if (!g_spawn_command_line_async (command, &error)) { g_warning ("error spawning child: %s", error->message); g_clear_error (&error); return 1; } if (!g_spawn_command_line_async (command, &error)) { g_warning ("error spawning child: %s", error->message); g_clear_error (&error); return 1; } } else { g_print ("start the clients like this: \"%s\" (replace \"localhost\" with the IP address)\n", command); } g_free (command); dbus_server_setup_with_g_main (server, NULL); loop = g_main_loop_new (NULL, FALSE); g_timeout_add (argc > 1 ? 1000 : 60 * 1000, (GSourceFunc)g_main_loop_quit, loop); g_main_loop_run (loop); g_main_loop_unref (loop); dbus_server_unref (server); return 0; }
static int server_init(LassiServer *ls) { DBusError e; int r = -1; guint16 port; g_assert(ls); memset(ls, 0, sizeof(*ls)); dbus_error_init(&e); for (port = PORT_MIN; port < PORT_MAX; port++) { char *t; t = g_strdup_printf("tcp:port=%u,host=0.0.0.0", port); ls->dbus_server = dbus_server_listen(t, &e); g_free(t); if (ls->dbus_server) { ls->port = port; break; } if (!dbus_error_has_name(&e, DBUS_ERROR_ADDRESS_IN_USE)) { g_warning("Failed to create D-Bus server: %s %s", e.message, e.name); goto finish; } dbus_error_free(&e); } if (!ls->dbus_server) { g_warning("All ports blocked."); goto finish; } g_debug("Listening on port %u", port); dbus_server_setup_with_g_main(ls->dbus_server, NULL); dbus_server_set_new_connection_function(ls->dbus_server, new_connection, ls, NULL); ls->connections_by_id = g_hash_table_new(g_str_hash, g_str_equal); ls->id = g_strdup_printf(_("%s's desktop on %s"), g_get_user_name(), g_get_host_name()); if (lassi_avahi_init(&ls->avahi_info, ls) < 0) goto finish; /* The initialization of Avahi might have changed ls->id! */ ls->address = dbus_server_get_address(ls->dbus_server); ls->order = g_list_prepend(NULL, g_strdup(ls->id)); if (lassi_grab_init(&ls->grab_info, ls) < 0) goto finish; if (lassi_osd_init(&ls->osd_info) < 0) goto finish; if (lassi_tray_init(&ls->tray_info, ls) < 0) goto finish; if (lassi_clipboard_init(&ls->clipboard_info, ls) < 0) goto finish; if (lassi_prefs_init(&ls->prefs_info, ls) < 0) goto finish; r = 0; finish: dbus_error_free(&e); return r; }
int main (int argc, char **argv) { ServiceData svc = {0,}; DBusError dbus_error = {0,}; const char *address = NULL; #ifdef ENABLE_NLS /* initialize i18n */ bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); #endif g_type_init (); gst_init (NULL, NULL); g_set_prgname ("rhythmbox-metadata"); if (argv[1] != NULL && strcmp(argv[1], "--debug") == 0) { argv++; rb_debug_init (TRUE); } else if (argv[1] != NULL && strcmp (argv[1], "--debug-match") == 0) { rb_debug_init_match (argv[2]); argv += 2; } else { rb_debug_init (FALSE); } /* bug report modes */ if (argv[1] != NULL && strcmp(argv[1], "--load") == 0) { return test_load (argv[2]); } if (argv[1] != NULL && strcmp(argv[1], "--saveable-types") == 0) { return test_saveable_types (); } if (argv[1] != NULL && strcmp (argv[1], "--external") == 0) { argv++; svc.external = TRUE; } if (argv[1] == NULL) { address = "unix:tmpdir=/tmp"; } else { address = argv[1]; } rb_debug ("initializing metadata service; pid = %d; address = %s", getpid (), address); svc.metadata = rb_metadata_new (); /* set up D-BUS server */ svc.server = dbus_server_listen (address, &dbus_error); if (!svc.server) { rb_debug ("D-BUS server init failed: %s", dbus_error.message); return -1; } dbus_server_set_new_connection_function (svc.server, _new_connection, (gpointer) &svc, NULL); /* write the server address back to the parent process */ { char *addr; addr = dbus_server_get_address (svc.server); rb_debug ("D-BUS server listening on address %s", addr); printf ("%s\n", addr); fflush (stdout); free (addr); } /* run main loop until we get bored */ svc.loop = g_main_loop_new (NULL, TRUE); dbus_server_setup_with_g_main (svc.server, g_main_loop_get_context (svc.loop)); if (!svc.external) g_timeout_add_seconds (ATTENTION_SPAN / 2, (GSourceFunc) electromagnetic_shotgun, &svc); g_main_loop_run (svc.loop); if (svc.connection) { dbus_connection_close (svc.connection); dbus_connection_unref (svc.connection); } g_object_unref (svc.metadata); g_main_loop_unref (svc.loop); dbus_server_disconnect (svc.server); dbus_server_unref (svc.server); gst_deinit (); return 0; }