static void on_name_vanished (GDBusConnection *connection, const char *name, gpointer user_data) { queue_finish (GDM_DISPLAY (user_data)); }
static GObject * gdm_display_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties) { GdmDisplay *display; char *canonical_display_name; gboolean res; display = GDM_DISPLAY (G_OBJECT_CLASS (gdm_display_parent_class)->constructor (type, n_construct_properties, construct_properties)); canonical_display_name = g_strdelimit (g_strdup (display->priv->x11_display_name), ":" G_STR_DELIMITERS, '_'); g_free (display->priv->id); display->priv->id = g_strdup_printf ("/org/gnome/DisplayManager/Displays/%s", canonical_display_name); g_free (canonical_display_name); res = register_display (display); if (! res) { g_warning ("Unable to register display with system bus"); } return G_OBJECT (display); }
static void gdm_display_dispose (GObject *object) { GdmDisplay *display; display = GDM_DISPLAY (object); g_debug ("GdmDisplay: Disposing display"); if (display->priv->finish_idle_id > 0) { g_source_remove (display->priv->finish_idle_id); display->priv->finish_idle_id = 0; } if (display->priv->slave_proxy != NULL) { g_object_unref (display->priv->slave_proxy); display->priv->slave_proxy = NULL; } if (display->priv->user_access_file != NULL) { gdm_display_access_file_close (display->priv->user_access_file); g_object_unref (display->priv->user_access_file); display->priv->user_access_file = NULL; } if (display->priv->access_file != NULL) { gdm_display_access_file_close (display->priv->access_file); g_object_unref (display->priv->access_file); display->priv->access_file = NULL; } G_OBJECT_CLASS (gdm_display_parent_class)->dispose (object); }
static void gdm_display_finalize (GObject *object) { GdmDisplay *display; g_return_if_fail (object != NULL); g_return_if_fail (GDM_IS_DISPLAY (object)); display = GDM_DISPLAY (object); g_return_if_fail (display->priv != NULL); g_debug ("GdmDisplay: Finalizing display: %s", display->priv->id); g_free (display->priv->id); g_free (display->priv->seat_id); g_free (display->priv->remote_hostname); g_free (display->priv->x11_display_name); g_free (display->priv->x11_cookie); g_free (display->priv->slave_command); if (display->priv->access_file != NULL) { g_object_unref (display->priv->access_file); } if (display->priv->user_access_file != NULL) { g_object_unref (display->priv->user_access_file); } if (display->priv->slave_timer != NULL) { g_timer_destroy (display->priv->slave_timer); } G_OBJECT_CLASS (gdm_display_parent_class)->finalize (object); }
static gboolean idle_connect_to_display (GdmXdmcpDisplay *self) { gboolean res; self->priv->connection_attempts++; res = gdm_display_connect (GDM_DISPLAY (self)); if (res) { } else { if (self->priv->connection_attempts >= MAX_CONNECT_ATTEMPTS) { g_warning ("Unable to connect to display after %d tries - bailing out", self->priv->connection_attempts); gdm_display_unmanage (GDM_DISPLAY (self)); return FALSE; } return TRUE; } return FALSE; }
static void gdm_display_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { GdmDisplay *self; self = GDM_DISPLAY (object); switch (prop_id) { case PROP_ID: g_value_set_string (value, self->priv->id); break; case PROP_STATUS: g_value_set_int (value, self->priv->status); break; case PROP_SEAT_ID: g_value_set_string (value, self->priv->seat_id); break; case PROP_SESSION_ID: g_value_set_string (value, self->priv->session_id); break; case PROP_REMOTE_HOSTNAME: g_value_set_string (value, self->priv->remote_hostname); break; case PROP_X11_DISPLAY_NUMBER: g_value_set_int (value, self->priv->x11_display_number); break; case PROP_X11_DISPLAY_NAME: g_value_set_string (value, self->priv->x11_display_name); break; case PROP_X11_COOKIE: g_value_set_string (value, self->priv->x11_cookie); break; case PROP_X11_AUTHORITY_FILE: g_value_take_string (value, gdm_display_access_file_get_path (self->priv->access_file)); break; case PROP_IS_LOCAL: g_value_set_boolean (value, self->priv->is_local); break; case PROP_SLAVE_COMMAND: g_value_set_string (value, self->priv->slave_command); break; case PROP_IS_INITIAL: g_value_set_boolean (value, self->priv->is_initial); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static void gdm_display_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GdmDisplay *self; self = GDM_DISPLAY (object); switch (prop_id) { case PROP_ID: _gdm_display_set_id (self, g_value_get_string (value)); break; case PROP_STATUS: _gdm_display_set_status (self, g_value_get_int (value)); break; case PROP_SEAT_ID: _gdm_display_set_seat_id (self, g_value_get_string (value)); break; case PROP_SESSION_ID: _gdm_display_set_session_id (self, g_value_get_string (value)); break; case PROP_REMOTE_HOSTNAME: _gdm_display_set_remote_hostname (self, g_value_get_string (value)); break; case PROP_X11_DISPLAY_NUMBER: _gdm_display_set_x11_display_number (self, g_value_get_int (value)); break; case PROP_X11_DISPLAY_NAME: _gdm_display_set_x11_display_name (self, g_value_get_string (value)); break; case PROP_X11_COOKIE: _gdm_display_set_x11_cookie (self, g_value_get_string (value)); break; case PROP_IS_LOCAL: _gdm_display_set_is_local (self, g_value_get_boolean (value)); break; case PROP_SLAVE_COMMAND: _gdm_display_set_slave_command (self, g_value_get_string (value)); break; case PROP_IS_INITIAL: _gdm_display_set_is_initial (self, g_value_get_boolean (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
GdmDisplay * gdm_xdmcp_display_new (const char *hostname, int number, GdmAddress *address, gint32 session_number) { GObject *object; char *x11_display; x11_display = g_strdup_printf ("%s:%d", hostname, number); object = g_object_new (GDM_TYPE_XDMCP_DISPLAY, "remote-hostname", hostname, "x11-display-number", number, "x11-display-name", x11_display, "is-local", FALSE, "remote-address", address, "session-number", session_number, NULL); g_free (x11_display); return GDM_DISPLAY (object); }
static GObject * gdm_display_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties) { GdmDisplay *display; gboolean res; display = GDM_DISPLAY (G_OBJECT_CLASS (gdm_display_parent_class)->constructor (type, n_construct_properties, construct_properties)); g_free (display->priv->id); display->priv->id = g_strdup_printf ("/org/gnome/DisplayManager/Display%u", get_next_display_serial ()); res = register_display (display); if (! res) { g_warning ("Unable to register display with system bus"); } return G_OBJECT (display); }