diff options
author | Ray Strode <halfline@gmail.com> | 2018-12-25 12:51:17 +0000 |
---|---|---|
committer | Ray Strode <halfline@gmail.com> | 2018-12-25 12:51:17 +0000 |
commit | 35049a4c191bb50c4e688d95c3e5b3068ef6b4a5 (patch) | |
tree | c27d3697776e6cfd0eeac0fc72654f133d0c2d02 | |
parent | 6a7c8e95d7391b9164cc192c879db500665f0893 (diff) | |
parent | 1744dcc9db68c9459d8575675bd4865f51c6539a (diff) | |
download | gdm-35049a4c191bb50c4e688d95c3e5b3068ef6b4a5.tar.gz |
Merge branch 'wip/nielsdg/add-private-deprecated' into 'master'
Get rid of most `g_type_class_add_private` occurrences (and use G_DECLARE_..._TYPE)
See merge request GNOME/gdm!55
44 files changed, 1540 insertions, 1954 deletions
diff --git a/chooser/gdm-chooser-host.c b/chooser/gdm-chooser-host.c index 5b76f652..4c23ffc4 100644 --- a/chooser/gdm-chooser-host.c +++ b/chooser/gdm-chooser-host.c @@ -33,10 +33,10 @@ #include "gdm-address.h" #include "gdm-chooser-host.h" -#define GDM_CHOOSER_HOST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_CHOOSER_HOST, GdmChooserHostPrivate)) - -struct GdmChooserHostPrivate +struct _GdmChooserHost { + GObject parent; + GdmAddress *address; char *description; GdmChooserHostKind kind; @@ -62,7 +62,7 @@ gdm_chooser_host_get_address (GdmChooserHost *host) { g_return_val_if_fail (GDM_IS_CHOOSER_HOST (host), NULL); - return host->priv->address; + return host->address; } G_CONST_RETURN char * @@ -70,7 +70,7 @@ gdm_chooser_host_get_description (GdmChooserHost *host) { g_return_val_if_fail (GDM_IS_CHOOSER_HOST (host), NULL); - return host->priv->description; + return host->description; } GdmChooserHostKind @@ -78,7 +78,7 @@ gdm_chooser_host_get_kind (GdmChooserHost *host) { g_return_val_if_fail (GDM_IS_CHOOSER_HOST (host), 0); - return host->priv->kind; + return host->kind; } gboolean @@ -86,37 +86,37 @@ gdm_chooser_host_get_willing (GdmChooserHost *host) { g_return_val_if_fail (GDM_IS_CHOOSER_HOST (host), FALSE); - return host->priv->willing; + return host->willing; } static void _gdm_chooser_host_set_address (GdmChooserHost *host, GdmAddress *address) { - if (host->priv->address != NULL) { - gdm_address_free (host->priv->address); + if (host->address != NULL) { + gdm_address_free (host->address); } g_assert (address != NULL); gdm_address_debug (address); - host->priv->address = gdm_address_copy (address); + host->address = gdm_address_copy (address); } static void _gdm_chooser_host_set_description (GdmChooserHost *host, const char *description) { - g_free (host->priv->description); - host->priv->description = g_strdup (description); + g_free (host->description); + host->description = g_strdup (description); } static void _gdm_chooser_host_set_kind (GdmChooserHost *host, int kind) { - if (host->priv->kind != kind) { - host->priv->kind = kind; + if (host->kind != kind) { + host->kind = kind; } } @@ -124,8 +124,8 @@ static void _gdm_chooser_host_set_willing (GdmChooserHost *host, gboolean willing) { - if (host->priv->willing != willing) { - host->priv->willing = willing; + if (host->willing != willing) { + host->willing = willing; } } @@ -170,16 +170,16 @@ gdm_chooser_host_get_property (GObject *object, switch (param_id) { case PROP_ADDRESS: - g_value_set_boxed (value, host->priv->address); + g_value_set_boxed (value, host->address); break; case PROP_DESCRIPTION: - g_value_set_string (value, host->priv->description); + g_value_set_string (value, host->description); break; case PROP_KIND: - g_value_set_int (value, host->priv->kind); + g_value_set_int (value, host->kind); break; case PROP_WILLING: - g_value_set_boolean (value, host->priv->willing); + g_value_set_boolean (value, host->willing); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); @@ -228,15 +228,11 @@ gdm_chooser_host_class_init (GdmChooserHostClass *klass) "willing", FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - - - g_type_class_add_private (klass, sizeof (GdmChooserHostPrivate)); } static void gdm_chooser_host_init (GdmChooserHost *widget) { - widget->priv = GDM_CHOOSER_HOST_GET_PRIVATE (widget); } static void @@ -249,10 +245,8 @@ gdm_chooser_host_finalize (GObject *object) host = GDM_CHOOSER_HOST (object); - g_return_if_fail (host->priv != NULL); - - g_free (host->priv->description); - gdm_address_free (host->priv->address); + g_free (host->description); + gdm_address_free (host->address); G_OBJECT_CLASS (gdm_chooser_host_parent_class)->finalize (object); } diff --git a/chooser/gdm-chooser-host.h b/chooser/gdm-chooser-host.h index fda6e9f9..028cccc7 100644 --- a/chooser/gdm-chooser-host.h +++ b/chooser/gdm-chooser-host.h @@ -25,12 +25,8 @@ G_BEGIN_DECLS -#define GDM_TYPE_CHOOSER_HOST (gdm_chooser_host_get_type ()) -#define GDM_CHOOSER_HOST(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_CHOOSER_HOST, GdmChooserHost)) -#define GDM_CHOOSER_HOST_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_CHOOSER_HOST, GdmChooserHostClass)) -#define GDM_IS_CHOOSER_HOST(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_CHOOSER_HOST)) -#define GDM_IS_CHOOSER_HOST_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_CHOOSER_HOST)) -#define GDM_CHOOSER_HOST_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_CHOOSER_HOST, GdmChooserHostClass)) +#define GDM_TYPE_CHOOSER_HOST (gdm_chooser_host_get_type ()) +G_DECLARE_FINAL_TYPE (GdmChooserHost, gdm_chooser_host, GDM, CHOOSER_HOST, GObject) typedef enum { GDM_CHOOSER_HOST_KIND_XDMCP = 1 << 0, @@ -38,21 +34,6 @@ typedef enum { #define GDM_CHOOSER_HOST_KIND_MASK_ALL (GDM_CHOOSER_HOST_KIND_XDMCP) -typedef struct GdmChooserHostPrivate GdmChooserHostPrivate; - -typedef struct -{ - GObject parent; - GdmChooserHostPrivate *priv; -} GdmChooserHost; - -typedef struct -{ - GObjectClass parent_class; -} GdmChooserHostClass; - -GType gdm_chooser_host_get_type (void) G_GNUC_CONST; - G_CONST_RETURN char *gdm_chooser_host_get_description (GdmChooserHost *chooser_host); GdmAddress * gdm_chooser_host_get_address (GdmChooserHost *chooser_host); gboolean gdm_chooser_host_get_willing (GdmChooserHost *chooser_host); diff --git a/chooser/gdm-chooser-session.c b/chooser/gdm-chooser-session.c index dd618b8a..c90403b3 100644 --- a/chooser/gdm-chooser-session.c +++ b/chooser/gdm-chooser-session.c @@ -34,10 +34,10 @@ #include "gdm-host-chooser-dialog.h" -#define GDM_CHOOSER_SESSION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_CHOOSER_SESSION, GdmChooserSessionPrivate)) - -struct GdmChooserSessionPrivate +struct _GdmChooserSession { + GObject parent; + GdmClient *client; GdmRemoteGreeter *remote_greeter; GdmChooser *chooser; @@ -175,7 +175,7 @@ on_dialog_response (GtkDialog *dialog, /* FIXME: fall back to numerical address? */ if (hostname != NULL) { g_debug ("GdmChooserSession: Selected hostname '%s'", hostname); - gdm_chooser_call_select_hostname_sync (session->priv->chooser, + gdm_chooser_call_select_hostname_sync (session->chooser, hostname, NULL, &error); @@ -188,7 +188,7 @@ on_dialog_response (GtkDialog *dialog, } } - gdm_remote_greeter_call_disconnect_sync (session->priv->remote_greeter, + gdm_remote_greeter_call_disconnect_sync (session->remote_greeter, NULL, &error); if (error != NULL) { @@ -202,17 +202,17 @@ gdm_chooser_session_start (GdmChooserSession *session, { g_return_val_if_fail (GDM_IS_CHOOSER_SESSION (session), FALSE); - session->priv->remote_greeter = gdm_client_get_remote_greeter_sync (session->priv->client, + session->remote_greeter = gdm_client_get_remote_greeter_sync (session->client, NULL, error); - if (session->priv->remote_greeter == NULL) { + if (session->remote_greeter == NULL) { return FALSE; } - session->priv->chooser = gdm_client_get_chooser_sync (session->priv->client, + session->chooser = gdm_client_get_chooser_sync (session->client, NULL, error); - if (session->priv->chooser == NULL) { + if (session->chooser == NULL) { return FALSE; } @@ -220,12 +220,12 @@ gdm_chooser_session_start (GdmChooserSession *session, start_window_manager (session); /* Only support XDMCP on remote choosers */ - session->priv->chooser_dialog = gdm_host_chooser_dialog_new (GDM_CHOOSER_HOST_KIND_XDMCP); - g_signal_connect (session->priv->chooser_dialog, + session->chooser_dialog = gdm_host_chooser_dialog_new (GDM_CHOOSER_HOST_KIND_XDMCP); + g_signal_connect (session->chooser_dialog, "response", G_CALLBACK (on_dialog_response), session); - gtk_widget_show (session->priv->chooser_dialog); + gtk_widget_show (session->chooser_dialog); return TRUE; } @@ -295,17 +295,12 @@ gdm_chooser_session_class_init (GdmChooserSessionClass *klass) object_class->constructor = gdm_chooser_session_constructor; object_class->dispose = gdm_chooser_session_dispose; object_class->finalize = gdm_chooser_session_finalize; - - g_type_class_add_private (klass, sizeof (GdmChooserSessionPrivate)); } static void gdm_chooser_session_init (GdmChooserSession *session) { - - session->priv = GDM_CHOOSER_SESSION_GET_PRIVATE (session); - - session->priv->client = gdm_client_new (); + session->client = gdm_client_new (); } static void @@ -318,11 +313,11 @@ gdm_chooser_session_finalize (GObject *object) chooser_session = GDM_CHOOSER_SESSION (object); - g_return_if_fail (chooser_session->priv != NULL); + g_return_if_fail (chooser_session != NULL); - g_clear_object (&chooser_session->priv->chooser); - g_clear_object (&chooser_session->priv->remote_greeter); - g_clear_object (&chooser_session->priv->client); + g_clear_object (&chooser_session->chooser); + g_clear_object (&chooser_session->remote_greeter); + g_clear_object (&chooser_session->client); G_OBJECT_CLASS (gdm_chooser_session_parent_class)->finalize (object); } diff --git a/chooser/gdm-chooser-session.h b/chooser/gdm-chooser-session.h index b6d8ccdf..e86380b5 100644 --- a/chooser/gdm-chooser-session.h +++ b/chooser/gdm-chooser-session.h @@ -25,27 +25,8 @@ G_BEGIN_DECLS -#define GDM_TYPE_CHOOSER_SESSION (gdm_chooser_session_get_type ()) -#define GDM_CHOOSER_SESSION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_CHOOSER_SESSION, GdmChooserSession)) -#define GDM_CHOOSER_SESSION_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_CHOOSER_SESSION, GdmChooserSessionClass)) -#define GDM_IS_CHOOSER_SESSION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_CHOOSER_SESSION)) -#define GDM_IS_CHOOSER_SESSION_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_CHOOSER_SESSION)) -#define GDM_CHOOSER_SESSION_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_CHOOSER_SESSION, GdmChooserSessionClass)) - -typedef struct GdmChooserSessionPrivate GdmChooserSessionPrivate; - -typedef struct -{ - GObject parent; - GdmChooserSessionPrivate *priv; -} GdmChooserSession; - -typedef struct -{ - GObjectClass parent_class; -} GdmChooserSessionClass; - -GType gdm_chooser_session_get_type (void); +#define GDM_TYPE_CHOOSER_SESSION (gdm_chooser_session_get_type ()) +G_DECLARE_FINAL_TYPE (GdmChooserSession, gdm_chooser_session, GDM, CHOOSER_SESSION, GObject) GdmChooserSession * gdm_chooser_session_new (void); diff --git a/chooser/gdm-host-chooser-dialog.c b/chooser/gdm-host-chooser-dialog.c index 1729fd34..288c72ad 100644 --- a/chooser/gdm-host-chooser-dialog.c +++ b/chooser/gdm-host-chooser-dialog.c @@ -33,10 +33,10 @@ #include "gdm-host-chooser-dialog.h" #include "gdm-host-chooser-widget.h" -#define GDM_HOST_CHOOSER_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_HOST_CHOOSER_DIALOG, GdmHostChooserDialogPrivate)) - -struct GdmHostChooserDialogPrivate +struct _GdmHostChooserDialog { + GtkDialog parent; + GtkWidget *chooser_widget; int kind_mask; }; @@ -48,7 +48,6 @@ enum { static void gdm_host_chooser_dialog_class_init (GdmHostChooserDialogClass *klass); static void gdm_host_chooser_dialog_init (GdmHostChooserDialog *host_chooser_dialog); -static void gdm_host_chooser_dialog_finalize (GObject *object); G_DEFINE_TYPE (GdmHostChooserDialog, gdm_host_chooser_dialog, GTK_TYPE_DIALOG) @@ -59,7 +58,7 @@ gdm_host_chooser_dialog_get_host (GdmHostChooserDialog *dialog) g_return_val_if_fail (GDM_IS_HOST_CHOOSER_DIALOG (dialog), NULL); - host = gdm_host_chooser_widget_get_host (GDM_HOST_CHOOSER_WIDGET (dialog->priv->chooser_widget)); + host = gdm_host_chooser_widget_get_host (GDM_HOST_CHOOSER_WIDGET (dialog->chooser_widget)); return host; } @@ -68,8 +67,8 @@ static void _gdm_host_chooser_dialog_set_kind_mask (GdmHostChooserDialog *dialog, int kind_mask) { - if (dialog->priv->kind_mask != kind_mask) { - dialog->priv->kind_mask = kind_mask; + if (dialog->kind_mask != kind_mask) { + dialog->kind_mask = kind_mask; } } @@ -112,7 +111,7 @@ on_response (GdmHostChooserDialog *dialog, { switch (response_id) { case GTK_RESPONSE_APPLY: - gdm_host_chooser_widget_refresh (GDM_HOST_CHOOSER_WIDGET (dialog->priv->chooser_widget)); + gdm_host_chooser_widget_refresh (GDM_HOST_CHOOSER_WIDGET (dialog->chooser_widget)); g_signal_stop_emission_by_name (dialog, "response"); break; default: @@ -132,9 +131,9 @@ gdm_host_chooser_dialog_constructor (GType type, construct_properties)); - dialog->priv->chooser_widget = gdm_host_chooser_widget_new (dialog->priv->kind_mask); - gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), dialog->priv->chooser_widget, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (dialog->priv->chooser_widget), 5); + dialog->chooser_widget = gdm_host_chooser_widget_new (dialog->kind_mask); + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), dialog->chooser_widget, TRUE, TRUE, 0); + gtk_container_set_border_width (GTK_CONTAINER (dialog->chooser_widget), 5); gtk_dialog_add_buttons (GTK_DIALOG (dialog), _("_Refresh"), GTK_RESPONSE_APPLY, @@ -174,7 +173,6 @@ gdm_host_chooser_dialog_class_init (GdmHostChooserDialogClass *klass) object_class->set_property = gdm_host_chooser_dialog_set_property; object_class->constructor = gdm_host_chooser_dialog_constructor; object_class->dispose = gdm_host_chooser_dialog_dispose; - object_class->finalize = gdm_host_chooser_dialog_finalize; g_object_class_install_property (object_class, PROP_KIND_MASK, @@ -185,29 +183,11 @@ gdm_host_chooser_dialog_class_init (GdmHostChooserDialogClass *klass) G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - - g_type_class_add_private (klass, sizeof (GdmHostChooserDialogPrivate)); } static void gdm_host_chooser_dialog_init (GdmHostChooserDialog *dialog) { - dialog->priv = GDM_HOST_CHOOSER_DIALOG_GET_PRIVATE (dialog); -} - -static void -gdm_host_chooser_dialog_finalize (GObject *object) -{ - GdmHostChooserDialog *host_chooser_dialog; - - g_return_if_fail (object != NULL); - g_return_if_fail (GDM_IS_HOST_CHOOSER_DIALOG (object)); - - host_chooser_dialog = GDM_HOST_CHOOSER_DIALOG (object); - - g_return_if_fail (host_chooser_dialog->priv != NULL); - - G_OBJECT_CLASS (gdm_host_chooser_dialog_parent_class)->finalize (object); } GtkWidget * diff --git a/chooser/gdm-host-chooser-dialog.h b/chooser/gdm-host-chooser-dialog.h index f413091b..1c82ff1f 100644 --- a/chooser/gdm-host-chooser-dialog.h +++ b/chooser/gdm-host-chooser-dialog.h @@ -28,26 +28,7 @@ G_BEGIN_DECLS #define GDM_TYPE_HOST_CHOOSER_DIALOG (gdm_host_chooser_dialog_get_type ()) -#define GDM_HOST_CHOOSER_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_HOST_CHOOSER_DIALOG, GdmHostChooserDialog)) -#define GDM_HOST_CHOOSER_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_HOST_CHOOSER_DIALOG, GdmHostChooserDialogClass)) -#define GDM_IS_HOST_CHOOSER_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_HOST_CHOOSER_DIALOG)) -#define GDM_IS_HOST_CHOOSER_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_HOST_CHOOSER_DIALOG)) -#define GDM_HOST_CHOOSER_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_HOST_CHOOSER_DIALOG, GdmHostChooserDialogClass)) - -typedef struct GdmHostChooserDialogPrivate GdmHostChooserDialogPrivate; - -typedef struct -{ - GtkDialog parent; - GdmHostChooserDialogPrivate *priv; -} GdmHostChooserDialog; - -typedef struct -{ - GtkDialogClass parent_class; -} GdmHostChooserDialogClass; - -GType gdm_host_chooser_dialog_get_type (void); +G_DECLARE_FINAL_TYPE (GdmHostChooserDialog, gdm_host_chooser_dialog, GDM, HOST_CHOOSER_DIALOG, GtkDialog) GtkWidget * gdm_host_chooser_dialog_new (int kind_mask); void gdm_host_chooser_dialog_set_kind_mask (GdmHostChooserDialog *dialog, diff --git a/chooser/gdm-host-chooser-widget.c b/chooser/gdm-host-chooser-widget.c index ae12b1aa..f9bacc12 100644 --- a/chooser/gdm-host-chooser-widget.c +++ b/chooser/gdm-host-chooser-widget.c @@ -47,10 +47,10 @@ #include "gdm-chooser-host.h" #include "gdm-host-chooser-widget.h" -#define GDM_HOST_CHOOSER_WIDGET_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_HOST_CHOOSER_WIDGET, GdmHostChooserWidgetPrivate)) - -struct GdmHostChooserWidgetPrivate +struct _GdmHostChooserWidget { + GtkBox parent; + GtkWidget *treeview; int kind_mask; @@ -88,7 +88,6 @@ static guint signals [LAST_SIGNAL] = { 0, }; static void gdm_host_chooser_widget_class_init (GdmHostChooserWidgetClass *klass); static void gdm_host_chooser_widget_init (GdmHostChooserWidget *host_chooser_widget); -static void gdm_host_chooser_widget_finalize (GObject *object); G_DEFINE_TYPE (GdmHostChooserWidget, gdm_host_chooser_widget, GTK_TYPE_BOX) @@ -107,7 +106,7 @@ static void chooser_host_add (GdmHostChooserWidget *widget, GdmChooserHost *host) { - widget->priv->chooser_hosts = g_slist_prepend (widget->priv->chooser_hosts, host); + widget->chooser_hosts = g_slist_prepend (widget->chooser_hosts, host); } #if 0 @@ -115,7 +114,7 @@ static void chooser_host_remove (GdmHostChooserWidget *widget, GdmChooserHost *host) { - widget->priv->chooser_hosts = g_slist_remove (widget->priv->chooser_hosts, host); + widget->chooser_hosts = g_slist_remove (widget->chooser_hosts, host); } #endif @@ -153,7 +152,7 @@ find_known_host (GdmHostChooserWidget *widget, GSList *li; GdmChooserHost *host; - for (li = widget->priv->chooser_hosts; li != NULL; li = li->next) { + for (li = widget->chooser_hosts; li != NULL; li = li->next) { GdmAddress *other_address; host = li->data; @@ -203,7 +202,7 @@ browser_add_host (GdmHostChooserWidget *widget, g_free (name); g_free (desc); - model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget->priv->treeview)); + model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget->treeview)); gtk_list_store_append (GTK_LIST_STORE (model), &iter); gtk_list_store_set (GTK_LIST_STORE (model), @@ -214,7 +213,7 @@ browser_add_host (GdmHostChooserWidget *widget, -1); g_free (label); - selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget->priv->treeview)); + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget->treeview)); if (!gtk_tree_selection_get_selected (selection, NULL, NULL)) { gtk_tree_selection_select_iter (selection, &iter); } @@ -249,7 +248,7 @@ decode_packet (GIOChannel *source, ss_len = (int) sizeof (clnt_ss); - res = XdmcpFill (widget->priv->socket_fd, &buf, (XdmcpNetaddr)&clnt_ss, &ss_len); + res = XdmcpFill (widget->socket_fd, &buf, (XdmcpNetaddr)&clnt_ss, &ss_len); if G_UNLIKELY (! res) { g_debug (_("XDMCP: Could not create XDMCP buffer!")); return TRUE; @@ -339,7 +338,7 @@ do_ping (GdmHostChooserWidget *widget, g_debug ("do ping full:%d", full); - for (l = widget->priv->broadcast_addresses; l != NULL; l = l->next) { + for (l = widget->broadcast_addresses; l != NULL; l = l->next) { GdmAddress *address; int res; @@ -347,9 +346,9 @@ do_ping (GdmHostChooserWidget *widget, gdm_address_debug (address); errno = 0; - g_debug ("fd:%d", widget->priv->socket_fd); - res = XdmcpFlush (widget->priv->socket_fd, - &widget->priv->broadcast_buf, + g_debug ("fd:%d", widget->socket_fd); + res = XdmcpFlush (widget->socket_fd, + &widget->broadcast_buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), (int)gdm_sockaddr_len (gdm_address_peek_sockaddr_storage (address))); @@ -359,15 +358,15 @@ do_ping (GdmHostChooserWidget *widget, } if (full) { - for (l = widget->priv->query_addresses; l != NULL; l = l->next) { + for (l = widget->query_addresses; l != NULL; l = l->next) { GdmAddress *address; int res; address = l->data; gdm_address_debug (address); - res = XdmcpFlush (widget->priv->socket_fd, - &widget->priv->query_buf, + res = XdmcpFlush (widget->socket_fd, + &widget->query_buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), (int)gdm_sockaddr_len (gdm_address_peek_sockaddr_storage (address))); if (! res) { @@ -382,10 +381,10 @@ ping_try (GdmHostChooserWidget *widget) { do_ping (widget, FALSE); - widget->priv->ping_tries --; + widget->ping_tries --; - if (widget->priv->ping_tries <= 0) { - widget->priv->ping_try_id = 0; + if (widget->ping_tries <= 0) { + widget->ping_try_id = 0; return FALSE; } else { return TRUE; @@ -415,23 +414,23 @@ xdmcp_discover (GdmHostChooserWidget *widget) do_ping (widget, TRUE); #if 0 - if (widget->priv->scan_time_id > 0) { - g_source_remove (widget->priv->scan_time_id); + if (widget->scan_time_id > 0) { + g_source_remove (widget->scan_time_id); } - widget->priv->scan_time_id = g_timeout_add_seconds (SCAN_TIMEOUT, + widget->scan_time_id = g_timeout_add_seconds (SCAN_TIMEOUT, chooser_scan_time_update, widget); #endif /* Note we already used up one try */ - widget->priv->ping_tries = PING_TRIES - 1; - if (widget->priv->ping_try_id > 0) { - g_source_remove (widget->priv->ping_try_id); + widget->ping_tries = PING_TRIES - 1; + if (widget->ping_try_id > 0) { + g_source_remove (widget->ping_try_id); } - widget->priv->ping_try_id = g_timeout_add_seconds (PING_TIMEOUT, - (GSourceFunc)ping_try, - widget); + widget->ping_try_id = g_timeout_add_seconds (PING_TIMEOUT, + (GSourceFunc)ping_try, + widget); } /* Find broadcast address for all active, non pointopoint interfaces */ @@ -501,7 +500,7 @@ find_broadcast_addresses (GdmHostChooserWidget *widget) g_debug ("Adding if %s", name); gdm_address_debug (address); - widget->priv->broadcast_addresses = g_slist_append (widget->priv->broadcast_addresses, address); + widget->broadcast_addresses = g_slist_append (widget->broadcast_addresses, address); } } } @@ -515,7 +514,7 @@ add_hosts (GdmHostChooserWidget *widget) { int i; - for (i = 0; widget->priv->hosts != NULL && widget->priv->hosts[i] != NULL; i++) { + for (i = 0; widget->hosts != NULL && widget->hosts[i] != NULL; i++) { struct addrinfo hints; struct addrinfo *result; struct addrinfo *ai; @@ -524,7 +523,7 @@ add_hosts (GdmHostChooserWidget *widget) char serv_buf [NI_MAXSERV]; const char *serv; - name = widget->priv->hosts[i]; + name = widget->hosts[i]; if (strcmp (name, "BROADCAST") == 0) { find_broadcast_addresses (widget); @@ -554,14 +553,14 @@ add_hosts (GdmHostChooserWidget *widget) address = gdm_address_new_from_sockaddr (ai->ai_addr, ai->ai_addrlen); if (address != NULL) { - widget->priv->query_addresses = g_slist_append (widget->priv->query_addresses, address); + widget->query_addresses = g_slist_append (widget->query_addresses, address); } } freeaddrinfo (result); } - if (widget->priv->broadcast_addresses == NULL && widget->priv->query_addresses == NULL) { + if (widget->broadcast_addresses == NULL && widget->query_addresses == NULL) { find_broadcast_addresses (widget); } } @@ -577,30 +576,30 @@ xdmcp_init (GdmHostChooserWidget *widget) sockopts = 1; - widget->priv->socket_fd = -1; + widget->socket_fd = -1; /* Open socket for communication */ #ifdef ENABLE_IPV6 - widget->priv->socket_fd = socket (AF_INET6, SOCK_DGRAM, 0); - if (widget->priv->socket_fd != -1) { - widget->priv->have_ipv6 = TRUE; + widget->socket_fd = socket (AF_INET6, SOCK_DGRAM, 0); + if (widget->socket_fd != -1) { + widget->have_ipv6 = TRUE; #ifdef IPV6_V6ONLY { int zero = 0; - if (setsockopt(widget->priv->socket_fd, IPPROTO_IPV6, IPV6_V6ONLY, &zero, sizeof(zero)) < 0) + if (setsockopt(widget->socket_fd, IPPROTO_IPV6, IPV6_V6ONLY, &zero, sizeof(zero)) < 0) g_warning("setsockopt(IPV6_V6ONLY): %s", g_strerror(errno)); } #endif } #endif - if (! widget->priv->have_ipv6) { - widget->priv->socket_fd = socket (AF_INET, SOCK_DGRAM, 0); - if (widget->priv->socket_fd == -1) { + if (! widget->have_ipv6) { + widget->socket_fd = socket (AF_INET, SOCK_DGRAM, 0); + if (widget->socket_fd == -1) { g_critical ("Could not create socket!"); } } - res = setsockopt (widget->priv->socket_fd, + res = setsockopt (widget->socket_fd, SOL_SOCKET, SO_BROADCAST, (char *) &sockopts, @@ -615,27 +614,27 @@ xdmcp_init (GdmHostChooserWidget *widget) header.length = 1; header.version = XDM_PROTOCOL_VERSION; aanames.length = 0; - XdmcpWriteHeader (&widget->priv->broadcast_buf, &header); - XdmcpWriteARRAYofARRAY8 (&widget->priv->broadcast_buf, &aanames); + XdmcpWriteHeader (&widget->broadcast_buf, &header); + XdmcpWriteARRAYofARRAY8 (&widget->broadcast_buf, &aanames); /* Assemble XDMCP QUERY packet in static buffer */ memset (&header, 0, sizeof (XdmcpHeader)); header.opcode = (CARD16) QUERY; header.length = 1; header.version = XDM_PROTOCOL_VERSION; - memset (&widget->priv->query_buf, 0, sizeof (XdmcpBuffer)); - XdmcpWriteHeader (&widget->priv->query_buf, &header); - XdmcpWriteARRAYofARRAY8 (&widget->priv->query_buf, &aanames); + memset (&widget->query_buf, 0, sizeof (XdmcpBuffer)); + XdmcpWriteHeader (&widget->query_buf, &header); + XdmcpWriteARRAYofARRAY8 (&widget->query_buf, &aanames); add_hosts (widget); - ioc = g_io_channel_unix_new (widget->priv->socket_fd); + ioc = g_io_channel_unix_new (widget->socket_fd); g_io_channel_set_encoding (ioc, NULL, NULL); g_io_channel_set_buffered (ioc, FALSE); - widget->priv->io_watch_id = g_io_add_watch (ioc, - G_IO_IN | G_IO_PRI | G_IO_ERR | G_IO_HUP | G_IO_NVAL, - (GIOFunc)decode_packet, - widget); + widget->io_watch_id = g_io_add_watch (ioc, + G_IO_IN | G_IO_PRI | G_IO_ERR | G_IO_HUP | G_IO_NVAL, + (GIOFunc)decode_packet, + widget); g_io_channel_unref (ioc); } @@ -655,8 +654,8 @@ gdm_host_chooser_widget_get_host (GdmHostChooserWidget *widget) g_return_val_if_fail (GDM_IS_HOST_CHOOSER_WIDGET (widget), NULL); host = NULL; - if (widget->priv->current_host != NULL) { - host = g_object_ref (widget->priv->current_host); + if (widget->current_host != NULL) { + host = g_object_ref (widget->current_host); } return host; @@ -666,8 +665,8 @@ static void _gdm_host_chooser_widget_set_kind_mask (GdmHostChooserWidget *widget, int kind_mask) { - if (widget->priv->kind_mask != kind_mask) { - widget->priv->kind_mask = kind_mask; + if (widget->kind_mask != kind_mask) { + widget->kind_mask = kind_mask; } } @@ -730,29 +729,29 @@ gdm_host_chooser_widget_dispose (GObject *object) g_debug ("Disposing host_chooser_widget"); - if (widget->priv->broadcast_addresses != NULL) { - g_slist_foreach (widget->priv->broadcast_addresses, + if (widget->broadcast_addresses != NULL) { + g_slist_foreach (widget->broadcast_addresses, (GFunc)gdm_address_free, NULL); - g_slist_free (widget->priv->broadcast_addresses); - widget->priv->broadcast_addresses = NULL; + g_slist_free (widget->broadcast_addresses); + widget->broadcast_addresses = NULL; } - if (widget->priv->query_addresses != NULL) { - g_slist_foreach (widget->priv->query_addresses, + if (widget->query_addresses != NULL) { + g_slist_foreach (widget->query_addresses, (GFunc)gdm_address_free, NULL); - g_slist_free (widget->priv->query_addresses); - widget->priv->query_addresses = NULL; + g_slist_free (widget->query_addresses); + widget->query_addresses = NULL; } - if (widget->priv->chooser_hosts != NULL) { - g_slist_foreach (widget->priv->chooser_hosts, + if (widget->chooser_hosts != NULL) { + g_slist_foreach (widget->chooser_hosts, (GFunc)g_object_unref, NULL); - g_slist_free (widget->priv->chooser_hosts); - widget->priv->chooser_hosts = NULL; + g_slist_free (widget->chooser_hosts); + widget->chooser_hosts = NULL; } - widget->priv->current_host = NULL; + widget->current_host = NULL; G_OBJECT_CLASS (gdm_host_chooser_widget_parent_class)->dispose (object); } @@ -766,7 +765,6 @@ gdm_host_chooser_widget_class_init (GdmHostChooserWidgetClass *klass) object_class->set_property = gdm_host_chooser_widget_set_property; object_class->constructor = gdm_host_chooser_widget_constructor; object_class->dispose = gdm_host_chooser_widget_dispose; - object_class->finalize = gdm_host_chooser_widget_finalize; g_object_class_install_property (object_class, PROP_KIND_MASK, @@ -781,14 +779,12 @@ gdm_host_chooser_widget_class_init (GdmHostChooserWidgetClass *klass) signals [HOST_ACTIVATED] = g_signal_new ("host-activated", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GdmHostChooserWidgetClass, host_activated), + 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); - - g_type_class_add_private (klass, sizeof (GdmHostChooserWidgetPrivate)); } static void @@ -805,7 +801,7 @@ on_host_selected (GtkTreeSelection *selection, gtk_tree_model_get (model, &iter, CHOOSER_LIST_HOST_COLUMN, &curhost, -1); } - widget->priv->current_host = curhost; + widget->current_host = curhost; } static void @@ -825,8 +821,6 @@ gdm_host_chooser_widget_init (GdmHostChooserWidget *widget) GtkTreeViewColumn *column; GtkTreeModel *model; - widget->priv = GDM_HOST_CHOOSER_WIDGET_GET_PRIVATE (widget); - scrolled = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled), GTK_SHADOW_IN); @@ -834,15 +828,15 @@ gdm_host_chooser_widget_init (GdmHostChooserWidget *widget) GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (widget), scrolled, TRUE, TRUE, 0); - widget->priv->treeview = gtk_tree_view_new (); - gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (widget->priv->treeview), FALSE); - g_signal_connect (widget->priv->treeview, + widget->treeview = gtk_tree_view_new (); + gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (widget->treeview), FALSE); + g_signal_connect (widget->treeview, "row-activated", G_CALLBACK (on_row_activated), widget); - gtk_container_add (GTK_CONTAINER (scrolled), widget->priv->treeview); + gtk_container_add (GTK_CONTAINER (scrolled), widget->treeview); - selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget->priv->treeview)); + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget->treeview)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE); g_signal_connect (selection, "changed", G_CALLBACK (on_host_selected), @@ -852,46 +846,32 @@ gdm_host_chooser_widget_init (GdmHostChooserWidget *widget) GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER); - gtk_tree_view_set_model (GTK_TREE_VIEW (widget->priv->treeview), model); + gtk_tree_view_set_model (GTK_TREE_VIEW (widget->treeview), model); column = gtk_tree_view_column_new_with_attributes ("Icon", gtk_cell_renderer_pixbuf_new (), "pixbuf", CHOOSER_LIST_ICON_COLUMN, NULL); - gtk_tree_view_append_column (GTK_TREE_VIEW (widget->priv->treeview), column); + gtk_tree_view_append_column (GTK_TREE_VIEW (widget->treeview), column); column = gtk_tree_view_column_new_with_attributes ("Hostname", gtk_cell_renderer_text_new (), "markup", CHOOSER_LIST_LABEL_COLUMN, NULL); - gtk_tree_view_append_column (GTK_TREE_VIEW (widget->priv->treeview), column); + gtk_tree_view_append_column (GTK_TREE_VIEW (widget->treeview), column); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model), CHOOSER_LIST_LABEL_COLUMN, GTK_SORT_ASCENDING); } -static void -gdm_host_chooser_widget_finalize (GObject *object) -{ - GdmHostChooserWidget *host_chooser_widget; - - g_return_if_fail (object != NULL); - g_return_if_fail (GDM_IS_HOST_CHOOSER_WIDGET (object)); - - host_chooser_widget = GDM_HOST_CHOOSER_WIDGET (object); - - g_return_if_fail (host_chooser_widget->priv != NULL); - - G_OBJECT_CLASS (gdm_host_chooser_widget_parent_class)->finalize (object); -} - GtkWidget * gdm_host_chooser_widget_new (int kind_mask) { GObject *object; object = g_object_new (GDM_TYPE_HOST_CHOOSER_WIDGET, + "orientation", GTK_ORIENTATION_VERTICAL, "kind-mask", kind_mask, NULL); diff --git a/chooser/gdm-host-chooser-widget.h b/chooser/gdm-host-chooser-widget.h index 739eac01..48ce4194 100644 --- a/chooser/gdm-host-chooser-widget.h +++ b/chooser/gdm-host-chooser-widget.h @@ -27,30 +27,9 @@ G_BEGIN_DECLS -#define GDM_TYPE_HOST_CHOOSER_WIDGET (gdm_host_chooser_widget_get_type ()) -#define GDM_HOST_CHOOSER_WIDGET(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_HOST_CHOOSER_WIDGET, GdmHostChooserWidget)) -#define GDM_HOST_CHOOSER_WIDGET_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_HOST_CHOOSER_WIDGET, GdmHostChooserWidgetClass)) -#define GDM_IS_HOST_CHOOSER_WIDGET(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_HOST_CHOOSER_WIDGET)) -#define GDM_IS_HOST_CHOOSER_WIDGET_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_HOST_CHOOSER_WIDGET)) -#define GDM_HOST_CHOOSER_WIDGET_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_HOST_CHOOSER_WIDGET, GdmHostChooserWidgetClass)) +#define GDM_TYPE_HOST_CHOOSER_WIDGET (gdm_host_chooser_widget_get_type ()) +G_DECLARE_FINAL_TYPE (GdmHostChooserWidget, gdm_host_chooser_widget, GDM, HOST_CHOOSER_WIDGET, GtkBox) -typedef struct GdmHostChooserWidgetPrivate GdmHostChooserWidgetPrivate; - -typedef struct -{ - GtkVBox parent; - GdmHostChooserWidgetPrivate *priv; -} GdmHostChooserWidget; - -typedef struct -{ - GtkVBoxClass parent_class; - - /* signals */ - void (* host_activated) (GdmHostChooserWidget *widget); -} GdmHostChooserWidgetClass; - -GType gdm_host_chooser_widget_get_type (void); GtkWidget * gdm_host_chooser_widget_new (int kind_mask); void gdm_host_chooser_widget_set_kind_mask (GdmHostChooserWidget *widget, diff --git a/common/gdm-settings-backend.c b/common/gdm-settings-backend.c index 9b4392fa..5ad30222 100644 --- a/common/gdm-settings-backend.c +++ b/common/gdm-settings-backend.c @@ -35,13 +35,6 @@ #include "gdm-settings-backend.h" -#define GDM_SETTINGS_BACKEND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_SETTINGS_BACKEND, GdmSettingsBackendPrivate)) - -struct GdmSettingsBackendPrivate -{ - gpointer dummy; -}; - enum { VALUE_CHANGED, LAST_SIGNAL @@ -156,27 +149,17 @@ gdm_settings_backend_class_init (GdmSettingsBackendClass *klass) G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); - - g_type_class_add_private (klass, sizeof (GdmSettingsBackendPrivate)); } static void gdm_settings_backend_init (GdmSettingsBackend *settings_backend) { - settings_backend->priv = GDM_SETTINGS_BACKEND_GET_PRIVATE (settings_backend); } static void gdm_settings_backend_finalize (GObject *object) { - GdmSettingsBackend *settings_backend; - - g_return_if_fail (object != NULL); g_return_if_fail (GDM_IS_SETTINGS_BACKEND (object)); - settings_backend = GDM_SETTINGS_BACKEND (object); - - g_return_if_fail (settings_backend->priv != NULL); - G_OBJECT_CLASS (gdm_settings_backend_parent_class)->finalize (object); } diff --git a/common/gdm-settings-backend.h b/common/gdm-settings-backend.h index 199b26b2..34996902 100644 --- a/common/gdm-settings-backend.h +++ b/common/gdm-settings-backend.h @@ -26,22 +26,10 @@ G_BEGIN_DECLS -#define GDM_TYPE_SETTINGS_BACKEND (gdm_settings_backend_get_type ()) -#define GDM_SETTINGS_BACKEND(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_SETTINGS_BACKEND, GdmSettingsBackend)) -#define GDM_SETTINGS_BACKEND_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_SETTINGS_BACKEND, GdmSettingsBackendClass)) -#define GDM_IS_SETTINGS_BACKEND(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_SETTINGS_BACKEND)) -#define GDM_IS_SETTINGS_BACKEND_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_SETTINGS_BACKEND)) -#define GDM_SETTINGS_BACKEND_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_SETTINGS_BACKEND, GdmSettingsBackendClass)) +#define GDM_TYPE_SETTINGS_BACKEND (gdm_settings_backend_get_type ()) +G_DECLARE_DERIVABLE_TYPE (GdmSettingsBackend, gdm_settings_backend, GDM, SETTINGS_BACKEND, GObject) -typedef struct GdmSettingsBackendPrivate GdmSettingsBackendPrivate; - -typedef struct -{ - GObject parent; - GdmSettingsBackendPrivate *priv; -} GdmSettingsBackend; - -typedef struct +struct _GdmSettingsBackendClass { GObjectClass parent_class; @@ -60,7 +48,7 @@ typedef struct const char *key, const char *old_value, const char **new_value); -} GdmSettingsBackendClass; +}; typedef enum { @@ -71,7 +59,6 @@ typedef enum #define GDM_SETTINGS_BACKEND_ERROR gdm_settings_backend_error_quark () GQuark gdm_settings_backend_error_quark (void); -GType gdm_settings_backend_get_type (void); gboolean gdm_settings_backend_get_value (GdmSettingsBackend *settings_backend, const char *key, diff --git a/common/gdm-settings-desktop-backend.c b/common/gdm-settings-desktop-backend.c index 8bb70426..5afe8fbc 100644 --- a/common/gdm-settings-desktop-backend.c +++ b/common/gdm-settings-desktop-backend.c @@ -36,10 +36,10 @@ #include "gdm-settings-desktop-backend.h" -#define GDM_SETTINGS_DESKTOP_BACKEND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_SETTINGS_DESKTOP_BACKEND, GdmSettingsDesktopBackendPrivate)) - -struct GdmSettingsDesktopBackendPrivate +struct _GdmSettingsDesktopBackend { + GdmSettingsBackend parent; + char *filename; GKeyFile *key_file; gboolean dirty; @@ -65,26 +65,24 @@ _gdm_settings_desktop_backend_set_file_name (GdmSettingsDesktopBackend *backend, GError *error; char *contents; - backend->priv = GDM_SETTINGS_DESKTOP_BACKEND_GET_PRIVATE (backend); - - g_free (backend->priv->filename); - backend->priv->filename = g_strdup (filename); + g_free (backend->filename); + backend->filename = g_strdup (filename); - backend->priv->key_file = g_key_file_new (); + backend->key_file = g_key_file_new (); error = NULL; - res = g_key_file_load_from_file (backend->priv->key_file, - backend->priv->filename, + res = g_key_file_load_from_file (backend->key_file, + backend->filename, G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS, &error); if (! res) { - g_warning ("Unable to load file '%s': %s", backend->priv->filename, error->message); + g_warning ("Unable to load file '%s': %s", backend->filename, error->message); } - contents = g_key_file_to_data (backend->priv->key_file, NULL, NULL); + contents = g_key_file_to_data (backend->key_file, NULL, NULL); if (contents != NULL) { - g_debug ("GdmSettings: %s is:\n%s\n", backend->priv->filename, contents); + g_debug ("GdmSettings: %s is:\n%s\n", backend->filename, contents); g_free (contents); } @@ -122,7 +120,7 @@ gdm_settings_desktop_backend_get_property (GObject *object, switch (prop_id) { case PROP_FILENAME: - g_value_set_string (value, self->priv->filename); + g_value_set_string (value, self->filename); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -249,7 +247,7 @@ gdm_settings_desktop_backend_get_value (GdmSettingsBackend *backend, /*g_debug ("Getting key: %s %s %s", g, k, l);*/ local_error = NULL; - val = g_key_file_get_value (GDM_SETTINGS_DESKTOP_BACKEND (backend)->priv->key_file, + val = g_key_file_get_value (GDM_SETTINGS_DESKTOP_BACKEND (backend)->key_file, g, k, &local_error); @@ -279,14 +277,14 @@ save_settings (GdmSettingsDesktopBackend *backend) char *contents; gsize length; - if (! backend->priv->dirty) { + if (! backend->dirty) { return; } - g_debug ("Saving settings to %s", backend->priv->filename); + g_debug ("Saving settings to %s", backend->filename); local_error = NULL; - contents = g_key_file_to_data (backend->priv->key_file, &length, &local_error); + contents = g_key_file_to_data (backend->key_file, &length, &local_error); if (local_error != NULL) { g_warning ("Unable to save settings: %s", local_error->message); g_error_free (local_error); @@ -294,7 +292,7 @@ save_settings (GdmSettingsDesktopBackend *backend) } local_error = NULL; - g_file_set_contents (backend->priv->filename, + g_file_set_contents (backend->filename, contents, length, &local_error); @@ -307,30 +305,30 @@ save_settings (GdmSettingsDesktopBackend *backend) g_free (contents); - backend->priv->dirty = FALSE; + backend->dirty = FALSE; } static gboolean save_settings_timer (GdmSettingsDesktopBackend *backend) { save_settings (backend); - backend->priv->save_id = 0; + backend->save_id = 0; return FALSE; } static void queue_save (GdmSettingsDesktopBackend *backend) { - if (! backend->priv->dirty) { + if (! backend->dirty) { return; } - if (backend->priv->save_id != 0) { + if (backend->save_id != 0) { /* already pending */ return; } - backend->priv->save_id = g_timeout_add_seconds (5, (GSourceFunc)save_settings_timer, backend); + backend->save_id = g_timeout_add_seconds (5, (GSourceFunc)save_settings_timer, backend); } static gboolean @@ -355,7 +353,7 @@ gdm_settings_desktop_backend_set_value (GdmSettingsBackend *backend, } local_error = NULL; - old_val = g_key_file_get_value (GDM_SETTINGS_DESKTOP_BACKEND (backend)->priv->key_file, + old_val = g_key_file_get_value (GDM_SETTINGS_DESKTOP_BACKEND (backend)->key_file, g, k, &local_error); @@ -365,12 +363,12 @@ gdm_settings_desktop_backend_set_value (GdmSettingsBackend *backend, /*g_debug ("Setting key: %s %s %s", g, k, l);*/ local_error = NULL; - g_key_file_set_value (GDM_SETTINGS_DESKTOP_BACKEND (backend)->priv->key_file, + g_key_file_set_value (GDM_SETTINGS_DESKTOP_BACKEND (backend)->key_file, g, k, value); - GDM_SETTINGS_DESKTOP_BACKEND (backend)->priv->dirty = TRUE; + GDM_SETTINGS_DESKTOP_BACKEND (backend)->dirty = TRUE; queue_save (GDM_SETTINGS_DESKTOP_BACKEND (backend)); gdm_settings_backend_value_changed (backend, key, old_val, value); @@ -393,8 +391,6 @@ gdm_settings_desktop_backend_class_init (GdmSettingsDesktopBackendClass *klass) backend_class->get_value = gdm_settings_desktop_backend_get_value; backend_class->set_value = gdm_settings_desktop_backend_set_value; - g_type_class_add_private (klass, sizeof (GdmSettingsDesktopBackendPrivate)); - g_object_class_install_property (object_class, PROP_FILENAME, g_param_spec_string ("filename", @@ -419,11 +415,9 @@ gdm_settings_desktop_backend_finalize (GObject *object) backend = GDM_SETTINGS_DESKTOP_BACKEND (object); - g_return_if_fail (backend->priv != NULL); - save_settings (backend); - g_key_file_free (backend->priv->key_file); - g_free (backend->priv->filename); + g_key_file_free (backend->key_file); + g_free (backend->filename); G_OBJECT_CLASS (gdm_settings_desktop_backend_parent_class)->finalize (object); } diff --git a/common/gdm-settings-desktop-backend.h b/common/gdm-settings-desktop-backend.h index 9fb094b4..419fe225 100644 --- a/common/gdm-settings-desktop-backend.h +++ b/common/gdm-settings-desktop-backend.h @@ -27,27 +27,8 @@ G_BEGIN_DECLS -#define GDM_TYPE_SETTINGS_DESKTOP_BACKEND (gdm_settings_desktop_backend_get_type ()) -#define GDM_SETTINGS_DESKTOP_BACKEND(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_SETTINGS_DESKTOP_BACKEND, GdmSettingsDesktopBackend)) -#define GDM_SETTINGS_DESKTOP_BACKEND_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_SETTINGS_DESKTOP_BACKEND, GdmSettingsDesktopBackendClass)) -#define GDM_IS_SETTINGS_DESKTOP_BACKEND(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_SETTINGS_DESKTOP_BACKEND)) -#define GDM_IS_SETTINGS_DESKTOP_BACKEND_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_SETTINGS_DESKTOP_BACKEND)) -#define GDM_SETTINGS_DESKTOP_BACKEND_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_SETTINGS_DESKTOP_BACKEND, GdmSettingsDesktopBackendClass)) - -typedef struct GdmSettingsDesktopBackendPrivate GdmSettingsDesktopBackendPrivate; - -typedef struct -{ - GdmSettingsBackend parent; - GdmSettingsDesktopBackendPrivate *priv; -} GdmSettingsDesktopBackend; - -typedef struct -{ - GdmSettingsBackendClass parent_class; -} GdmSettingsDesktopBackendClass; - -GType gdm_settings_desktop_backend_get_type (void); +#define GDM_TYPE_SETTINGS_DESKTOP_BACKEND (gdm_settings_desktop_backend_get_type ()) +G_DECLARE_FINAL_TYPE (GdmSettingsDesktopBackend, gdm_settings_desktop_backend, GDM, SETTINGS_DESKTOP_BACKEND, GdmSettingsBackend) GdmSettingsBackend *gdm_settings_desktop_backend_new (const char* filename); diff --git a/common/gdm-settings.c b/common/gdm-settings.c index cebbef25..e6f46ec3 100644 --- a/common/gdm-settings.c +++ b/common/gdm-settings.c @@ -39,11 +39,11 @@ #include "gdm-settings-desktop-backend.h" -#define GDM_SETTINGS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_SETTINGS, GdmSettingsPrivate)) - -struct GdmSettingsPrivate +struct _GdmSettings { - GList *backends; + GObject parent; + + GList *backends; }; enum { @@ -87,7 +87,7 @@ gdm_settings_get_value (GdmSettings *settings, local_error = NULL; - for (l = settings->priv->backends; l; l = g_list_next (l)) { + for (l = settings->backends; l; l = g_list_next (l)) { GdmSettingsBackend *backend = l->data; if (local_error) { @@ -126,7 +126,7 @@ gdm_settings_set_value (GdmSettings *settings, local_error = NULL; - for (l = settings->priv->backends; l; l = g_list_next (l)) { + for (l = settings->backends; l; l = g_list_next (l)) { GdmSettingsBackend *backend = l->data; if (local_error) { @@ -160,7 +160,7 @@ gdm_settings_class_init (GdmSettingsClass *klass) g_signal_new ("value-changed", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GdmSettingsClass, value_changed), + 0, NULL, NULL, g_cclosure_marshal_generic, @@ -169,8 +169,6 @@ gdm_settings_class_init (GdmSettingsClass *klass) G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); - - g_type_class_add_private (klass, sizeof (GdmSettingsPrivate)); } static void @@ -192,17 +190,15 @@ gdm_settings_init (GdmSettings *settings) GList *l; GdmSettingsBackend *backend; - settings->priv = GDM_SETTINGS_GET_PRIVATE (settings); - backend = gdm_settings_desktop_backend_new (GDM_CUSTOM_CONF); if (backend) - settings->priv->backends = g_list_prepend (NULL, backend); + settings->backends = g_list_prepend (NULL, backend); backend = gdm_settings_desktop_backend_new (GDM_RUNTIME_CONF); if (backend) - settings->priv->backends = g_list_prepend (settings->priv->backends, backend); + settings->backends = g_list_prepend (settings->backends, backend); - for (l = settings->priv->backends; l; l = g_list_next (l)) { + for (l = settings->backends; l; l = g_list_next (l)) { backend = l->data; g_signal_connect (backend, @@ -222,11 +218,11 @@ gdm_settings_finalize (GObject *object) settings = GDM_SETTINGS (object); - g_return_if_fail (settings->priv != NULL); + g_return_if_fail (settings != NULL); - g_list_foreach (settings->priv->backends, (GFunc) g_object_unref, NULL); - g_list_free (settings->priv->backends); - settings->priv->backends = NULL; + g_list_foreach (settings->backends, (GFunc) g_object_unref, NULL); + g_list_free (settings->backends); + settings->backends = NULL; settings_object = NULL; diff --git a/common/gdm-settings.h b/common/gdm-settings.h index 7ffb4aab..786868a9 100644 --- a/common/gdm-settings.h +++ b/common/gdm-settings.h @@ -26,30 +26,8 @@ G_BEGIN_DECLS -#define GDM_TYPE_SETTINGS (gdm_settings_get_type ()) -#define GDM_SETTINGS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_SETTINGS, GdmSettings)) -#define GDM_SETTINGS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_SETTINGS, GdmSettingsClass)) -#define GDM_IS_SETTINGS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_SETTINGS)) -#define GDM_IS_SETTINGS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_SETTINGS)) -#define GDM_SETTINGS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_SETTINGS, GdmSettingsClass)) - -typedef struct GdmSettingsPrivate GdmSettingsPrivate; - -typedef struct -{ - GObject parent; - GdmSettingsPrivate *priv; -} GdmSettings; - -typedef struct -{ - GObjectClass parent_class; - - void (* value_changed) (GdmSettings *settings, - const char *key, - const char *old_value, - const char **new_value); -} GdmSettingsClass; +#define GDM_TYPE_SETTINGS (gdm_settings_get_type ()) +G_DECLARE_FINAL_TYPE (GdmSettings, gdm_settings, GDM, SETTINGS, GObject) typedef enum { @@ -60,7 +38,6 @@ typedef enum #define GDM_SETTINGS_ERROR gdm_settings_error_quark () GQuark gdm_settings_error_quark (void); -GType gdm_settings_get_type (void); GdmSettings * gdm_settings_new (void); diff --git a/daemon/gdm-display-access-file.c b/daemon/gdm-display-access-file.c index 311b9461..87e523e9 100644 --- a/daemon/gdm-display-access-file.c +++ b/daemon/gdm-display-access-file.c @@ -41,8 +41,10 @@ #include "gdm-display-access-file.h" #include "gdm-common.h" -struct _GdmDisplayAccessFilePrivate +struct _GdmDisplayAccessFile { + GObject parent; + char *username; FILE *fp; char *path; @@ -79,11 +81,11 @@ gdm_display_access_file_get_property (GObject *object, switch (prop_id) { case PROP_USERNAME: - g_value_set_string (value, access_file->priv->username); + g_value_set_string (value, access_file->username); break; case PROP_PATH: - g_value_set_string (value, access_file->priv->path); + g_value_set_string (value, access_file->path); break; default: @@ -103,8 +105,8 @@ gdm_display_access_file_set_property (GObject *object, switch (prop_id) { case PROP_USERNAME: - g_assert (access_file->priv->username == NULL); - access_file->priv->username = g_value_dup_string (value); + g_assert (access_file->username == NULL); + access_file->username = g_value_dup_string (value); break; default: @@ -136,15 +138,11 @@ gdm_display_access_file_class_init (GdmDisplayAccessFileClass *access_file_class NULL, G_PARAM_READABLE); g_object_class_install_property (object_class, PROP_PATH, param_spec); - g_type_class_add_private (access_file_class, sizeof (GdmDisplayAccessFilePrivate)); } static void gdm_display_access_file_init (GdmDisplayAccessFile *access_file) { - access_file->priv = G_TYPE_INSTANCE_GET_PRIVATE (access_file, - GDM_TYPE_DISPLAY_ACCESS_FILE, - GdmDisplayAccessFilePrivate); } static void @@ -156,14 +154,14 @@ gdm_display_access_file_finalize (GObject *object) file = GDM_DISPLAY_ACCESS_FILE (object); parent_class = G_OBJECT_CLASS (gdm_display_access_file_parent_class); - if (file->priv->fp != NULL) { + if (file->fp != NULL) { gdm_display_access_file_close (file); } - g_assert (file->priv->path == NULL); + g_assert (file->path == NULL); - if (file->priv->username != NULL) { - g_free (file->priv->username); - file->priv->username = NULL; + if (file->username != NULL) { + g_free (file->username); + file->username = NULL; g_object_notify (object, "username"); } @@ -405,15 +403,15 @@ gdm_display_access_file_open (GdmDisplayAccessFile *file, GError *create_error; g_return_val_if_fail (file != NULL, FALSE); - g_return_val_if_fail (file->priv->fp == NULL, FALSE); - g_return_val_if_fail (file->priv->path == NULL, FALSE); + g_return_val_if_fail (file->fp == NULL, FALSE); + g_return_val_if_fail (file->path == NULL, FALSE); create_error = NULL; - file->priv->fp = _create_xauth_file_for_user (file->priv->username, - &file->priv->path, - &create_error); + file->fp = _create_xauth_file_for_user (file->username, + &file->path, + &create_error); - if (file->priv->fp == NULL) { + if (file->fp == NULL) { g_propagate_error (error, create_error); return FALSE; } @@ -475,7 +473,7 @@ gdm_display_access_file_add_display (GdmDisplayAccessFile *file, gboolean display_added; g_return_val_if_fail (file != NULL, FALSE); - g_return_val_if_fail (file->priv->path != NULL, FALSE); + g_return_val_if_fail (file->path != NULL, FALSE); g_return_val_if_fail (cookie != NULL, FALSE); add_error = NULL; @@ -514,7 +512,7 @@ gdm_display_access_file_add_display_with_cookie (GdmDisplayAccessFile *file, gboolean display_added; g_return_val_if_fail (file != NULL, FALSE); - g_return_val_if_fail (file->priv->path != NULL, FALSE); + g_return_val_if_fail (file->path != NULL, FALSE); g_return_val_if_fail (cookie != NULL, FALSE); _get_auth_info_for_display (file, display, @@ -532,8 +530,8 @@ gdm_display_access_file_add_display_with_cookie (GdmDisplayAccessFile *file, /* FIXME: We should lock the file in case the X server is * trying to use it, too. */ - if (!XauWriteAuth (file->priv->fp, &auth_entry) - || fflush (file->priv->fp) == EOF) { + if (!XauWriteAuth (file->fp, &auth_entry) + || fflush (file->fp) == EOF) { g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno), @@ -550,8 +548,8 @@ gdm_display_access_file_add_display_with_cookie (GdmDisplayAccessFile *file, if (auth_entry.family == FamilyLocal) { auth_entry.family = FamilyWild; - if (XauWriteAuth (file->priv->fp, &auth_entry) - && fflush (file->priv->fp) != EOF) { + if (XauWriteAuth (file->fp, &auth_entry) + && fflush (file->fp) != EOF) { display_added = TRUE; } } @@ -569,20 +567,20 @@ gdm_display_access_file_close (GdmDisplayAccessFile *file) char *auth_dir; g_return_if_fail (file != NULL); - g_return_if_fail (file->priv->fp != NULL); - g_return_if_fail (file->priv->path != NULL); + g_return_if_fail (file->fp != NULL); + g_return_if_fail (file->path != NULL); errno = 0; - if (g_unlink (file->priv->path) != 0) { + if (g_unlink (file->path) != 0) { g_warning ("GdmDisplayAccessFile: Unable to remove X11 authority database '%s': %s", - file->priv->path, + file->path, g_strerror (errno)); } /* still try to remove dir even if file remove failed, may have already been removed by someone else */ /* we own the parent directory too */ - auth_dir = g_path_get_dirname (file->priv->path); + auth_dir = g_path_get_dirname (file->path); if (auth_dir != NULL) { errno = 0; if (g_rmdir (auth_dir) != 0) { @@ -593,16 +591,16 @@ gdm_display_access_file_close (GdmDisplayAccessFile *file) g_free (auth_dir); } - g_free (file->priv->path); - file->priv->path = NULL; + g_free (file->path); + file->path = NULL; g_object_notify (G_OBJECT (file), "path"); - fclose (file->priv->fp); - file->priv->fp = NULL; + fclose (file->fp); + file->fp = NULL; } char * gdm_display_access_file_get_path (GdmDisplayAccessFile *access_file) { - return g_strdup (access_file->priv->path); + return g_strdup (access_file->path); } diff --git a/daemon/gdm-display-access-file.h b/daemon/gdm-display-access-file.h index eff8dd01..559d3ed7 100644 --- a/daemon/gdm-display-access-file.h +++ b/daemon/gdm-display-access-file.h @@ -30,30 +30,13 @@ #include "gdm-display.h" G_BEGIN_DECLS -#define GDM_TYPE_DISPLAY_ACCESS_FILE (gdm_display_access_file_get_type ()) -#define GDM_DISPLAY_ACCESS_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDM_TYPE_DISPLAY_ACCESS_FILE, GdmDisplayAccessFile)) -#define GDM_DISPLAY_ACCESS_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDM_TYPE_DISPLAY_ACCESS_FILE, GdmDisplayAccessFileClass)) -#define GDM_IS_DISPLAY_ACCESS_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDM_TYPE_DISPLAY_ACCESS_FILE)) -#define GDM_IS_DISPLAY_ACCESS_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDM_TYPE_DISPLAY_ACCESS_FILE)) -#define GDM_DISPLAY_ACCESS_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GDM_TYPE_DISPLAY_ACCESS_FILE, GdmDisplayAccessFileClass)) -#define GDM_DISPLAY_ACCESS_FILE_ERROR (gdm_display_access_file_error_quark ()) -typedef struct _GdmDisplayAccessFile GdmDisplayAccessFile; -typedef struct _GdmDisplayAccessFileClass GdmDisplayAccessFileClass; -typedef struct _GdmDisplayAccessFilePrivate GdmDisplayAccessFilePrivate; -typedef enum _GdmDisplayAccessFileError GdmDisplayAccessFileError; +#define GDM_TYPE_DISPLAY_ACCESS_FILE (gdm_display_access_file_get_type ()) +G_DECLARE_FINAL_TYPE (GdmDisplayAccessFile, gdm_display_access_file, GDM, DISPLAY_ACCESS_FILE, GObject) -struct _GdmDisplayAccessFile -{ - GObject parent; - - GdmDisplayAccessFilePrivate *priv; -}; +#define GDM_DISPLAY_ACCESS_FILE_ERROR (gdm_display_access_file_error_quark ()) -struct _GdmDisplayAccessFileClass -{ - GObjectClass parent_class; -}; +typedef enum _GdmDisplayAccessFileError GdmDisplayAccessFileError; enum _GdmDisplayAccessFileError { @@ -62,7 +45,6 @@ enum _GdmDisplayAccessFileError }; GQuark gdm_display_access_file_error_quark (void); -GType gdm_display_access_file_get_type (void); GdmDisplayAccessFile *gdm_display_access_file_new (const char *username); gboolean gdm_display_access_file_open (GdmDisplayAccessFile *file, diff --git a/daemon/gdm-display-factory.c b/daemon/gdm-display-factory.c index c520e108..b2e1405f 100644 --- a/daemon/gdm-display-factory.c +++ b/daemon/gdm-display-factory.c @@ -30,13 +30,11 @@ #include "gdm-display-factory.h" #include "gdm-display-store.h" -#define GDM_DISPLAY_FACTORY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_DISPLAY_FACTORY, GdmDisplayFactoryPrivate)) - -struct GdmDisplayFactoryPrivate +typedef struct _GdmDisplayFactoryPrivate { GdmDisplayStore *display_store; guint purge_displays_id; -}; +} GdmDisplayFactoryPrivate; enum { PROP_0, @@ -47,7 +45,7 @@ static void gdm_display_factory_class_init (GdmDisplayFactoryClass *klass); static void gdm_display_factory_init (GdmDisplayFactory *factory); static void gdm_display_factory_finalize (GObject *object); -G_DEFINE_ABSTRACT_TYPE (GdmDisplayFactory, gdm_display_factory, G_TYPE_OBJECT) +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GdmDisplayFactory, gdm_display_factory, G_TYPE_OBJECT) GQuark gdm_display_factory_error_quark (void) @@ -81,8 +79,11 @@ purge_display (char *id, static void purge_displays (GdmDisplayFactory *factory) { - factory->priv->purge_displays_id = 0; - gdm_display_store_foreach_remove (factory->priv->display_store, + GdmDisplayFactoryPrivate *priv; + + priv = gdm_display_factory_get_instance_private (factory); + priv->purge_displays_id = 0; + gdm_display_store_foreach_remove (priv->display_store, (GdmDisplayStoreFunc)purge_display, NULL); } @@ -90,17 +91,23 @@ purge_displays (GdmDisplayFactory *factory) void gdm_display_factory_queue_purge_displays (GdmDisplayFactory *factory) { - if (factory->priv->purge_displays_id == 0) { - factory->priv->purge_displays_id = g_idle_add ((GSourceFunc) purge_displays, factory); + GdmDisplayFactoryPrivate *priv; + + priv = gdm_display_factory_get_instance_private (factory); + if (priv->purge_displays_id == 0) { + priv->purge_displays_id = g_idle_add ((GSourceFunc) purge_displays, factory); } } GdmDisplayStore * gdm_display_factory_get_display_store (GdmDisplayFactory *factory) { + GdmDisplayFactoryPrivate *priv; + g_return_val_if_fail (GDM_IS_DISPLAY_FACTORY (factory), NULL); - return factory->priv->display_store; + priv = gdm_display_factory_get_instance_private (factory); + return priv->display_store; } gboolean @@ -135,13 +142,13 @@ static void gdm_display_factory_set_display_store (GdmDisplayFactory *factory, GdmDisplayStore *display_store) { - if (factory->priv->display_store != NULL) { - g_object_unref (factory->priv->display_store); - factory->priv->display_store = NULL; - } + GdmDisplayFactoryPrivate *priv; + + priv = gdm_display_factory_get_instance_private (factory); + g_clear_object (&priv->display_store); if (display_store != NULL) { - factory->priv->display_store = g_object_ref (display_store); + priv->display_store = g_object_ref (display_store); } } @@ -172,12 +179,14 @@ gdm_display_factory_get_property (GObject *object, GParamSpec *pspec) { GdmDisplayFactory *self; + GdmDisplayFactoryPrivate *priv; self = GDM_DISPLAY_FACTORY (object); + priv = gdm_display_factory_get_instance_private (self); switch (prop_id) { case PROP_DISPLAY_STORE: - g_value_set_object (value, self->priv->display_store); + g_value_set_object (value, priv->display_store); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -201,31 +210,30 @@ gdm_display_factory_class_init (GdmDisplayFactoryClass *klass) "display store", GDM_TYPE_DISPLAY_STORE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); - - g_type_class_add_private (klass, sizeof (GdmDisplayFactoryPrivate)); } static void gdm_display_factory_init (GdmDisplayFactory *factory) { - factory->priv = GDM_DISPLAY_FACTORY_GET_PRIVATE (factory); } static void gdm_display_factory_finalize (GObject *object) { GdmDisplayFactory *factory; + GdmDisplayFactoryPrivate *priv; g_return_if_fail (object != NULL); g_return_if_fail (GDM_IS_DISPLAY_FACTORY (object)); factory = GDM_DISPLAY_FACTORY (object); + priv = gdm_display_factory_get_instance_private (factory); - g_return_if_fail (factory->priv != NULL); + g_return_if_fail (priv != NULL); - if (factory->priv->purge_displays_id != 0) { - g_source_remove (factory->priv->purge_displays_id); - factory->priv->purge_displays_id = 0; + if (priv->purge_displays_id != 0) { + g_source_remove (priv->purge_displays_id); + priv->purge_displays_id = 0; } G_OBJECT_CLASS (gdm_display_factory_parent_class)->finalize (object); diff --git a/daemon/gdm-display-factory.h b/daemon/gdm-display-factory.h index 1cffa1bd..b17cb1c8 100644 --- a/daemon/gdm-display-factory.h +++ b/daemon/gdm-display-factory.h @@ -28,28 +28,16 @@ G_BEGIN_DECLS -#define GDM_TYPE_DISPLAY_FACTORY (gdm_display_factory_get_type ()) -#define GDM_DISPLAY_FACTORY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_DISPLAY_FACTORY, GdmDisplayFactory)) -#define GDM_DISPLAY_FACTORY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_DISPLAY_FACTORY, GdmDisplayFactoryClass)) -#define GDM_IS_DISPLAY_FACTORY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_DISPLAY_FACTORY)) -#define GDM_IS_DISPLAY_FACTORY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_DISPLAY_FACTORY)) -#define GDM_DISPLAY_FACTORY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_DISPLAY_FACTORY, GdmDisplayFactoryClass)) +#define GDM_TYPE_DISPLAY_FACTORY (gdm_display_factory_get_type ()) +G_DECLARE_DERIVABLE_TYPE (GdmDisplayFactory, gdm_display_factory, GDM, DISPLAY_FACTORY, GObject) -typedef struct GdmDisplayFactoryPrivate GdmDisplayFactoryPrivate; - -typedef struct -{ - GObject parent; - GdmDisplayFactoryPrivate *priv; -} GdmDisplayFactory; - -typedef struct +struct _GdmDisplayFactoryClass { GObjectClass parent_class; gboolean (*start) (GdmDisplayFactory *factory); gboolean (*stop) (GdmDisplayFactory *factory); -} GdmDisplayFactoryClass; +}; typedef enum { diff --git a/daemon/gdm-display.c b/daemon/gdm-display.c index 511a5ca3..9b155817 100644 --- a/daemon/gdm-display.c +++ b/daemon/gdm-display.c @@ -51,10 +51,10 @@ #define GNOME_SESSION_SESSIONS_PATH DATADIR "/gnome-session/sessions" -#define GDM_DISPLAY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_DISPLAY, GdmDisplayPrivate)) - -struct GdmDisplayPrivate +typedef struct _GdmDisplayPrivate { + GObject parent; + char *id; char *seat_id; char *session_id; @@ -93,7 +93,7 @@ struct GdmDisplayPrivate guint allow_timed_login : 1; guint have_existing_user_accounts : 1; guint doing_initial_setup : 1; -}; +} GdmDisplayPrivate; enum { PROP_0, @@ -124,7 +124,7 @@ static void queue_finish (GdmDisplay *self); static void _gdm_display_set_status (GdmDisplay *self, int status); static gboolean wants_initial_setup (GdmDisplay *self); -G_DEFINE_ABSTRACT_TYPE (GdmDisplay, gdm_display, G_TYPE_OBJECT) +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GdmDisplay, gdm_display, G_TYPE_OBJECT) GQuark gdm_display_error_quark (void) @@ -140,23 +140,32 @@ gdm_display_error_quark (void) time_t gdm_display_get_creation_time (GdmDisplay *self) { + GdmDisplayPrivate *priv; + g_return_val_if_fail (GDM_IS_DISPLAY (self), 0); - return self->priv->creation_time; + priv = gdm_display_get_instance_private (self); + return priv->creation_time; } int gdm_display_get_status (GdmDisplay *self) { + GdmDisplayPrivate *priv; + g_return_val_if_fail (GDM_IS_DISPLAY (self), 0); - return self->priv->status; + priv = gdm_display_get_instance_private (self); + return priv->status; } const char * gdm_display_get_session_id (GdmDisplay *self) { - return self->priv->session_id; + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); + return priv->session_id; } static GdmDisplayAccessFile * @@ -181,12 +190,15 @@ _create_access_file_for_user (GdmDisplay *self, gboolean gdm_display_create_authority (GdmDisplay *self) { + GdmDisplayPrivate *priv; GdmDisplayAccessFile *access_file; GError *error; gboolean res; g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); - g_return_val_if_fail (self->priv->access_file == NULL, FALSE); + + priv = gdm_display_get_instance_private (self); + g_return_val_if_fail (priv->access_file == NULL, FALSE); error = NULL; access_file = _create_access_file_for_user (self, GDM_USERNAME, &error); @@ -197,12 +209,12 @@ gdm_display_create_authority (GdmDisplay *self) return FALSE; } - g_free (self->priv->x11_cookie); - self->priv->x11_cookie = NULL; + g_free (priv->x11_cookie); + priv->x11_cookie = NULL; res = gdm_display_access_file_add_display (access_file, self, - &self->priv->x11_cookie, - &self->priv->x11_cookie_size, + &priv->x11_cookie, + &priv->x11_cookie_size, &error); if (! res) { @@ -214,7 +226,7 @@ gdm_display_create_authority (GdmDisplay *self) return FALSE; } - self->priv->access_file = access_file; + priv->access_file = access_file; return TRUE; } @@ -239,6 +251,7 @@ gdm_display_add_user_authorization (GdmDisplay *self, char **filename, GError **error) { + GdmDisplayPrivate *priv; GdmDisplayAccessFile *access_file; GError *access_file_error; gboolean res; @@ -249,11 +262,11 @@ gdm_display_add_user_authorization (GdmDisplay *self, g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); - g_debug ("GdmDisplay: Adding authorization for user:%s on display %s", username, self->priv->x11_display_name); + priv = gdm_display_get_instance_private (self); - g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); + g_debug ("GdmDisplay: Adding authorization for user:%s on display %s", username, priv->x11_display_name); - if (self->priv->user_access_file != NULL) { + if (priv->user_access_file != NULL) { g_set_error (error, G_DBUS_ERROR, G_DBUS_ERROR_ACCESS_DENIED, @@ -275,8 +288,8 @@ gdm_display_add_user_authorization (GdmDisplay *self, res = gdm_display_access_file_add_display_with_cookie (access_file, self, - self->priv->x11_cookie, - self->priv->x11_cookie_size, + priv->x11_cookie, + priv->x11_cookie_size, &access_file_error); if (! res) { g_debug ("GdmDisplay: Unable to add user authorization for %s: %s", @@ -289,7 +302,7 @@ gdm_display_add_user_authorization (GdmDisplay *self, } *filename = gdm_display_access_file_get_path (access_file); - self->priv->user_access_file = access_file; + priv->user_access_file = access_file; g_debug ("GdmDisplay: Added user authorization for %s: %s", username, *filename); /* Remove access for the programs run by greeter now that the @@ -298,7 +311,7 @@ gdm_display_add_user_authorization (GdmDisplay *self, setup_xhost_auth (host_entries); for (i = 0; i < G_N_ELEMENTS (host_entries); i++) { - cookies[i] = xcb_change_hosts_checked (self->priv->xcb_connection, + cookies[i] = xcb_change_hosts_checked (priv->xcb_connection, XCB_HOST_MODE_DELETE, host_entries[i].family, host_entries[i].length, @@ -308,7 +321,7 @@ gdm_display_add_user_authorization (GdmDisplay *self, for (i = 0; i < G_N_ELEMENTS (cookies); i++) { xcb_generic_error_t *xcb_error; - xcb_error = xcb_request_check (self->priv->xcb_connection, cookies[i]); + xcb_error = xcb_request_check (priv->xcb_connection, cookies[i]); if (xcb_error != NULL) { g_warning ("Failed to remove greeter program access to the display. Trying to proceed."); @@ -324,11 +337,15 @@ gdm_display_remove_user_authorization (GdmDisplay *self, const char *username, GError **error) { + GdmDisplayPrivate *priv; + g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); - g_debug ("GdmDisplay: Removing authorization for user:%s on display %s", username, self->priv->x11_display_name); + priv = gdm_display_get_instance_private (self); - gdm_display_access_file_close (self->priv->user_access_file); + g_debug ("GdmDisplay: Removing authorization for user:%s on display %s", username, priv->x11_display_name); + + gdm_display_access_file_close (priv->user_access_file); return TRUE; } @@ -339,14 +356,18 @@ gdm_display_get_x11_cookie (GdmDisplay *self, gsize *x11_cookie_size, GError **error) { + GdmDisplayPrivate *priv; + g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); + priv = gdm_display_get_instance_private (self); + if (x11_cookie != NULL) { - *x11_cookie = self->priv->x11_cookie; + *x11_cookie = priv->x11_cookie; } if (x11_cookie_size != NULL) { - *x11_cookie_size = self->priv->x11_cookie_size; + *x11_cookie_size = priv->x11_cookie_size; } return TRUE; @@ -357,11 +378,14 @@ gdm_display_get_x11_authority_file (GdmDisplay *self, char **filename, GError **error) { + GdmDisplayPrivate *priv; + g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); g_return_val_if_fail (filename != NULL, FALSE); - if (self->priv->access_file != NULL) { - *filename = gdm_display_access_file_get_path (self->priv->access_file); + priv = gdm_display_get_instance_private (self); + if (priv->access_file != NULL) { + *filename = gdm_display_access_file_get_path (priv->access_file); } else { *filename = NULL; } @@ -374,10 +398,13 @@ gdm_display_get_remote_hostname (GdmDisplay *self, char **hostname, GError **error) { + GdmDisplayPrivate *priv; + g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); + priv = gdm_display_get_instance_private (self); if (hostname != NULL) { - *hostname = g_strdup (self->priv->remote_hostname); + *hostname = g_strdup (priv->remote_hostname); } return TRUE; @@ -388,13 +415,16 @@ gdm_display_get_x11_display_number (GdmDisplay *self, int *number, GError **error) { - g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); + GdmDisplayPrivate *priv; - if (number != NULL) { - *number = self->priv->x11_display_number; - } + g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); + + priv = gdm_display_get_instance_private (self); + if (number != NULL) { + *number = priv->x11_display_number; + } - return TRUE; + return TRUE; } gboolean @@ -402,13 +432,16 @@ gdm_display_get_seat_id (GdmDisplay *self, char **seat_id, GError **error) { - g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); + GdmDisplayPrivate *priv; - if (seat_id != NULL) { - *seat_id = g_strdup (self->priv->seat_id); - } + g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); + + priv = gdm_display_get_instance_private (self); + if (seat_id != NULL) { + *seat_id = g_strdup (priv->seat_id); + } - return TRUE; + return TRUE; } gboolean @@ -416,10 +449,13 @@ gdm_display_is_initial (GdmDisplay *self, gboolean *is_initial, GError **error) { + GdmDisplayPrivate *priv; + g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); + priv = gdm_display_get_instance_private (self); if (is_initial != NULL) { - *is_initial = self->priv->is_initial; + *is_initial = priv->is_initial; } return TRUE; @@ -428,7 +464,10 @@ gdm_display_is_initial (GdmDisplay *self, static gboolean finish_idle (GdmDisplay *self) { - self->priv->finish_idle_id = 0; + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); + priv->finish_idle_id = 0; /* finish may end up finalizing object */ gdm_display_finish (self); return FALSE; @@ -437,8 +476,11 @@ finish_idle (GdmDisplay *self) static void queue_finish (GdmDisplay *self) { - if (self->priv->finish_idle_id == 0) { - self->priv->finish_idle_id = g_idle_add ((GSourceFunc)finish_idle, self); + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); + if (priv->finish_idle_id == 0) { + priv->finish_idle_id = g_idle_add ((GSourceFunc)finish_idle, self); } } @@ -446,8 +488,11 @@ static void _gdm_display_set_status (GdmDisplay *self, int status) { - if (status != self->priv->status) { - self->priv->status = status; + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); + if (status != priv->status) { + priv->status = status; g_object_notify (G_OBJECT (self), "status"); } } @@ -467,24 +512,26 @@ gdm_display_real_prepare (GdmDisplay *self) static void look_for_existing_users_sync (GdmDisplay *self) { + GdmDisplayPrivate *priv; GError *error = NULL; GVariant *call_result; GVariant *user_list; - self->priv->accountsservice_proxy = g_dbus_proxy_new_sync (self->priv->connection, - 0, NULL, - "org.freedesktop.Accounts", - "/org/freedesktop/Accounts", - "org.freedesktop.Accounts", - NULL, - &error); + priv = gdm_display_get_instance_private (self); + priv->accountsservice_proxy = g_dbus_proxy_new_sync (priv->connection, + 0, NULL, + "org.freedesktop.Accounts", + "/org/freedesktop/Accounts", + "org.freedesktop.Accounts", + NULL, + &error); - if (!self->priv->accountsservice_proxy) { + if (!priv->accountsservice_proxy) { g_warning ("Failed to contact accountsservice: %s", error->message); goto out; } - call_result = g_dbus_proxy_call_sync (self->priv->accountsservice_proxy, + call_result = g_dbus_proxy_call_sync (priv->accountsservice_proxy, "ListCachedUsers", NULL, 0, @@ -498,7 +545,7 @@ look_for_existing_users_sync (GdmDisplay *self) } g_variant_get (call_result, "(@ao)", &user_list); - self->priv->have_existing_user_accounts = g_variant_n_children (user_list) > 0; + priv->have_existing_user_accounts = g_variant_n_children (user_list) > 0; g_variant_unref (user_list); g_variant_unref (call_result); out: @@ -508,18 +555,21 @@ out: gboolean gdm_display_prepare (GdmDisplay *self) { + GdmDisplayPrivate *priv; gboolean ret; g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); - g_debug ("GdmDisplay: Preparing display: %s", self->priv->id); + priv = gdm_display_get_instance_private (self); + + g_debug ("GdmDisplay: Preparing display: %s", priv->id); /* FIXME: we should probably do this in a more global place, * asynchronously */ look_for_existing_users_sync (self); - self->priv->doing_initial_setup = wants_initial_setup (self); + priv->doing_initial_setup = wants_initial_setup (self); g_object_ref (self); ret = GDM_DISPLAY_GET_CLASS (self)->prepare (self); @@ -531,23 +581,26 @@ gdm_display_prepare (GdmDisplay *self) gboolean gdm_display_manage (GdmDisplay *self) { + GdmDisplayPrivate *priv; gboolean res; g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); - g_debug ("GdmDisplay: Managing display: %s", self->priv->id); + priv = gdm_display_get_instance_private (self); + + g_debug ("GdmDisplay: Managing display: %s", priv->id); /* If not explicitly prepared, do it now */ - if (self->priv->status == GDM_DISPLAY_UNMANAGED) { + if (priv->status == GDM_DISPLAY_UNMANAGED) { res = gdm_display_prepare (self); if (! res) { return FALSE; } } - g_timer_start (self->priv->server_timer); + g_timer_start (priv->server_timer); - if (g_strcmp0 (self->priv->session_class, "greeter") == 0) { + if (g_strcmp0 (priv->session_class, "greeter") == 0) { if (GDM_DISPLAY_GET_CLASS (self)->manage != NULL) { GDM_DISPLAY_GET_CLASS (self)->manage (self); } @@ -559,11 +612,14 @@ gdm_display_manage (GdmDisplay *self) gboolean gdm_display_finish (GdmDisplay *self) { + GdmDisplayPrivate *priv; + g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); - if (self->priv->finish_idle_id != 0) { - g_source_remove (self->priv->finish_idle_id); - self->priv->finish_idle_id = 0; + priv = gdm_display_get_instance_private (self); + if (priv->finish_idle_id != 0) { + g_source_remove (priv->finish_idle_id); + priv->finish_idle_id = 0; } _gdm_display_set_status (self, GDM_DISPLAY_FINISHED); @@ -576,17 +632,20 @@ gdm_display_finish (GdmDisplay *self) static void gdm_display_disconnect (GdmDisplay *self) { + GdmDisplayPrivate *priv; /* These 3 bits are reserved/unused by the X protocol */ guint32 unused_bits = 0b11100000000000000000000000000000; XID highest_client, client; guint32 client_increment; const xcb_setup_t *setup; - if (self->priv->xcb_connection == NULL) { + priv = gdm_display_get_instance_private (self); + + if (priv->xcb_connection == NULL) { return; } - setup = xcb_get_setup (self->priv->xcb_connection); + setup = xcb_get_setup (priv->xcb_connection); /* resource_id_mask is the bits given to each client for * addressing resources */ @@ -600,40 +659,43 @@ gdm_display_disconnect (GdmDisplay *self) client += client_increment) { if (client != setup->resource_id_base) - xcb_kill_client (self->priv->xcb_connection, client); + xcb_kill_client (priv->xcb_connection, client); } - xcb_flush (self->priv->xcb_connection); + xcb_flush (priv->xcb_connection); - g_clear_pointer (&self->priv->xcb_connection, xcb_disconnect); + g_clear_pointer (&priv->xcb_connection, xcb_disconnect); } gboolean gdm_display_unmanage (GdmDisplay *self) { + GdmDisplayPrivate *priv; gdouble elapsed; g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); + priv = gdm_display_get_instance_private (self); + g_debug ("GdmDisplay: unmanage display"); gdm_display_disconnect (self); - g_timer_stop (self->priv->server_timer); + g_timer_stop (priv->server_timer); - if (self->priv->user_access_file != NULL) { - gdm_display_access_file_close (self->priv->user_access_file); - g_object_unref (self->priv->user_access_file); - self->priv->user_access_file = NULL; + if (priv->user_access_file != NULL) { + gdm_display_access_file_close (priv->user_access_file); + g_object_unref (priv->user_access_file); + priv->user_access_file = NULL; } - if (self->priv->access_file != NULL) { - gdm_display_access_file_close (self->priv->access_file); - g_object_unref (self->priv->access_file); - self->priv->access_file = NULL; + if (priv->access_file != NULL) { + gdm_display_access_file_close (priv->access_file); + g_object_unref (priv->access_file); + priv->access_file = NULL; } - elapsed = g_timer_elapsed (self->priv->server_timer, NULL); + elapsed = g_timer_elapsed (priv->server_timer, NULL); if (elapsed < 3) { g_warning ("GdmDisplay: display lasted %lf seconds", elapsed); _gdm_display_set_status (self, GDM_DISPLAY_FAILED); @@ -649,10 +711,13 @@ gdm_display_get_id (GdmDisplay *self, char **id, GError **error) { + GdmDisplayPrivate *priv; + g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); + priv = gdm_display_get_instance_private (self); if (id != NULL) { - *id = g_strdup (self->priv->id); + *id = g_strdup (priv->id); } return TRUE; @@ -663,10 +728,13 @@ gdm_display_get_x11_display_name (GdmDisplay *self, char **x11_display, GError **error) { + GdmDisplayPrivate *priv; + g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); + priv = gdm_display_get_instance_private (self); if (x11_display != NULL) { - *x11_display = g_strdup (self->priv->x11_display_name); + *x11_display = g_strdup (priv->x11_display_name); } return TRUE; @@ -677,10 +745,13 @@ gdm_display_is_local (GdmDisplay *self, gboolean *local, GError **error) { + GdmDisplayPrivate *priv; + g_return_val_if_fail (GDM_IS_DISPLAY (self), FALSE); + priv = gdm_display_get_instance_private (self); if (local != NULL) { - *local = self->priv->is_local; + *local = priv->is_local; } return TRUE; @@ -690,109 +761,149 @@ static void _gdm_display_set_id (GdmDisplay *self, const char *id) { + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); g_debug ("GdmDisplay: id: %s", id); - g_free (self->priv->id); - self->priv->id = g_strdup (id); + g_free (priv->id); + priv->id = g_strdup (id); } static void _gdm_display_set_seat_id (GdmDisplay *self, const char *seat_id) { + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); g_debug ("GdmDisplay: seat id: %s", seat_id); - g_free (self->priv->seat_id); - self->priv->seat_id = g_strdup (seat_id); + g_free (priv->seat_id); + priv->seat_id = g_strdup (seat_id); } static void _gdm_display_set_session_id (GdmDisplay *self, const char *session_id) { + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); g_debug ("GdmDisplay: session id: %s", session_id); - g_free (self->priv->session_id); - self->priv->session_id = g_strdup (session_id); + g_free (priv->session_id); + priv->session_id = g_strdup (session_id); } static void _gdm_display_set_session_class (GdmDisplay *self, const char *session_class) { + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); g_debug ("GdmDisplay: session class: %s", session_class); - g_free (self->priv->session_class); - self->priv->session_class = g_strdup (session_class); + g_free (priv->session_class); + priv->session_class = g_strdup (session_class); } static void _gdm_display_set_session_type (GdmDisplay *self, const char *session_type) { + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); g_debug ("GdmDisplay: session type: %s", session_type); - g_free (self->priv->session_type); - self->priv->session_type = g_strdup (session_type); + g_free (priv->session_type); + priv->session_type = g_strdup (session_type); } static void _gdm_display_set_remote_hostname (GdmDisplay *self, const char *hostname) { - g_free (self->priv->remote_hostname); - self->priv->remote_hostname = g_strdup (hostname); + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); + g_free (priv->remote_hostname); + priv->remote_hostname = g_strdup (hostname); } static void _gdm_display_set_x11_display_number (GdmDisplay *self, int num) { - self->priv->x11_display_number = num; + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); + priv->x11_display_number = num; } static void _gdm_display_set_x11_display_name (GdmDisplay *self, const char *x11_display) { - g_free (self->priv->x11_display_name); - self->priv->x11_display_name = g_strdup (x11_display); + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); + g_free (priv->x11_display_name); + priv->x11_display_name = g_strdup (x11_display); } static void _gdm_display_set_x11_cookie (GdmDisplay *self, const char *x11_cookie) { - g_free (self->priv->x11_cookie); - self->priv->x11_cookie = g_strdup (x11_cookie); + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); + g_free (priv->x11_cookie); + priv->x11_cookie = g_strdup (x11_cookie); } static void _gdm_display_set_is_local (GdmDisplay *self, gboolean is_local) { + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); g_debug ("GdmDisplay: local: %s", is_local? "yes" : "no"); - self->priv->is_local = is_local; + priv->is_local = is_local; } static void _gdm_display_set_launch_environment (GdmDisplay *self, GdmLaunchEnvironment *launch_environment) { - g_clear_object (&self->priv->launch_environment); + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); + + g_clear_object (&priv->launch_environment); - self->priv->launch_environment = g_object_ref (launch_environment); + priv->launch_environment = g_object_ref (launch_environment); } static void _gdm_display_set_is_initial (GdmDisplay *self, gboolean initial) { + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); g_debug ("GdmDisplay: initial: %s", initial? "yes" : "no"); - self->priv->is_initial = initial; + priv->is_initial = initial; } static void _gdm_display_set_allow_timed_login (GdmDisplay *self, gboolean allow_timed_login) { + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); g_debug ("GdmDisplay: allow timed login: %s", allow_timed_login? "yes" : "no"); - self->priv->allow_timed_login = allow_timed_login; + priv->allow_timed_login = allow_timed_login; } static void @@ -861,65 +972,67 @@ gdm_display_get_property (GObject *object, GParamSpec *pspec) { GdmDisplay *self; + GdmDisplayPrivate *priv; self = GDM_DISPLAY (object); + priv = gdm_display_get_instance_private (self); switch (prop_id) { case PROP_ID: - g_value_set_string (value, self->priv->id); + g_value_set_string (value, priv->id); break; case PROP_STATUS: - g_value_set_int (value, self->priv->status); + g_value_set_int (value, priv->status); break; case PROP_SEAT_ID: - g_value_set_string (value, self->priv->seat_id); + g_value_set_string (value, priv->seat_id); break; case PROP_SESSION_ID: - g_value_set_string (value, self->priv->session_id); + g_value_set_string (value, priv->session_id); break; case PROP_SESSION_CLASS: - g_value_set_string (value, self->priv->session_class); + g_value_set_string (value, priv->session_class); break; case PROP_SESSION_TYPE: - g_value_set_string (value, self->priv->session_type); + g_value_set_string (value, priv->session_type); break; case PROP_REMOTE_HOSTNAME: - g_value_set_string (value, self->priv->remote_hostname); + g_value_set_string (value, priv->remote_hostname); break; case PROP_X11_DISPLAY_NUMBER: - g_value_set_int (value, self->priv->x11_display_number); + g_value_set_int (value, priv->x11_display_number); break; case PROP_X11_DISPLAY_NAME: - g_value_set_string (value, self->priv->x11_display_name); + g_value_set_string (value, priv->x11_display_name); break; case PROP_X11_COOKIE: - g_value_set_string (value, self->priv->x11_cookie); + g_value_set_string (value, priv->x11_cookie); break; case PROP_X11_AUTHORITY_FILE: g_value_take_string (value, - self->priv->access_file? - gdm_display_access_file_get_path (self->priv->access_file) : NULL); + priv->access_file? + gdm_display_access_file_get_path (priv->access_file) : NULL); break; case PROP_IS_LOCAL: - g_value_set_boolean (value, self->priv->is_local); + g_value_set_boolean (value, priv->is_local); break; case PROP_IS_CONNECTED: - g_value_set_boolean (value, self->priv->xcb_connection != NULL); + g_value_set_boolean (value, priv->xcb_connection != NULL); break; case PROP_LAUNCH_ENVIRONMENT: - g_value_set_object (value, self->priv->launch_environment); + g_value_set_object (value, priv->launch_environment); break; case PROP_IS_INITIAL: - g_value_set_boolean (value, self->priv->is_initial); + g_value_set_boolean (value, priv->is_initial); break; case PROP_HAVE_EXISTING_USER_ACCOUNTS: - g_value_set_boolean (value, self->priv->have_existing_user_accounts); + g_value_set_boolean (value, priv->have_existing_user_accounts); break; case PROP_DOING_INITIAL_SETUP: - g_value_set_boolean (value, self->priv->doing_initial_setup); + g_value_set_boolean (value, priv->doing_initial_setup); break; case PROP_ALLOW_TIMED_LOGIN: - g_value_set_boolean (value, self->priv->allow_timed_login); + g_value_set_boolean (value, priv->allow_timed_login); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -1024,34 +1137,37 @@ handle_is_initial (GdmDBusDisplay *skeleton, static gboolean register_display (GdmDisplay *self) { + GdmDisplayPrivate *priv; GError *error = NULL; + priv = gdm_display_get_instance_private (self); + error = NULL; - self->priv->connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error); - if (self->priv->connection == NULL) { + priv->connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error); + if (priv->connection == NULL) { g_critical ("error getting system bus: %s", error->message); g_error_free (error); exit (EXIT_FAILURE); } - self->priv->object_skeleton = g_dbus_object_skeleton_new (self->priv->id); - self->priv->display_skeleton = GDM_DBUS_DISPLAY (gdm_dbus_display_skeleton_new ()); + priv->object_skeleton = g_dbus_object_skeleton_new (priv->id); + priv->display_skeleton = GDM_DBUS_DISPLAY (gdm_dbus_display_skeleton_new ()); - g_signal_connect_object (self->priv->display_skeleton, "handle-get-id", + g_signal_connect_object (priv->display_skeleton, "handle-get-id", G_CALLBACK (handle_get_id), self, 0); - g_signal_connect_object (self->priv->display_skeleton, "handle-get-remote-hostname", + g_signal_connect_object (priv->display_skeleton, "handle-get-remote-hostname", G_CALLBACK (handle_get_remote_hostname), self, 0); - g_signal_connect_object (self->priv->display_skeleton, "handle-get-seat-id", + g_signal_connect_object (priv->display_skeleton, "handle-get-seat-id", G_CALLBACK (handle_get_seat_id), self, 0); - g_signal_connect_object (self->priv->display_skeleton, "handle-get-x11-display-name", + g_signal_connect_object (priv->display_skeleton, "handle-get-x11-display-name", G_CALLBACK (handle_get_x11_display_name), self, 0); - g_signal_connect_object (self->priv->display_skeleton, "handle-is-local", + g_signal_connect_object (priv->display_skeleton, "handle-is-local", G_CALLBACK (handle_is_local), self, 0); - g_signal_connect_object (self->priv->display_skeleton, "handle-is-initial", + g_signal_connect_object (priv->display_skeleton, "handle-is-initial", G_CALLBACK (handle_is_initial), self, 0); - g_dbus_object_skeleton_add_interface (self->priv->object_skeleton, - G_DBUS_INTERFACE_SKELETON (self->priv->display_skeleton)); + g_dbus_object_skeleton_add_interface (priv->object_skeleton, + G_DBUS_INTERFACE_SKELETON (priv->display_skeleton)); return TRUE; } @@ -1065,15 +1181,18 @@ gdm_display_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties) { - GdmDisplay *self; - gboolean res; + GdmDisplay *self; + GdmDisplayPrivate *priv; + gboolean res; self = GDM_DISPLAY (G_OBJECT_CLASS (gdm_display_parent_class)->constructor (type, n_construct_properties, construct_properties)); - g_free (self->priv->id); - self->priv->id = g_strdup_printf ("/org/gnome/DisplayManager/Displays/%lu", + priv = gdm_display_get_instance_private (self); + + g_free (priv->id); + priv->id = g_strdup_printf ("/org/gnome/DisplayManager/Displays/%lu", (gulong) self); res = register_display (self); @@ -1088,20 +1207,22 @@ static void gdm_display_dispose (GObject *object) { GdmDisplay *self; + GdmDisplayPrivate *priv; self = GDM_DISPLAY (object); + priv = gdm_display_get_instance_private (self); g_debug ("GdmDisplay: Disposing display"); - if (self->priv->finish_idle_id != 0) { - g_source_remove (self->priv->finish_idle_id); - self->priv->finish_idle_id = 0; + if (priv->finish_idle_id != 0) { + g_source_remove (priv->finish_idle_id); + priv->finish_idle_id = 0; } - g_clear_object (&self->priv->launch_environment); + g_clear_object (&priv->launch_environment); - g_warn_if_fail (self->priv->status != GDM_DISPLAY_MANAGED); - g_warn_if_fail (self->priv->user_access_file == NULL); - g_warn_if_fail (self->priv->access_file == NULL); + g_warn_if_fail (priv->status != GDM_DISPLAY_MANAGED); + g_warn_if_fail (priv->user_access_file == NULL); + g_warn_if_fail (priv->access_file == NULL); G_OBJECT_CLASS (gdm_display_parent_class)->dispose (object); } @@ -1250,55 +1371,56 @@ gdm_display_class_init (GdmDisplayClass *klass) G_MAXINT, GDM_DISPLAY_UNMANAGED, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - - g_type_class_add_private (klass, sizeof (GdmDisplayPrivate)); } static void gdm_display_init (GdmDisplay *self) { + GdmDisplayPrivate *priv; - self->priv = GDM_DISPLAY_GET_PRIVATE (self); + priv = gdm_display_get_instance_private (self); - self->priv->creation_time = time (NULL); - self->priv->server_timer = g_timer_new (); + priv->creation_time = time (NULL); + priv->server_timer = g_timer_new (); } static void gdm_display_finalize (GObject *object) { GdmDisplay *self; + GdmDisplayPrivate *priv; g_return_if_fail (object != NULL); g_return_if_fail (GDM_IS_DISPLAY (object)); self = GDM_DISPLAY (object); + priv = gdm_display_get_instance_private (self); - g_return_if_fail (self->priv != NULL); + g_return_if_fail (priv != NULL); - g_debug ("GdmDisplay: Finalizing display: %s", self->priv->id); - g_free (self->priv->id); - g_free (self->priv->seat_id); - g_free (self->priv->session_class); - g_free (self->priv->remote_hostname); - g_free (self->priv->x11_display_name); - g_free (self->priv->x11_cookie); + g_debug ("GdmDisplay: Finalizing display: %s", priv->id); + g_free (priv->id); + g_free (priv->seat_id); + g_free (priv->session_class); + g_free (priv->remote_hostname); + g_free (priv->x11_display_name); + g_free (priv->x11_cookie); - g_clear_object (&self->priv->display_skeleton); - g_clear_object (&self->priv->object_skeleton); - g_clear_object (&self->priv->connection); - g_clear_object (&self->priv->accountsservice_proxy); + g_clear_object (&priv->display_skeleton); + g_clear_object (&priv->object_skeleton); + g_clear_object (&priv->connection); + g_clear_object (&priv->accountsservice_proxy); - if (self->priv->access_file != NULL) { - g_object_unref (self->priv->access_file); + if (priv->access_file != NULL) { + g_object_unref (priv->access_file); } - if (self->priv->user_access_file != NULL) { - g_object_unref (self->priv->user_access_file); + if (priv->user_access_file != NULL) { + g_object_unref (priv->user_access_file); } - if (self->priv->server_timer != NULL) { - g_timer_destroy (self->priv->server_timer); + if (priv->server_timer != NULL) { + g_timer_destroy (priv->server_timer); } G_OBJECT_CLASS (gdm_display_parent_class)->finalize (object); @@ -1307,7 +1429,10 @@ gdm_display_finalize (GObject *object) GDBusObjectSkeleton * gdm_display_get_object_skeleton (GdmDisplay *self) { - return self->priv->object_skeleton; + GdmDisplayPrivate *priv; + + priv = gdm_display_get_instance_private (self); + return priv->object_skeleton; } static void @@ -1478,9 +1603,12 @@ kernel_cmdline_initial_setup_force_state (gboolean *force_state) static gboolean wants_initial_setup (GdmDisplay *self) { + GdmDisplayPrivate *priv; gboolean enabled = FALSE; gboolean forced = FALSE; + priv = gdm_display_get_instance_private (self); + if (already_done_initial_setup_on_this_boot ()) { return FALSE; } @@ -1497,12 +1625,12 @@ wants_initial_setup (GdmDisplay *self) /* don't run initial-setup on remote displays */ - if (!self->priv->is_local) { + if (!priv->is_local) { return FALSE; } /* don't run if the system has existing users */ - if (self->priv->have_existing_user_accounts) { + if (priv->have_existing_user_accounts) { return FALSE; } @@ -1521,13 +1649,15 @@ wants_initial_setup (GdmDisplay *self) void gdm_display_start_greeter_session (GdmDisplay *self) { + GdmDisplayPrivate *priv; GdmSession *session; char *display_name; char *seat_id; char *hostname; char *auth_file = NULL; - g_return_if_fail (g_strcmp0 (self->priv->session_class, "greeter") == 0); + priv = gdm_display_get_instance_private (self); + g_return_if_fail (g_strcmp0 (priv->session_class, "greeter") == 0); g_debug ("GdmDisplay: Running greeter"); @@ -1540,44 +1670,44 @@ gdm_display_start_greeter_session (GdmDisplay *self) "seat-id", &seat_id, "remote-hostname", &hostname, NULL); - if (self->priv->access_file != NULL) { - auth_file = gdm_display_access_file_get_path (self->priv->access_file); + if (priv->access_file != NULL) { + auth_file = gdm_display_access_file_get_path (priv->access_file); } g_debug ("GdmDisplay: Creating greeter for %s %s", display_name, hostname); - g_signal_connect_object (self->priv->launch_environment, + g_signal_connect_object (priv->launch_environment, "opened", G_CALLBACK (on_launch_environment_session_opened), self, 0); - g_signal_connect_object (self->priv->launch_environment, + g_signal_connect_object (priv->launch_environment, "started", G_CALLBACK (on_launch_environment_session_started), self, 0); - g_signal_connect_object (self->priv->launch_environment, + g_signal_connect_object (priv->launch_environment, "stopped", G_CALLBACK (on_launch_environment_session_stopped), self, 0); - g_signal_connect_object (self->priv->launch_environment, + g_signal_connect_object (priv->launch_environment, "exited", G_CALLBACK (on_launch_environment_session_exited), self, 0); - g_signal_connect_object (self->priv->launch_environment, + g_signal_connect_object (priv->launch_environment, "died", G_CALLBACK (on_launch_environment_session_died), self, 0); if (auth_file != NULL) { - g_object_set (self->priv->launch_environment, + g_object_set (priv->launch_environment, "x11-authority-file", auth_file, NULL); } - gdm_launch_environment_start (self->priv->launch_environment); + gdm_launch_environment_start (priv->launch_environment); - session = gdm_launch_environment_get_session (self->priv->launch_environment); + session = gdm_launch_environment_get_session (priv->launch_environment); g_object_set (G_OBJECT (session), - "display-is-initial", self->priv->is_initial, + "display-is-initial", priv->is_initial, NULL); g_free (display_name); @@ -1589,27 +1719,30 @@ gdm_display_start_greeter_session (GdmDisplay *self) void gdm_display_stop_greeter_session (GdmDisplay *self) { + GdmDisplayPrivate *priv; GError *error = NULL; - if (self->priv->launch_environment != NULL) { + priv = gdm_display_get_instance_private (self); + + if (priv->launch_environment != NULL) { - g_signal_handlers_disconnect_by_func (self->priv->launch_environment, + g_signal_handlers_disconnect_by_func (priv->launch_environment, G_CALLBACK (on_launch_environment_session_opened), self); - g_signal_handlers_disconnect_by_func (self->priv->launch_environment, + g_signal_handlers_disconnect_by_func (priv->launch_environment, G_CALLBACK (on_launch_environment_session_started), self); - g_signal_handlers_disconnect_by_func (self->priv->launch_environment, + g_signal_handlers_disconnect_by_func (priv->launch_environment, G_CALLBACK (on_launch_environment_session_stopped), self); - g_signal_handlers_disconnect_by_func (self->priv->launch_environment, + g_signal_handlers_disconnect_by_func (priv->launch_environment, G_CALLBACK (on_launch_environment_session_exited), self); - g_signal_handlers_disconnect_by_func (self->priv->launch_environment, + g_signal_handlers_disconnect_by_func (priv->launch_environment, G_CALLBACK (on_launch_environment_session_died), self); - gdm_launch_environment_stop (self->priv->launch_environment); - g_clear_object (&self->priv->launch_environment); + gdm_launch_environment_stop (priv->launch_environment); + g_clear_object (&priv->launch_environment); } } @@ -1638,6 +1771,7 @@ get_root_window (xcb_connection_t *connection, static void gdm_display_set_windowpath (GdmDisplay *self) { + GdmDisplayPrivate *priv; /* setting WINDOWPATH for clients */ xcb_intern_atom_cookie_t atom_cookie; xcb_intern_atom_reply_t *atom_reply = NULL; @@ -1650,23 +1784,25 @@ gdm_display_set_windowpath (GdmDisplay *self) char nums[10]; int numn; - atom_cookie = xcb_intern_atom (self->priv->xcb_connection, 0, strlen("XFree86_VT"), "XFree86_VT"); - atom_reply = xcb_intern_atom_reply (self->priv->xcb_connection, atom_cookie, NULL); + priv = gdm_display_get_instance_private (self); + + atom_cookie = xcb_intern_atom (priv->xcb_connection, 0, strlen("XFree86_VT"), "XFree86_VT"); + atom_reply = xcb_intern_atom_reply (priv->xcb_connection, atom_cookie, NULL); if (atom_reply == NULL) { g_debug ("no XFree86_VT atom\n"); goto out; } - root_window = get_root_window (self->priv->xcb_connection, - self->priv->xcb_screen_number); + root_window = get_root_window (priv->xcb_connection, + priv->xcb_screen_number); if (root_window == XCB_WINDOW_NONE) { g_debug ("couldn't find root window\n"); goto out; } - get_property_cookie = xcb_get_property (self->priv->xcb_connection, + get_property_cookie = xcb_get_property (priv->xcb_connection, FALSE, root_window, atom_reply->atom, @@ -1674,7 +1810,7 @@ gdm_display_set_windowpath (GdmDisplay *self) 0, 1); - get_property_reply = xcb_get_property_reply (self->priv->xcb_connection, get_property_cookie, NULL); + get_property_reply = xcb_get_property_reply (priv->xcb_connection, get_property_cookie, NULL); if (get_property_reply == NULL) { g_debug ("no XFree86_VT property\n"); @@ -1702,38 +1838,40 @@ out: gboolean gdm_display_connect (GdmDisplay *self) { + GdmDisplayPrivate *priv; xcb_auth_info_t *auth_info = NULL; gboolean ret; + priv = gdm_display_get_instance_private (self); ret = FALSE; - g_debug ("GdmDisplay: Server is ready - opening display %s", self->priv->x11_display_name); + g_debug ("GdmDisplay: Server is ready - opening display %s", priv->x11_display_name); /* Get access to the display independent of current hostname */ - if (self->priv->x11_cookie != NULL) { + if (priv->x11_cookie != NULL) { auth_info = g_alloca (sizeof (xcb_auth_info_t)); auth_info->namelen = strlen ("MIT-MAGIC-COOKIE-1"); auth_info->name = "MIT-MAGIC-COOKIE-1"; - auth_info->datalen = self->priv->x11_cookie_size; - auth_info->data = self->priv->x11_cookie; + auth_info->datalen = priv->x11_cookie_size; + auth_info->data = priv->x11_cookie; } - self->priv->xcb_connection = xcb_connect_to_display_with_auth_info (self->priv->x11_display_name, - auth_info, - &self->priv->xcb_screen_number); + priv->xcb_connection = xcb_connect_to_display_with_auth_info (priv->x11_display_name, + auth_info, + &priv->xcb_screen_number); - if (xcb_connection_has_error (self->priv->xcb_connection)) { - g_clear_pointer (&self->priv->xcb_connection, xcb_disconnect); - g_warning ("Unable to connect to display %s", self->priv->x11_display_name); + if (xcb_connection_has_error (priv->xcb_connection)) { + g_clear_pointer (&priv->xcb_connection, xcb_disconnect); + g_warning ("Unable to connect to display %s", priv->x11_display_name); ret = FALSE; - } else if (self->priv->is_local) { + } else if (priv->is_local) { XHostAddress host_entries[3]; xcb_void_cookie_t cookies[3]; int i; - g_debug ("GdmDisplay: Connected to display %s", self->priv->x11_display_name); + g_debug ("GdmDisplay: Connected to display %s", priv->x11_display_name); ret = TRUE; /* Give programs access to the display independent of current hostname @@ -1741,7 +1879,7 @@ gdm_display_connect (GdmDisplay *self) setup_xhost_auth (host_entries); for (i = 0; i < G_N_ELEMENTS (host_entries); i++) { - cookies[i] = xcb_change_hosts_checked (self->priv->xcb_connection, + cookies[i] = xcb_change_hosts_checked (priv->xcb_connection, XCB_HOST_MODE_INSERT, host_entries[i].family, host_entries[i].length, @@ -1751,7 +1889,7 @@ gdm_display_connect (GdmDisplay *self) for (i = 0; i < G_N_ELEMENTS (cookies); i++) { xcb_generic_error_t *xcb_error; - xcb_error = xcb_request_check (self->priv->xcb_connection, cookies[i]); + xcb_error = xcb_request_check (priv->xcb_connection, cookies[i]); if (xcb_error != NULL) { g_debug ("Failed to give system user '%s' access to the display. Trying to proceed.", host_entries[i].address + sizeof ("localuser")); @@ -1763,7 +1901,7 @@ gdm_display_connect (GdmDisplay *self) gdm_display_set_windowpath (self); } else { - g_debug ("GdmDisplay: Connected to display %s", self->priv->x11_display_name); + g_debug ("GdmDisplay: Connected to display %s", priv->x11_display_name); ret = TRUE; } diff --git a/daemon/gdm-display.h b/daemon/gdm-display.h index 33dc3be4..ef3736cd 100644 --- a/daemon/gdm-display.h +++ b/daemon/gdm-display.h @@ -27,14 +27,8 @@ G_BEGIN_DECLS -#define GDM_TYPE_DISPLAY (gdm_display_get_type ()) -#define GDM_DISPLAY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_DISPLAY, GdmDisplay)) -#define GDM_DISPLAY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_DISPLAY, GdmDisplayClass)) -#define GDM_IS_DISPLAY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_DISPLAY)) -#define GDM_IS_DISPLAY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_DISPLAY)) -#define GDM_DISPLAY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_DISPLAY, GdmDisplayClass)) - -typedef struct GdmDisplayPrivate GdmDisplayPrivate; +#define GDM_TYPE_DISPLAY (gdm_display_get_type ()) +G_DECLARE_DERIVABLE_TYPE (GdmDisplay, gdm_display, GDM, DISPLAY, GObject) typedef enum { GDM_DISPLAY_UNMANAGED = 0, @@ -45,20 +39,14 @@ typedef enum { GDM_DISPLAY_FAILED, } GdmDisplayStatus; -typedef struct -{ - GObject parent; - GdmDisplayPrivate *priv; -} GdmDisplay; - -typedef struct +struct _GdmDisplayClass { GObjectClass parent_class; /* methods */ gboolean (*prepare) (GdmDisplay *display); void (*manage) (GdmDisplay *self); -} GdmDisplayClass; +}; typedef enum { @@ -70,7 +58,6 @@ typedef enum #define GDM_DISPLAY_ERROR gdm_display_error_quark () GQuark gdm_display_error_quark (void); -GType gdm_display_get_type (void); int gdm_display_get_status (GdmDisplay *display); time_t gdm_display_get_creation_time (GdmDisplay *display); diff --git a/daemon/gdm-legacy-display.c b/daemon/gdm-legacy-display.c index 0dd8c734..e53d82b2 100644 --- a/daemon/gdm-legacy-display.c +++ b/daemon/gdm-legacy-display.c @@ -45,10 +45,10 @@ #include "gdm-settings-direct.h" #include "gdm-settings-keys.h" -#define GDM_LEGACY_DISPLAY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_LEGACY_DISPLAY, GdmLegacyDisplayPrivate)) - -struct GdmLegacyDisplayPrivate +struct _GdmLegacyDisplay { + GdmDisplay parent; + GdmDBusLocalDisplay *skeleton; GdmServer *server; @@ -70,10 +70,10 @@ gdm_legacy_display_constructor (GType type, n_construct_properties, construct_properties)); - display->priv->skeleton = GDM_DBUS_LOCAL_DISPLAY (gdm_dbus_local_display_skeleton_new ()); + display->skeleton = GDM_DBUS_LOCAL_DISPLAY (gdm_dbus_local_display_skeleton_new ()); g_dbus_object_skeleton_add_interface (gdm_display_get_object_skeleton (GDM_DISPLAY (display)), - G_DBUS_INTERFACE_SKELETON (display->priv->skeleton)); + G_DBUS_INTERFACE_SKELETON (display->skeleton)); return G_OBJECT (display); } @@ -83,8 +83,8 @@ gdm_legacy_display_finalize (GObject *object) { GdmLegacyDisplay *display = GDM_LEGACY_DISPLAY (object); - g_clear_object (&display->priv->skeleton); - g_clear_object (&display->priv->server); + g_clear_object (&display->skeleton); + g_clear_object (&display->server); G_OBJECT_CLASS (gdm_legacy_display_parent_class)->finalize (object); } @@ -205,7 +205,7 @@ gdm_legacy_display_manage (GdmDisplay *display) "is-initial", &is_initial, NULL); - self->priv->server = gdm_server_new (display_name, seat_id, auth_file, is_initial); + self->server = gdm_server_new (display_name, seat_id, auth_file, is_initial); g_free (display_name); g_free (auth_file); @@ -213,25 +213,25 @@ gdm_legacy_display_manage (GdmDisplay *display) disable_tcp = TRUE; if (gdm_settings_direct_get_boolean (GDM_KEY_DISALLOW_TCP, &disable_tcp)) { - g_object_set (self->priv->server, + g_object_set (self->server, "disable-tcp", disable_tcp, NULL); } - g_signal_connect (self->priv->server, + g_signal_connect (self->server, "exited", G_CALLBACK (on_server_exited), self); - g_signal_connect (self->priv->server, + g_signal_connect (self->server, "died", G_CALLBACK (on_server_died), self); - g_signal_connect (self->priv->server, + g_signal_connect (self->server, "ready", G_CALLBACK (on_server_ready), self); - res = gdm_server_start (self->priv->server); + res = gdm_server_start (self->server); if (! res) { g_warning (_("Could not start the X " "server (your graphical environment) " @@ -259,8 +259,6 @@ gdm_legacy_display_class_init (GdmLegacyDisplayClass *klass) display_class->prepare = gdm_legacy_display_prepare; display_class->manage = gdm_legacy_display_manage; - - g_type_class_add_private (klass, sizeof (GdmLegacyDisplayPrivate)); } static void @@ -272,8 +270,8 @@ on_display_status_changed (GdmLegacyDisplay *self) switch (status) { case GDM_DISPLAY_UNMANAGED: - if (self->priv->server != NULL) - gdm_server_stop (self->priv->server); + if (self->server != NULL) + gdm_server_stop (self->server); break; default: break; @@ -283,9 +281,6 @@ on_display_status_changed (GdmLegacyDisplay *self) static void gdm_legacy_display_init (GdmLegacyDisplay *legacy_display) { - - legacy_display->priv = GDM_LEGACY_DISPLAY_GET_PRIVATE (legacy_display); - g_signal_connect (legacy_display, "notify::status", G_CALLBACK (on_display_status_changed), NULL); diff --git a/daemon/gdm-legacy-display.h b/daemon/gdm-legacy-display.h index 050a14ee..9f98c830 100644 --- a/daemon/gdm-legacy-display.h +++ b/daemon/gdm-legacy-display.h @@ -27,28 +27,9 @@ G_BEGIN_DECLS -#define GDM_TYPE_LEGACY_DISPLAY (gdm_legacy_display_get_type ()) -#define GDM_LEGACY_DISPLAY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_LEGACY_DISPLAY, GdmLegacyDisplay)) -#define GDM_LEGACY_DISPLAY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_LEGACY_DISPLAY, GdmLegacyDisplayClass)) -#define GDM_IS_LEGACY_DISPLAY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_LEGACY_DISPLAY)) -#define GDM_IS_LEGACY_DISPLAY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_LEGACY_DISPLAY)) -#define GDM_LEGACY_DISPLAY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_LEGACY_DISPLAY, GdmLegacyDisplayClass)) +#define GDM_TYPE_LEGACY_DISPLAY (gdm_legacy_display_get_type ()) +G_DECLARE_FINAL_TYPE (GdmLegacyDisplay, gdm_legacy_display, GDM, LEGACY_DISPLAY, GdmDisplay) -typedef struct GdmLegacyDisplayPrivate GdmLegacyDisplayPrivate; - -typedef struct -{ - GdmDisplay parent; - GdmLegacyDisplayPrivate *priv; -} GdmLegacyDisplay; - -typedef struct -{ - GdmDisplayClass parent_class; - -} GdmLegacyDisplayClass; - -GType gdm_legacy_display_get_type (void); GdmDisplay * gdm_legacy_display_new (int display_number); diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c index 891c2537..5b9a48a1 100644 --- a/daemon/gdm-local-display-factory.c +++ b/daemon/gdm-local-display-factory.c @@ -42,8 +42,6 @@ #include "gdm-local-display.h" #include "gdm-legacy-display.h" -#define GDM_LOCAL_DISPLAY_FACTORY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_LOCAL_DISPLAY_FACTORY, GdmLocalDisplayFactoryPrivate)) - #define GDM_DBUS_PATH "/org/gnome/DisplayManager" #define GDM_LOCAL_DISPLAY_FACTORY_DBUS_PATH GDM_DBUS_PATH "/LocalDisplayFactory" #define GDM_MANAGER_DBUS_NAME "org.gnome.DisplayManager.LocalDisplayFactory" @@ -51,8 +49,10 @@ #define MAX_DISPLAY_FAILURES 5 #define WAIT_TO_FINISH_TIMEOUT 10 /* seconds */ -struct GdmLocalDisplayFactoryPrivate +struct _GdmLocalDisplayFactory { + GdmDisplayFactory parent; + GdmDBusLocalDisplayFactory *skeleton; GDBusConnection *connection; GHashTable *used_display_numbers; @@ -143,7 +143,7 @@ take_next_display_number (GdmLocalDisplayFactory *factory) ret = 0; list = NULL; - g_hash_table_foreach (factory->priv->used_display_numbers, (GHFunc)listify_hash, &list); + g_hash_table_foreach (factory->used_display_numbers, (GHFunc)listify_hash, &list); if (list == NULL) { goto out; } @@ -175,7 +175,7 @@ take_next_display_number (GdmLocalDisplayFactory *factory) /* now reserve this number */ g_debug ("GdmLocalDisplayFactory: Reserving X display: %u", ret); - g_hash_table_insert (factory->priv->used_display_numbers, GUINT_TO_POINTER (ret), NULL); + g_hash_table_insert (factory->used_display_numbers, GUINT_TO_POINTER (ret), NULL); return ret; } @@ -329,10 +329,10 @@ on_display_status_changed (GdmDisplay *display, g_debug ("GdmLocalDisplayFactory: display status changed: %d", status); switch (status) { case GDM_DISPLAY_FINISHED: - /* remove the display number from factory->priv->used_display_numbers + /* remove the display number from factory->used_display_numbers so that it may be reused */ if (num != -1) { - g_hash_table_remove (factory->priv->used_display_numbers, GUINT_TO_POINTER (num)); + g_hash_table_remove (factory->used_display_numbers, GUINT_TO_POINTER (num)); } gdm_display_factory_queue_purge_displays (GDM_DISPLAY_FACTORY (factory)); @@ -343,22 +343,22 @@ on_display_status_changed (GdmDisplay *display, */ if (is_local && g_strcmp0 (session_class, "greeter") != 0) { /* reset num failures */ - factory->priv->num_failures = 0; + factory->num_failures = 0; gdm_local_display_factory_sync_seats (factory); } break; case GDM_DISPLAY_FAILED: - /* leave the display number in factory->priv->used_display_numbers + /* leave the display number in factory->used_display_numbers so that it doesn't get reused */ gdm_display_factory_queue_purge_displays (GDM_DISPLAY_FACTORY (factory)); /* Create a new equivalent display if it was static */ if (is_local) { - factory->priv->num_failures++; + factory->num_failures++; - if (factory->priv->num_failures > MAX_DISPLAY_FAILURES) { + if (factory->num_failures > MAX_DISPLAY_FAILURES) { /* oh shit */ g_warning ("GdmLocalDisplayFactory: maximum number of X display failures reached: check X server log for errors"); } else { @@ -462,7 +462,7 @@ create_display (GdmLocalDisplayFactory *factory, g_object_set (G_OBJECT (display), "status", GDM_DISPLAY_MANAGED, NULL); g_debug ("GdmLocalDisplayFactory: session %s found, activating.", login_session_id); - gdm_activate_session_by_id (factory->priv->connection, seat_id, login_session_id); + gdm_activate_session_by_id (factory->connection, seat_id, login_session_id); return NULL; } } @@ -523,7 +523,7 @@ gdm_local_display_factory_sync_seats (GdmLocalDisplayFactory *factory) const char *seat; g_debug ("GdmLocalDisplayFactory: enumerating seats from logind"); - result = g_dbus_connection_call_sync (factory->priv->connection, + result = g_dbus_connection_call_sync (factory->connection, "org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", @@ -610,7 +610,7 @@ static gboolean wait_to_finish_timeout (GdmLocalDisplayFactory *factory) { finish_waiting_displays_on_seat (factory, "seat0"); - factory->priv->wait_to_finish_timeout_id = 0; + factory->wait_to_finish_timeout_id = 0; return G_SOURCE_REMOVE; } @@ -648,10 +648,10 @@ maybe_stop_greeter_in_background (GdmLocalDisplayFactory *factory, g_object_set (G_OBJECT (display), "status", GDM_DISPLAY_WAITING_TO_FINISH, NULL); /* We stop the greeter after a timeout to avoid flicker */ - if (factory->priv->wait_to_finish_timeout_id != 0) - g_source_remove (factory->priv->wait_to_finish_timeout_id); + if (factory->wait_to_finish_timeout_id != 0) + g_source_remove (factory->wait_to_finish_timeout_id); - factory->priv->wait_to_finish_timeout_id = + factory->wait_to_finish_timeout_id = g_timeout_add_seconds (WAIT_TO_FINISH_TIMEOUT, (GSourceFunc)wait_to_finish_timeout, factory); @@ -706,23 +706,23 @@ on_vt_changed (GIOChannel *source, g_strchomp (tty_of_active_vt); /* don't do anything if we're on the same VT we were before */ - if (g_strcmp0 (tty_of_active_vt, factory->priv->tty_of_active_vt) == 0) { + if (g_strcmp0 (tty_of_active_vt, factory->tty_of_active_vt) == 0) { g_debug ("GdmLocalDisplayFactory: VT changed to the same VT, ignoring"); return G_SOURCE_CONTINUE; } - tty_of_previous_vt = g_steal_pointer (&factory->priv->tty_of_active_vt); - factory->priv->tty_of_active_vt = g_steal_pointer (&tty_of_active_vt); + tty_of_previous_vt = g_steal_pointer (&factory->tty_of_active_vt); + factory->tty_of_active_vt = g_steal_pointer (&tty_of_active_vt); /* don't do anything at start up */ if (tty_of_previous_vt == NULL) { g_debug ("GdmLocalDisplayFactory: VT is %s at startup", - factory->priv->tty_of_active_vt); + factory->tty_of_active_vt); return G_SOURCE_CONTINUE; } g_debug ("GdmLocalDisplayFactory: VT changed from %s to %s", - tty_of_previous_vt, factory->priv->tty_of_active_vt); + tty_of_previous_vt, factory->tty_of_active_vt); /* if the old VT was running a wayland login screen kill it */ @@ -759,7 +759,7 @@ on_vt_changed (GIOChannel *source, * on it (unless a login screen is already running elsewhere, then * jump to that login screen) */ - if (strcmp (factory->priv->tty_of_active_vt, tty_of_initial_vt) != 0) { + if (strcmp (factory->tty_of_active_vt, tty_of_initial_vt) != 0) { g_debug ("GdmLocalDisplayFactory: active VT is not initial VT, so ignoring"); return G_SOURCE_CONTINUE; } @@ -780,7 +780,7 @@ gdm_local_display_factory_start_monitor (GdmLocalDisplayFactory *factory) { g_autoptr (GIOChannel) io_channel = NULL; - factory->priv->seat_new_id = g_dbus_connection_signal_subscribe (factory->priv->connection, + factory->seat_new_id = g_dbus_connection_signal_subscribe (factory->connection, "org.freedesktop.login1", "org.freedesktop.login1.Manager", "SeatNew", @@ -790,7 +790,7 @@ gdm_local_display_factory_start_monitor (GdmLocalDisplayFactory *factory) on_seat_new, g_object_ref (factory), g_object_unref); - factory->priv->seat_removed_id = g_dbus_connection_signal_subscribe (factory->priv->connection, + factory->seat_removed_id = g_dbus_connection_signal_subscribe (factory->connection, "org.freedesktop.login1", "org.freedesktop.login1.Manager", "SeatRemoved", @@ -805,7 +805,7 @@ gdm_local_display_factory_start_monitor (GdmLocalDisplayFactory *factory) io_channel = g_io_channel_new_file ("/sys/class/tty/tty0/active", "r", NULL); if (io_channel != NULL) { - factory->priv->active_vt_watch_id = + factory->active_vt_watch_id = g_io_add_watch (io_channel, G_IO_PRI, (GIOFunc) @@ -818,27 +818,27 @@ gdm_local_display_factory_start_monitor (GdmLocalDisplayFactory *factory) static void gdm_local_display_factory_stop_monitor (GdmLocalDisplayFactory *factory) { - if (factory->priv->seat_new_id) { - g_dbus_connection_signal_unsubscribe (factory->priv->connection, - factory->priv->seat_new_id); - factory->priv->seat_new_id = 0; + if (factory->seat_new_id) { + g_dbus_connection_signal_unsubscribe (factory->connection, + factory->seat_new_id); + factory->seat_new_id = 0; } - if (factory->priv->seat_removed_id) { - g_dbus_connection_signal_unsubscribe (factory->priv->connection, - factory->priv->seat_removed_id); - factory->priv->seat_removed_id = 0; + if (factory->seat_removed_id) { + g_dbus_connection_signal_unsubscribe (factory->connection, + factory->seat_removed_id); + factory->seat_removed_id = 0; } #if defined(ENABLE_WAYLAND_SUPPORT) && defined(ENABLE_USER_DISPLAY_SERVER) - if (factory->priv->wait_to_finish_timeout_id != 0) { - g_source_remove (factory->priv->wait_to_finish_timeout_id); - factory->priv->wait_to_finish_timeout_id = 0; + if (factory->wait_to_finish_timeout_id != 0) { + g_source_remove (factory->wait_to_finish_timeout_id); + factory->wait_to_finish_timeout_id = 0; } - if (factory->priv->active_vt_watch_id) { - g_source_remove (factory->priv->active_vt_watch_id); - factory->priv->active_vt_watch_id = 0; + if (factory->active_vt_watch_id) { + g_source_remove (factory->active_vt_watch_id); + factory->active_vt_watch_id = 0; } - g_clear_pointer (&factory->priv->tty_of_active_vt, g_free); + g_clear_pointer (&factory->tty_of_active_vt, g_free); #endif } @@ -972,22 +972,22 @@ register_factory (GdmLocalDisplayFactory *factory) GError *error = NULL; error = NULL; - factory->priv->connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error); - if (factory->priv->connection == NULL) { + factory->connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error); + if (factory->connection == NULL) { g_critical ("error getting system bus: %s", error->message); g_error_free (error); exit (EXIT_FAILURE); } - factory->priv->skeleton = GDM_DBUS_LOCAL_DISPLAY_FACTORY (gdm_dbus_local_display_factory_skeleton_new ()); + factory->skeleton = GDM_DBUS_LOCAL_DISPLAY_FACTORY (gdm_dbus_local_display_factory_skeleton_new ()); - g_signal_connect (factory->priv->skeleton, + g_signal_connect (factory->skeleton, "handle-create-transient-display", G_CALLBACK (handle_create_transient_display), factory); - if (!g_dbus_interface_skeleton_export (G_DBUS_INTERFACE_SKELETON (factory->priv->skeleton), - factory->priv->connection, + if (!g_dbus_interface_skeleton_export (G_DBUS_INTERFACE_SKELETON (factory->skeleton), + factory->connection, GDM_LOCAL_DISPLAY_FACTORY_DBUS_PATH, &error)) { g_critical ("error exporting LocalDisplayFactory object: %s", error->message); @@ -1031,16 +1031,12 @@ gdm_local_display_factory_class_init (GdmLocalDisplayFactoryClass *klass) factory_class->start = gdm_local_display_factory_start; factory_class->stop = gdm_local_display_factory_stop; - - g_type_class_add_private (klass, sizeof (GdmLocalDisplayFactoryPrivate)); } static void gdm_local_display_factory_init (GdmLocalDisplayFactory *factory) { - factory->priv = GDM_LOCAL_DISPLAY_FACTORY_GET_PRIVATE (factory); - - factory->priv->used_display_numbers = g_hash_table_new (NULL, NULL); + factory->used_display_numbers = g_hash_table_new (NULL, NULL); } static void @@ -1053,12 +1049,12 @@ gdm_local_display_factory_finalize (GObject *object) factory = GDM_LOCAL_DISPLAY_FACTORY (object); - g_return_if_fail (factory->priv != NULL); + g_return_if_fail (factory != NULL); - g_clear_object (&factory->priv->connection); - g_clear_object (&factory->priv->skeleton); + g_clear_object (&factory->connection); + g_clear_object (&factory->skeleton); - g_hash_table_destroy (factory->priv->used_display_numbers); + g_hash_table_destroy (factory->used_display_numbers); gdm_local_display_factory_stop_monitor (factory); diff --git a/daemon/gdm-local-display-factory.h b/daemon/gdm-local-display-factory.h index e55e82b4..49c7140f 100644 --- a/daemon/gdm-local-display-factory.h +++ b/daemon/gdm-local-display-factory.h @@ -29,25 +29,8 @@ G_BEGIN_DECLS -#define GDM_TYPE_LOCAL_DISPLAY_FACTORY (gdm_local_display_factory_get_type ()) -#define GDM_LOCAL_DISPLAY_FACTORY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_LOCAL_DISPLAY_FACTORY, GdmLocalDisplayFactory)) -#define GDM_LOCAL_DISPLAY_FACTORY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_LOCAL_DISPLAY_FACTORY, GdmLocalDisplayFactoryClass)) -#define GDM_IS_LOCAL_DISPLAY_FACTORY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_LOCAL_DISPLAY_FACTORY)) -#define GDM_IS_LOCAL_DISPLAY_FACTORY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_LOCAL_DISPLAY_FACTORY)) -#define GDM_LOCAL_DISPLAY_FACTORY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_LOCAL_DISPLAY_FACTORY, GdmLocalDisplayFactoryClass)) - -typedef struct GdmLocalDisplayFactoryPrivate GdmLocalDisplayFactoryPrivate; - -typedef struct -{ - GdmDisplayFactory parent; - GdmLocalDisplayFactoryPrivate *priv; -} GdmLocalDisplayFactory; - -typedef struct -{ - GdmDisplayFactoryClass parent_class; -} GdmLocalDisplayFactoryClass; +#define GDM_TYPE_LOCAL_DISPLAY_FACTORY (gdm_local_display_factory_get_type ()) +G_DECLARE_FINAL_TYPE (GdmLocalDisplayFactory, gdm_local_display_factory, GDM, LOCAL_DISPLAY_FACTORY, GdmDisplayFactory) typedef enum { @@ -57,7 +40,6 @@ typedef enum #define GDM_LOCAL_DISPLAY_FACTORY_ERROR gdm_local_display_factory_error_quark () GQuark gdm_local_display_factory_error_quark (void); -GType gdm_local_display_factory_get_type (void); GdmLocalDisplayFactory * gdm_local_display_factory_new (GdmDisplayStore *display_store); diff --git a/daemon/gdm-local-display.c b/daemon/gdm-local-display.c index 3b682262..69945d95 100644 --- a/daemon/gdm-local-display.c +++ b/daemon/gdm-local-display.c @@ -44,10 +44,9 @@ #include "gdm-settings-direct.h" #include "gdm-settings-keys.h" -#define GDM_LOCAL_DISPLAY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_LOCAL_DISPLAY, GdmLocalDisplayPrivate)) - -struct GdmLocalDisplayPrivate +struct _GdmLocalDisplay { + GdmDisplay parent; GdmDBusLocalDisplay *skeleton; }; @@ -67,10 +66,10 @@ gdm_local_display_constructor (GType type, n_construct_properties, construct_properties)); - display->priv->skeleton = GDM_DBUS_LOCAL_DISPLAY (gdm_dbus_local_display_skeleton_new ()); + display->skeleton = GDM_DBUS_LOCAL_DISPLAY (gdm_dbus_local_display_skeleton_new ()); g_dbus_object_skeleton_add_interface (gdm_display_get_object_skeleton (GDM_DISPLAY (display)), - G_DBUS_INTERFACE_SKELETON (display->priv->skeleton)); + G_DBUS_INTERFACE_SKELETON (display->skeleton)); return G_OBJECT (display); } @@ -80,7 +79,7 @@ gdm_local_display_finalize (GObject *object) { GdmLocalDisplay *display = GDM_LOCAL_DISPLAY (object); - g_clear_object (&display->priv->skeleton); + g_clear_object (&display->skeleton); G_OBJECT_CLASS (gdm_local_display_parent_class)->finalize (object); } @@ -149,15 +148,11 @@ gdm_local_display_class_init (GdmLocalDisplayClass *klass) object_class->finalize = gdm_local_display_finalize; display_class->prepare = gdm_local_display_prepare; - - g_type_class_add_private (klass, sizeof (GdmLocalDisplayPrivate)); } static void gdm_local_display_init (GdmLocalDisplay *local_display) { - - local_display->priv = GDM_LOCAL_DISPLAY_GET_PRIVATE (local_display); } GdmDisplay * diff --git a/daemon/gdm-local-display.h b/daemon/gdm-local-display.h index dec22f5b..5bd7f923 100644 --- a/daemon/gdm-local-display.h +++ b/daemon/gdm-local-display.h @@ -28,27 +28,8 @@ G_BEGIN_DECLS #define GDM_TYPE_LOCAL_DISPLAY (gdm_local_display_get_type ()) -#define GDM_LOCAL_DISPLAY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_LOCAL_DISPLAY, GdmLocalDisplay)) -#define GDM_LOCAL_DISPLAY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_LOCAL_DISPLAY, GdmLocalDisplayClass)) -#define GDM_IS_LOCAL_DISPLAY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_LOCAL_DISPLAY)) -#define GDM_IS_LOCAL_DISPLAY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_LOCAL_DISPLAY)) -#define GDM_LOCAL_DISPLAY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_LOCAL_DISPLAY, GdmLocalDisplayClass)) +G_DECLARE_FINAL_TYPE (GdmLocalDisplay, gdm_local_display, GDM, LOCAL_DISPLAY, GdmDisplay) -typedef struct GdmLocalDisplayPrivate GdmLocalDisplayPrivate; - -typedef struct -{ - GdmDisplay parent; - GdmLocalDisplayPrivate *priv; -} GdmLocalDisplay; - -typedef struct -{ - GdmDisplayClass parent_class; - -} GdmLocalDisplayClass; - -GType gdm_local_display_get_type (void); GdmDisplay * gdm_local_display_new (void); diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c index 83fba99c..aede6c53 100644 --- a/daemon/gdm-server.c +++ b/daemon/gdm-server.c @@ -63,12 +63,12 @@ extern char **environ; -#define GDM_SERVER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_SERVER, GdmServerPrivate)) - #define MAX_LOGS 5 -struct GdmServerPrivate +struct _GdmServer { + GObject parent; + char *command; GPid pid; @@ -127,9 +127,9 @@ gdm_server_ready (GdmServer *server) g_debug ("GdmServer: Got USR1 from X server - emitting READY"); gdm_run_script (GDMCONFDIR "/Init", GDM_USERNAME, - server->priv->display_name, + server->display_name, NULL, /* hostname */ - server->priv->auth_file); + server->auth_file); g_signal_emit (server, signals[READY], 0); } @@ -150,7 +150,7 @@ got_sigusr1 (gpointer user_data) for (l = active_servers; l; l = l->next) { GdmServer *server = l->data; - if (server->priv->pid == pid) + if (server->pid == pid) gdm_server_ready (server); } @@ -207,7 +207,7 @@ gdm_server_init_command (GdmServer *server) const char *debug_options; const char *verbosity = ""; - if (server->priv->command != NULL) { + if (server->command != NULL) { return; } @@ -247,16 +247,16 @@ gdm_server_init_command (GdmServer *server) goto fallback; } - if (server->priv->display_seat_id == NULL || - strcmp (server->priv->display_seat_id, "seat0") == 0) { + if (server->display_seat_id == NULL || + strcmp (server->display_seat_id, "seat0") == 0) { goto fallback; } - server->priv->command = g_strdup_printf (SYSTEMD_X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options); + server->command = g_strdup_printf (SYSTEMD_X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options); return; fallback: - server->priv->command = g_strdup_printf (X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options); + server->command = g_strdup_printf (X_SERVER X_SERVER_ARG_FORMAT, verbosity, debug_options); } @@ -275,7 +275,7 @@ gdm_server_resolve_command_line (GdmServer *server, gdm_server_init_command (server); - g_shell_parse_argv (server->priv->command, &argc, &argv, NULL); + g_shell_parse_argv (server->command, &argc, &argv, NULL); for (len = 0; argv != NULL && argv[len] != NULL; len++) { char *arg = argv[len]; @@ -299,17 +299,17 @@ gdm_server_resolve_command_line (GdmServer *server, } /* server number is the FIRST argument, before any others */ - argv[1] = g_strdup (server->priv->display_name); + argv[1] = g_strdup (server->display_name); len++; - if (server->priv->auth_file != NULL) { + if (server->auth_file != NULL) { argv[len++] = g_strdup ("-auth"); - argv[len++] = g_strdup (server->priv->auth_file); + argv[len++] = g_strdup (server->auth_file); } - if (server->priv->display_seat_id != NULL) { + if (server->display_seat_id != NULL) { argv[len++] = g_strdup ("-seat"); - argv[len++] = g_strdup (server->priv->display_seat_id); + argv[len++] = g_strdup (server->display_seat_id); } /* If we were compiled with Xserver >= 1.17 we need to specify @@ -318,12 +318,12 @@ gdm_server_resolve_command_line (GdmServer *server, * -nolisten tcp to disable listening on tcp sockets. */ #ifdef HAVE_XSERVER_THAT_DEFAULTS_TO_LOCAL_ONLY - if (!server->priv->disable_tcp && ! query_in_arglist) { + if (!server->disable_tcp && ! query_in_arglist) { argv[len++] = g_strdup ("-listen"); argv[len++] = g_strdup ("tcp"); } #else - if (server->priv->disable_tcp && ! query_in_arglist) { + if (server->disable_tcp && ! query_in_arglist) { argv[len++] = g_strdup ("-nolisten"); argv[len++] = g_strdup ("tcp"); } @@ -374,14 +374,14 @@ change_user (GdmServer *server) { struct passwd *pwent; - if (server->priv->user_name == NULL) { + if (server->user_name == NULL) { return; } - gdm_get_pwent_for_name (server->priv->user_name, &pwent); + gdm_get_pwent_for_name (server->user_name, &pwent); if (pwent == NULL) { g_warning (_("Server was to be spawned by user %s but that user doesn’t exist"), - server->priv->user_name); + server->user_name); _exit (EXIT_FAILURE); } @@ -431,10 +431,10 @@ gdm_server_setup_journal_fds (GdmServer *server) char *identifier; gsize size; - size = strlen (prefix) + strlen (server->priv->display_name) + 1; + size = strlen (prefix) + strlen (server->display_name) + 1; identifier = g_alloca (size); strcpy (identifier, prefix); - strcat (identifier, server->priv->display_name); + strcat (identifier, server->display_name); identifier[size - 1] = '\0'; out = sd_journal_stream_fd (identifier, LOG_INFO, FALSE); @@ -462,8 +462,8 @@ gdm_server_setup_logfile (GdmServer *server) char *log_file; char *log_path; - log_file = g_strdup_printf ("%s.log", server->priv->display_name); - log_path = g_build_filename (server->priv->log_dir, log_file, NULL); + log_file = g_strdup_printf ("%s.log", server->display_name); + log_path = g_build_filename (server->log_dir, log_file, NULL); g_free (log_file); /* Rotate the X server logs */ @@ -483,7 +483,7 @@ gdm_server_setup_logfile (GdmServer *server) } else { g_warning (_("%s: Could not open log file for display %s!"), "gdm_server_spawn", - server->priv->display_name); + server->display_name); } } @@ -532,11 +532,11 @@ server_child_setup (GdmServer *server) prctl (PR_SET_PDEATHSIG, SIGTERM); #endif - if (server->priv->priority != 0) { - if (setpriority (PRIO_PROCESS, 0, server->priv->priority)) { + if (server->priority != 0) { + if (setpriority (PRIO_PROCESS, 0, server->priority)) { g_warning (_("%s: Server priority couldn’t be set to %d: %s"), "gdm_server_spawn", - server->priv->priority, + server->priority, g_strerror (errno)); } } @@ -575,12 +575,12 @@ get_server_environment (GdmServer *server) } /* modify environment here */ - g_hash_table_insert (hash, g_strdup ("DISPLAY"), g_strdup (server->priv->display_name)); + g_hash_table_insert (hash, g_strdup ("DISPLAY"), g_strdup (server->display_name)); - if (server->priv->user_name != NULL) { + if (server->user_name != NULL) { struct passwd *pwent; - gdm_get_pwent_for_name (server->priv->user_name, &pwent); + gdm_get_pwent_for_name (server->user_name, &pwent); if (pwent->pw_dir != NULL && g_file_test (pwent->pw_dir, G_FILE_TEST_EXISTS)) { @@ -612,7 +612,7 @@ server_add_xserver_args (GdmServer *server, int i; len = *argc; - g_shell_parse_argv (server->priv->session_args, &count, &args, NULL); + g_shell_parse_argv (server->session_args, &count, &args, NULL); *argv = g_renew (char *, *argv, len + count + 1); for (i=0; i < count;i++) { @@ -649,8 +649,8 @@ server_child_watch (GPid pid, g_signal_emit (server, signals [DIED], 0, num); } - g_spawn_close_pid (server->priv->pid); - server->priv->pid = -1; + g_spawn_close_pid (server->pid); + server->pid = -1; g_object_unref (server); } @@ -680,7 +680,7 @@ gdm_server_spawn (GdmServer *server, &argc, &argv); - if (server->priv->session_args) { + if (server->session_args) { server_add_xserver_args (server, &argc, &argv); } @@ -688,7 +688,7 @@ gdm_server_spawn (GdmServer *server, g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, _("%s: Empty server command for display %s"), "gdm_server_spawn", - server->priv->display_name); + server->display_name); goto out; } @@ -713,16 +713,16 @@ gdm_server_spawn (GdmServer *server, G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD, (GSpawnChildSetupFunc)server_child_setup, server, - &server->priv->pid, + &server->pid, NULL, NULL, NULL, error)) goto out; - g_debug ("GdmServer: Started X server process %d - waiting for READY", (int)server->priv->pid); + g_debug ("GdmServer: Started X server process %d - waiting for READY", (int)server->pid); - server->priv->child_watch_id = g_child_watch_add (server->priv->pid, + server->child_watch_id = g_child_watch_add (server->pid, (GChildWatchFunc)server_child_watch, server); @@ -752,7 +752,7 @@ gdm_server_start (GdmServer *server) GError **error = &local_error; /* Hardcode the VT for the initial X server, but nothing else */ - if (server->priv->is_initial) { + if (server->is_initial) { vtarg = "vt" GDM_INITIAL_VT; } @@ -775,8 +775,8 @@ server_died (GdmServer *server) { int exit_status; - g_debug ("GdmServer: Waiting on process %d", server->priv->pid); - exit_status = gdm_wait_on_pid (server->priv->pid); + g_debug ("GdmServer: Waiting on process %d", server->pid); + exit_status = gdm_wait_on_pid (server->pid); if (WIFEXITED (exit_status) && (WEXITSTATUS (exit_status) != 0)) { g_debug ("GdmServer: Wait on child process failed"); @@ -784,12 +784,12 @@ server_died (GdmServer *server) /* exited normally */ } - g_spawn_close_pid (server->priv->pid); - server->priv->pid = -1; + g_spawn_close_pid (server->pid); + server->pid = -1; - if (server->priv->display_device != NULL) { - g_free (server->priv->display_device); - server->priv->display_device = NULL; + if (server->display_device != NULL) { + g_free (server->display_device); + server->display_device = NULL; g_object_notify (G_OBJECT (server), "display-device"); } @@ -801,19 +801,19 @@ gdm_server_stop (GdmServer *server) { int res; - if (server->priv->pid <= 1) { + if (server->pid <= 1) { return TRUE; } /* remove watch source before we can wait on child */ - if (server->priv->child_watch_id > 0) { - g_source_remove (server->priv->child_watch_id); - server->priv->child_watch_id = 0; + if (server->child_watch_id > 0) { + g_source_remove (server->child_watch_id); + server->child_watch_id = 0; } g_debug ("GdmServer: Stopping server"); - res = gdm_signal_pid (server->priv->pid, SIGTERM); + res = gdm_signal_pid (server->pid, SIGTERM); if (res < 0) { } else { server_died (server); @@ -827,46 +827,46 @@ static void _gdm_server_set_display_name (GdmServer *server, const char *name) { - g_free (server->priv->display_name); - server->priv->display_name = g_strdup (name); + g_free (server->display_name); + server->display_name = g_strdup (name); } static void _gdm_server_set_display_seat_id (GdmServer *server, const char *name) { - g_free (server->priv->display_seat_id); - server->priv->display_seat_id = g_strdup (name); + g_free (server->display_seat_id); + server->display_seat_id = g_strdup (name); } static void _gdm_server_set_auth_file (GdmServer *server, const char *auth_file) { - g_free (server->priv->auth_file); - server->priv->auth_file = g_strdup (auth_file); + g_free (server->auth_file); + server->auth_file = g_strdup (auth_file); } static void _gdm_server_set_user_name (GdmServer *server, const char *name) { - g_free (server->priv->user_name); - server->priv->user_name = g_strdup (name); + g_free (server->user_name); + server->user_name = g_strdup (name); } static void _gdm_server_set_disable_tcp (GdmServer *server, gboolean disabled) { - server->priv->disable_tcp = disabled; + server->disable_tcp = disabled; } static void _gdm_server_set_is_initial (GdmServer *server, gboolean initial) { - server->priv->is_initial = initial; + server->is_initial = initial; } static void @@ -916,26 +916,26 @@ gdm_server_get_property (GObject *object, switch (prop_id) { case PROP_DISPLAY_NAME: - g_value_set_string (value, self->priv->display_name); + g_value_set_string (value, self->display_name); break; case PROP_DISPLAY_SEAT_ID: - g_value_set_string (value, self->priv->display_seat_id); + g_value_set_string (value, self->display_seat_id); break; case PROP_DISPLAY_DEVICE: g_value_take_string (value, gdm_server_get_display_device (self)); break; case PROP_AUTH_FILE: - g_value_set_string (value, self->priv->auth_file); + g_value_set_string (value, self->auth_file); break; case PROP_USER_NAME: - g_value_set_string (value, self->priv->user_name); + g_value_set_string (value, self->user_name); break; case PROP_DISABLE_TCP: - g_value_set_boolean (value, self->priv->disable_tcp); + g_value_set_boolean (value, self->disable_tcp); break; case PROP_IS_INITIAL: - g_value_set_boolean (value, self->priv->is_initial); + g_value_set_boolean (value, self->is_initial); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -952,13 +952,11 @@ gdm_server_class_init (GdmServerClass *klass) object_class->set_property = gdm_server_set_property; object_class->finalize = gdm_server_finalize; - g_type_class_add_private (klass, sizeof (GdmServerPrivate)); - signals [READY] = g_signal_new ("ready", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (GdmServerClass, ready), + 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, @@ -968,7 +966,7 @@ gdm_server_class_init (GdmServerClass *klass) g_signal_new ("exited", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmServerClass, exited), + 0, NULL, NULL, g_cclosure_marshal_VOID__INT, @@ -979,7 +977,7 @@ gdm_server_class_init (GdmServerClass *klass) g_signal_new ("died", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmServerClass, died), + 0, NULL, NULL, g_cclosure_marshal_VOID__INT, @@ -1042,11 +1040,9 @@ gdm_server_class_init (GdmServerClass *klass) static void gdm_server_init (GdmServer *server) { - server->priv = GDM_SERVER_GET_PRIVATE (server); + server->pid = -1; - server->priv->pid = -1; - - server->priv->log_dir = g_strdup (LOGDIR); + server->log_dir = g_strdup (LOGDIR); } static void @@ -1059,18 +1055,16 @@ gdm_server_finalize (GObject *object) server = GDM_SERVER (object); - g_return_if_fail (server->priv != NULL); - gdm_server_stop (server); - g_free (server->priv->command); - g_free (server->priv->user_name); - g_free (server->priv->session_args); - g_free (server->priv->log_dir); - g_free (server->priv->display_name); - g_free (server->priv->display_seat_id); - g_free (server->priv->display_device); - g_free (server->priv->auth_file); + g_free (server->command); + g_free (server->user_name); + g_free (server->session_args); + g_free (server->log_dir); + g_free (server->display_name); + g_free (server->display_seat_id); + g_free (server->display_device); + g_free (server->auth_file); G_OBJECT_CLASS (gdm_server_parent_class)->finalize (object); } diff --git a/daemon/gdm-server.h b/daemon/gdm-server.h index 1801f734..d175f9b2 100644 --- a/daemon/gdm-server.h +++ b/daemon/gdm-server.h @@ -26,33 +26,9 @@ G_BEGIN_DECLS -#define GDM_TYPE_SERVER (gdm_server_get_type ()) -#define GDM_SERVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_SERVER, GdmServer)) -#define GDM_SERVER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_SERVER, GdmServerClass)) -#define GDM_IS_SERVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_SERVER)) -#define GDM_IS_SERVER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_SERVER)) -#define GDM_SERVER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_SERVER, GdmServerClass)) +#define GDM_TYPE_SERVER (gdm_server_get_type ()) +G_DECLARE_FINAL_TYPE (GdmServer, gdm_server, GDM, SERVER, GObject); -typedef struct GdmServerPrivate GdmServerPrivate; - -typedef struct -{ - GObject parent; - GdmServerPrivate *priv; -} GdmServer; - -typedef struct -{ - GObjectClass parent_class; - - void (* ready) (GdmServer *server); - void (* exited) (GdmServer *server, - int exit_code); - void (* died) (GdmServer *server, - int signal_number); -} GdmServerClass; - -GType gdm_server_get_type (void); GdmServer * gdm_server_new (const char *display_id, const char *seat_id, const char *auth_file, diff --git a/daemon/gdm-session-auditor.c b/daemon/gdm-session-auditor.c index c4927094..548e54b9 100644 --- a/daemon/gdm-session-auditor.c +++ b/daemon/gdm-session-auditor.c @@ -34,12 +34,12 @@ #include <glib-object.h> #include <glib/gi18n.h> -struct _GdmSessionAuditorPrivate +typedef struct _GdmSessionAuditorPrivate { char *username; char *hostname; char *display_device; -}; +} GdmSessionAuditorPrivate; static void gdm_session_auditor_finalize (GObject *object); static void gdm_session_auditor_class_install_properties (GdmSessionAuditorClass * @@ -61,7 +61,7 @@ enum { PROP_DISPLAY_DEVICE }; -G_DEFINE_TYPE (GdmSessionAuditor, gdm_session_auditor, G_TYPE_OBJECT) +G_DEFINE_TYPE_WITH_PRIVATE (GdmSessionAuditor, gdm_session_auditor, G_TYPE_OBJECT) static void gdm_session_auditor_class_init (GdmSessionAuditorClass *auditor_class) @@ -73,8 +73,6 @@ gdm_session_auditor_class_init (GdmSessionAuditorClass *auditor_class) object_class->finalize = gdm_session_auditor_finalize; gdm_session_auditor_class_install_properties (auditor_class); - - g_type_class_add_private (auditor_class, sizeof (GdmSessionAuditorPrivate)); } static void @@ -108,23 +106,21 @@ gdm_session_auditor_class_install_properties (GdmSessionAuditorClass *auditor_cl static void gdm_session_auditor_init (GdmSessionAuditor *auditor) { - auditor->priv = G_TYPE_INSTANCE_GET_PRIVATE (auditor, - GDM_TYPE_SESSION_AUDITOR, - GdmSessionAuditorPrivate); - } static void gdm_session_auditor_finalize (GObject *object) { GdmSessionAuditor *auditor; + GdmSessionAuditorPrivate *priv; GObjectClass *parent_class; auditor = GDM_SESSION_AUDITOR (object); + priv = gdm_session_auditor_get_instance_private (auditor); - g_free (auditor->priv->username); - g_free (auditor->priv->hostname); - g_free (auditor->priv->display_device); + g_free (priv->username); + g_free (priv->hostname); + g_free (priv->display_device); parent_class = G_OBJECT_CLASS (gdm_session_auditor_parent_class); @@ -137,15 +133,19 @@ void gdm_session_auditor_set_username (GdmSessionAuditor *auditor, const char *username) { + GdmSessionAuditorPrivate *priv; + g_return_if_fail (GDM_IS_SESSION_AUDITOR (auditor)); - if (username == auditor->priv->username) { + priv = gdm_session_auditor_get_instance_private (auditor); + + if (username == priv->username) { return; } - if ((username == NULL || auditor->priv->username == NULL) || - strcmp (username, auditor->priv->username) != 0) { - auditor->priv->username = g_strdup (username); + if ((username == NULL || priv->username == NULL) || + strcmp (username, priv->username) != 0) { + priv->username = g_strdup (username); g_object_notify (G_OBJECT (auditor), "username"); } } @@ -154,34 +154,51 @@ static void gdm_session_auditor_set_hostname (GdmSessionAuditor *auditor, const char *hostname) { + GdmSessionAuditorPrivate *priv; + g_return_if_fail (GDM_IS_SESSION_AUDITOR (auditor)); - auditor->priv->hostname = g_strdup (hostname); + + priv = gdm_session_auditor_get_instance_private (auditor); + priv->hostname = g_strdup (hostname); } static void gdm_session_auditor_set_display_device (GdmSessionAuditor *auditor, const char *display_device) { + GdmSessionAuditorPrivate *priv; + g_return_if_fail (GDM_IS_SESSION_AUDITOR (auditor)); - auditor->priv->display_device = g_strdup (display_device); + + priv = gdm_session_auditor_get_instance_private (auditor); + priv->display_device = g_strdup (display_device); } static char * gdm_session_auditor_get_username (GdmSessionAuditor *auditor) { - return g_strdup (auditor->priv->username); + GdmSessionAuditorPrivate *priv; + + priv = gdm_session_auditor_get_instance_private (auditor); + return g_strdup (priv->username); } static char * gdm_session_auditor_get_hostname (GdmSessionAuditor *auditor) { - return g_strdup (auditor->priv->hostname); + GdmSessionAuditorPrivate *priv; + + priv = gdm_session_auditor_get_instance_private (auditor); + return g_strdup (priv->hostname); } static char * gdm_session_auditor_get_display_device (GdmSessionAuditor *auditor) { - return g_strdup (auditor->priv->display_device); + GdmSessionAuditorPrivate *priv; + + priv = gdm_session_auditor_get_instance_private (auditor); + return g_strdup (priv->display_device); } static void diff --git a/daemon/gdm-session-auditor.h b/daemon/gdm-session-auditor.h index 1ebf390f..dde00f68 100644 --- a/daemon/gdm-session-auditor.h +++ b/daemon/gdm-session-auditor.h @@ -30,24 +30,9 @@ #include <glib-object.h> G_BEGIN_DECLS -#define GDM_TYPE_SESSION_AUDITOR (gdm_session_auditor_get_type ()) -#define GDM_SESSION_AUDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDM_TYPE_SESSION_AUDITOR, GdmSessionAuditor)) -#define GDM_SESSION_AUDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDM_TYPE_SESSION_AUDITOR, GdmSessionAuditorClass)) -#define GDM_IS_SESSION_AUDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDM_TYPE_SESSION_AUDITOR)) -#define GDM_IS_SESSION_AUDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDM_TYPE_SESSION_AUDITOR)) -#define GDM_SESSION_AUDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GDM_TYPE_SESSION_AUDITOR, GdmSessionAuditorClass)) -#define GDM_SESSION_AUDITOR_ERROR (gdm_session_auditor_error_quark ()) -typedef struct _GdmSessionAuditor GdmSessionAuditor; -typedef struct _GdmSessionAuditorClass GdmSessionAuditorClass; -typedef struct _GdmSessionAuditorPrivate GdmSessionAuditorPrivate; - -struct _GdmSessionAuditor -{ - GObject parent; - /*< private > */ - GdmSessionAuditorPrivate *priv; -}; +#define GDM_TYPE_SESSION_AUDITOR (gdm_session_auditor_get_type ()) +G_DECLARE_DERIVABLE_TYPE (GdmSessionAuditor, gdm_session_auditor, GDM, SESSION_AUDITOR, GObject) struct _GdmSessionAuditorClass { @@ -63,7 +48,6 @@ struct _GdmSessionAuditorClass void (* report_logout) (GdmSessionAuditor *auditor); }; -GType gdm_session_auditor_get_type (void); GdmSessionAuditor *gdm_session_auditor_new (const char *hostname, const char *display_device); void gdm_session_auditor_set_username (GdmSessionAuditor *auditor, diff --git a/daemon/gdm-session-linux-auditor.c b/daemon/gdm-session-linux-auditor.c index e8ebcb70..0390adea 100644 --- a/daemon/gdm-session-linux-auditor.c +++ b/daemon/gdm-session-linux-auditor.c @@ -37,8 +37,9 @@ #include "gdm-common.h" -struct _GdmSessionLinuxAuditorPrivate +struct _GdmSessionLinuxAuditor { + GdmSessionAuditor parent; int audit_fd; }; @@ -73,12 +74,12 @@ log_user_message (GdmSessionAuditor *auditor, if (pw != NULL) { g_snprintf (buf, sizeof (buf), "uid=%d", pw->pw_uid); - audit_log_user_message (linux_auditor->priv->audit_fd, type, + audit_log_user_message (linux_auditor->audit_fd, type, buf, hostname, NULL, display_device, result); } else { g_snprintf (buf, sizeof (buf), "acct=%s", username); - audit_log_user_message (linux_auditor->priv->audit_fd, type, + audit_log_user_message (linux_auditor->audit_fd, type, buf, hostname, NULL, display_device, result); } @@ -122,18 +123,12 @@ gdm_session_linux_auditor_class_init (GdmSessionLinuxAuditorClass *klass) auditor_class->report_login = gdm_session_linux_auditor_report_login; auditor_class->report_login_failure = gdm_session_linux_auditor_report_login_failure; auditor_class->report_logout = gdm_session_linux_auditor_report_logout; - - g_type_class_add_private (auditor_class, sizeof (GdmSessionLinuxAuditorPrivate)); } static void gdm_session_linux_auditor_init (GdmSessionLinuxAuditor *auditor) { - auditor->priv = G_TYPE_INSTANCE_GET_PRIVATE (auditor, - GDM_TYPE_SESSION_LINUX_AUDITOR, - GdmSessionLinuxAuditorPrivate); - - auditor->priv->audit_fd = audit_open (); + auditor->audit_fd = audit_open (); } static void @@ -144,7 +139,7 @@ gdm_session_linux_auditor_finalize (GObject *object) linux_auditor = GDM_SESSION_LINUX_AUDITOR (object); - close (linux_auditor->priv->audit_fd); + close (linux_auditor->audit_fd); parent_class = G_OBJECT_CLASS (gdm_session_linux_auditor_parent_class); if (parent_class->finalize != NULL) { diff --git a/daemon/gdm-session-linux-auditor.h b/daemon/gdm-session-linux-auditor.h index 171378fb..1e557281 100644 --- a/daemon/gdm-session-linux-auditor.h +++ b/daemon/gdm-session-linux-auditor.h @@ -32,32 +32,12 @@ #include "gdm-session-auditor.h" G_BEGIN_DECLS -#define GDM_TYPE_SESSION_LINUX_AUDITOR (gdm_session_linux_auditor_get_type ()) -#define GDM_SESSION_LINUX_AUDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDM_TYPE_SESSION_LINUX_AUDITOR, GdmSessionLinuxAuditor)) -#define GDM_SESSION_LINUX_AUDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDM_TYPE_SESSION_LINUX_AUDITOR, GdmSessionLinuxAuditorClass)) -#define GDM_IS_SESSION_LINUX_AUDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDM_TYPE_SESSION_LINUX_AUDITOR)) -#define GDM_IS_SESSION_LINUX_AUDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDM_TYPE_SESSION_LINUX_AUDITOR)) -#define GDM_SESSION_LINUX_AUDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GDM_TYPE_SESSION_LINUX_AUDITOR, GdmSessionLinuxAuditorClass)) -#define GDM_SESSION_LINUX_AUDITOR_ERROR (gdm_session_linux_auditor_error_quark ()) -typedef struct _GdmSessionLinuxAuditor GdmSessionLinuxAuditor; -typedef struct _GdmSessionLinuxAuditorClass GdmSessionLinuxAuditorClass; -typedef struct _GdmSessionLinuxAuditorPrivate GdmSessionLinuxAuditorPrivate; - -struct _GdmSessionLinuxAuditor -{ - GdmSessionAuditor parent; - - /*< private > */ - GdmSessionLinuxAuditorPrivate *priv; -}; -struct _GdmSessionLinuxAuditorClass -{ - GdmSessionAuditorClass parent_class; -}; +#define GDM_TYPE_SESSION_LINUX_AUDITOR (gdm_session_linux_auditor_get_type ()) +G_DECLARE_FINAL_TYPE (GdmSessionLinuxAuditor, gdm_session_linux_auditor, GDM, SESSION_LINUX_AUDITOR, GdmSessionAuditor) -GType gdm_session_linux_auditor_get_type (void); GdmSessionAuditor *gdm_session_linux_auditor_new (const char *hostname, const char *display_device); + G_END_DECLS #endif /* GDM_SESSION_LINUX_AUDITOR_H */ diff --git a/daemon/gdm-session-solaris-auditor.c b/daemon/gdm-session-solaris-auditor.c index 673929d0..f632804d 100644 --- a/daemon/gdm-session-solaris-auditor.c +++ b/daemon/gdm-session-solaris-auditor.c @@ -38,8 +38,10 @@ #include <glib-object.h> #include <glib/gi18n.h> -struct _GdmSessionSolarisAuditorPrivate +struct GdmSessionSolarisAuditor { + GdmSessionAuditor parent; + adt_session_data_t *audit_session_handle; guint password_change_initiated : 1; @@ -64,8 +66,8 @@ gdm_session_solaris_auditor_report_password_changed (GdmSessionAuditor *auditor) GdmSessionSolarisAuditor *solaris_auditor; solaris_auditor = GDM_SESSION_SOLARIS_AUDITOR (auditor); - solaris_auditor->priv->password_change_initiated = TRUE; - solaris_auditor->priv->password_changed = TRUE; + solaris_auditor->password_change_initiated = TRUE; + solaris_auditor->password_changed = TRUE; } static void @@ -74,8 +76,8 @@ gdm_session_solaris_auditor_report_password_change_failure (GdmSessionAuditor *a GdmSessionSolarisAuditor *solaris_auditor; solaris_auditor = GDM_SESSION_SOLARIS_AUDITOR (auditor); - solaris_auditor->priv->password_change_initiated = TRUE; - solaris_auditor->priv->password_changed = FALSE; + solaris_auditor->password_change_initiated = TRUE; + solaris_auditor->password_changed = FALSE; } static void @@ -84,7 +86,7 @@ gdm_session_solaris_auditor_report_user_accredited (GdmSessionAuditor *auditor) GdmSessionSolarisAuditor *solaris_auditor; solaris_auditor = GDM_SESSION_SOLARIS_AUDITOR (auditor); - solaris_auditor->priv->user_accredited = TRUE; + solaris_auditor->user_accredited = TRUE; } static void @@ -96,7 +98,7 @@ gdm_session_solaris_auditor_report_login (GdmSessionAuditor *auditor) solaris_auditor = GDM_SESSION_SOLARIS_AUDITOR (auditor); - g_return_if_fail (solaris_auditor->priv->username != NULL); + g_return_if_fail (solaris_auditor->username != NULL); adt_ah = NULL; if (adt_start_session (&adt_ah, NULL, ADT_USE_PROC_DATA) != 0) { @@ -105,12 +107,12 @@ gdm_session_solaris_auditor_report_login (GdmSessionAuditor *auditor) goto cleanup; } - if (adt_set_user (adt_ah, solaris_auditor->priv->uid, - solaris_auditor->priv->gid, solaris_auditor->priv->uid, - solaris_auditor->priv->gid, NULL, ADT_USER) != 0) { + if (adt_set_user (adt_ah, solaris_auditor->uid, + solaris_auditor->gid, solaris_auditor->uid, + solaris_auditor->gid, NULL, ADT_USER) != 0) { syslog (LOG_AUTH | LOG_ALERT, "adt_set_user (ADT_login, %s): %m", - solaris_auditor->priv->username); + solaris_auditor->username); } event = adt_alloc_event (adt_ah, ADT_login); @@ -121,9 +123,9 @@ gdm_session_solaris_auditor_report_login (GdmSessionAuditor *auditor) "adt_put_event (ADT_login, ADT_SUCCESS): %m"); } - if (solaris_auditor->priv->password_changed) { + if (solaris_auditor->password_changed) { - g_assert (solaris_auditor->priv->password_change_initiated); + g_assert (solaris_auditor->password_change_initiated); /* Also audit password change */ adt_free_event (event); @@ -142,7 +144,7 @@ gdm_session_solaris_auditor_report_login (GdmSessionAuditor *auditor) adt_free_event (event); cleanup: - solaris_auditor->priv->audit_session_handle = adt_ah; + solaris_auditor->audit_session_handle = adt_ah; } static void @@ -162,7 +164,7 @@ gdm_session_solaris_auditor_report_login_failure (GdmSessionAuditor *auditor, "hostname", &hostname, "display-device", &display_device, NULL); - if (solaris_auditor->priv->user_accredited) { + if (solaris_auditor->user_accredited) { if (adt_start_session (&ah, NULL, ADT_USE_PROC_DATA) != 0) { syslog (LOG_AUTH | LOG_ALERT, "adt_start_session (ADT_login, ADT_FAILURE): %m"); @@ -191,15 +193,15 @@ gdm_session_solaris_auditor_report_login_failure (GdmSessionAuditor *auditor, } if (adt_set_user (ah, - solaris_auditor->priv->username != NULL ? solaris_auditor->priv->uid : ADT_NO_ATTRIB, - solaris_auditor->priv->username != NULL ? solaris_auditor->priv->gid : ADT_NO_ATTRIB, - solaris_auditor->priv->username != NULL ? solaris_auditor->priv->uid : ADT_NO_ATTRIB, - solaris_auditor->priv->username != NULL ? solaris_auditor->priv->gid : ADT_NO_ATTRIB, + solaris_auditor->username != NULL ? solaris_auditor->uid : ADT_NO_ATTRIB, + solaris_auditor->username != NULL ? solaris_auditor->gid : ADT_NO_ATTRIB, + solaris_auditor->username != NULL ? solaris_auditor->uid : ADT_NO_ATTRIB, + solaris_auditor->username != NULL ? solaris_auditor->gid : ADT_NO_ATTRIB, tid, ADT_NEW) != 0) { syslog (LOG_AUTH | LOG_ALERT, "adt_set_user (%s): %m", - solaris_auditor->priv->username != NULL ? solaris_auditor->priv->username : "ADT_NO_ATTRIB"); + solaris_auditor->username != NULL ? solaris_auditor->username : "ADT_NO_ATTRIB"); } } @@ -216,7 +218,7 @@ gdm_session_solaris_auditor_report_login_failure (GdmSessionAuditor *auditor, pam_error_string); } - if (solaris_auditor->priv->password_change_initiated) { + if (solaris_auditor->password_change_initiated) { /* Also audit password change */ adt_free_event (event); @@ -227,7 +229,7 @@ gdm_session_solaris_auditor_report_login_failure (GdmSessionAuditor *auditor, goto done; } - if (solaris_auditor->priv->password_changed) { + if (solaris_auditor->password_changed) { if (adt_put_event (event, ADT_SUCCESS, ADT_SUCCESS) != 0) { @@ -272,7 +274,7 @@ gdm_session_solaris_auditor_report_logout (GdmSessionAuditor *auditor) solaris_auditor = GDM_SESSION_SOLARIS_AUDITOR (auditor); - adt_ah = solaris_auditor->priv->audit_session_handle; + adt_ah = solaris_auditor->audit_session_handle; event = adt_alloc_event (adt_ah, ADT_logout); if (event == NULL) { @@ -294,7 +296,7 @@ gdm_session_solaris_auditor_report_logout (GdmSessionAuditor *auditor) } (void) adt_end_session (adt_ah); - solaris_auditor->priv->audit_session_handle = NULL; + solaris_auditor->audit_session_handle = NULL; } static void @@ -314,8 +316,6 @@ gdm_session_solaris_auditor_class_init (GdmSessionSolarisAuditorClass *klass) auditor_class->report_login = gdm_session_solaris_auditor_report_login; auditor_class->report_login_failure = gdm_session_solaris_auditor_report_login_failure; auditor_class->report_logout = gdm_session_solaris_auditor_report_logout; - - g_type_class_add_private (auditor_class, sizeof (GdmSessionSolarisAuditorPrivate)); } static void @@ -329,14 +329,14 @@ on_username_set (GdmSessionSolarisAuditor *auditor) gdm_get_pwent_for_name (username, &passwd_entry); if (passwd_entry != NULL) { - auditor->priv->uid = passwd_entry->pw_uid; - auditor->priv->gid = passwd_entry->pw_gid; - auditor->priv->username = g_strdup (passwd_entry->pw_name); + auditor->uid = passwd_entry->pw_uid; + auditor->gid = passwd_entry->pw_gid; + auditor->username = g_strdup (passwd_entry->pw_name); } else { - g_free (auditor->priv->username); - auditor->priv->username = NULL; - auditor->priv->uid = (uid_t) -1; - auditor->priv->gid = (gid_t) -1; + g_free (auditor->username); + auditor->username = NULL; + auditor->uid = (uid_t) -1; + auditor->gid = (gid_t) -1; } g_free (username); @@ -345,15 +345,11 @@ on_username_set (GdmSessionSolarisAuditor *auditor) static void gdm_session_solaris_auditor_init (GdmSessionSolarisAuditor *auditor) { - auditor->priv = G_TYPE_INSTANCE_GET_PRIVATE (auditor, - GDM_TYPE_SESSION_SOLARIS_AUDITOR, - GdmSessionSolarisAuditorPrivate); - g_signal_connect (G_OBJECT (auditor), "notify::username", G_CALLBACK (on_username_set), NULL); - auditor->priv->uid = (uid_t) -1; - auditor->priv->gid = (gid_t) -1; + auditor->uid = (uid_t) -1; + auditor->gid = (gid_t) -1; } static void @@ -364,8 +360,8 @@ gdm_session_solaris_auditor_finalize (GObject *object) solaris_auditor = GDM_SESSION_SOLARIS_AUDITOR (object); - g_free (solaris_auditor->priv->username); - solaris_auditor->priv->username = NULL; + g_free (solaris_auditor->username); + solaris_auditor->username = NULL; parent_class = G_OBJECT_CLASS (gdm_session_solaris_auditor_parent_class); diff --git a/daemon/gdm-session-solaris-auditor.h b/daemon/gdm-session-solaris-auditor.h index 1a3dad68..dd585325 100644 --- a/daemon/gdm-session-solaris-auditor.h +++ b/daemon/gdm-session-solaris-auditor.h @@ -32,31 +32,10 @@ #include "gdm-session-auditor.h" G_BEGIN_DECLS -#define GDM_TYPE_SESSION_SOLARIS_AUDITOR (gdm_session_solaris_auditor_get_type ()) -#define GDM_SESSION_SOLARIS_AUDITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDM_TYPE_SESSION_SOLARIS_AUDITOR, GdmSessionSolarisAuditor)) -#define GDM_SESSION_SOLARIS_AUDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDM_TYPE_SESSION_SOLARIS_AUDITOR, GdmSessionSolarisAuditorClass)) -#define GDM_IS_SESSION_SOLARIS_AUDITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDM_TYPE_SESSION_SOLARIS_AUDITOR)) -#define GDM_IS_SESSION_SOLARIS_AUDITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDM_TYPE_SESSION_SOLARIS_AUDITOR)) -#define GDM_SESSION_SOLARIS_AUDITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GDM_TYPE_SESSION_SOLARIS_AUDITOR, GdmSessionSolarisAuditorClass)) -#define GDM_SESSION_SOLARIS_AUDITOR_ERROR (gdm_session_solaris_auditor_error_quark ()) -typedef struct _GdmSessionSolarisAuditor GdmSessionSolarisAuditor; -typedef struct _GdmSessionSolarisAuditorClass GdmSessionSolarisAuditorClass; -typedef struct _GdmSessionSolarisAuditorPrivate GdmSessionSolarisAuditorPrivate; - -struct _GdmSessionSolarisAuditor -{ - GdmSessionAuditor parent; - /*< private > */ - GdmSessionSolarisAuditorPrivate *priv; -}; - -struct _GdmSessionSolarisAuditorClass -{ - GdmSessionAuditorClass parent_class; -}; +#define GDM_TYPE_SESSION_SOLARIS_AUDITOR (gdm_session_solaris_auditor_get_type ()) +G_DECLARE_FINAL_TYPE (GdmSessionSolarisAuditor, gdm_session_solaris_auditor, GDM, SESSION_SOLARIS_AUDITOR, GdmSessionAuditor) -GType gdm_session_solaris_auditor_get_type (void); GdmSessionAuditor *gdm_session_solaris_auditor_new (const char *hostname, const char *display_device); G_END_DECLS diff --git a/daemon/gdm-session-worker-job.c b/daemon/gdm-session-worker-job.c index 7f3b4c14..536f7e03 100644 --- a/daemon/gdm-session-worker-job.c +++ b/daemon/gdm-session-worker-job.c @@ -52,10 +52,10 @@ extern char **environ; -#define GDM_SESSION_WORKER_JOB_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_SESSION_WORKER_JOB, GdmSessionWorkerJobPrivate)) - -struct GdmSessionWorkerJobPrivate +struct _GdmSessionWorkerJob { + GObject parent; + char *command; GPid pid; gboolean for_reauth; @@ -146,8 +146,8 @@ session_worker_job_child_watch (GPid pid, : WIFSIGNALED (status) ? WTERMSIG (status) : -1); - g_spawn_close_pid (job->priv->pid); - job->priv->pid = -1; + g_spawn_close_pid (job->pid); + job->pid = -1; if (WIFEXITED (status)) { int code = WEXITSTATUS (status); @@ -179,8 +179,8 @@ copy_environment_to_hash (GdmSessionWorkerJob *job, char **environment; gint i; - if (job->priv->environment != NULL) { - environment = g_strdupv (job->priv->environment); + if (job->environment != NULL) { + environment = g_strdupv (job->environment); } else { environment = g_get_environ (); } @@ -211,7 +211,7 @@ get_job_arguments (GdmSessionWorkerJob *job, args = NULL; argv = NULL; error = NULL; - if (! g_shell_parse_argv (job->priv->command, NULL, &argv, &error)) { + if (! g_shell_parse_argv (job->command, NULL, &argv, &error)) { g_warning ("Could not parse command: %s", error->message); g_error_free (error); goto out; @@ -242,9 +242,9 @@ get_job_environment (GdmSessionWorkerJob *job) hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); copy_environment_to_hash (job, hash); - g_hash_table_insert (hash, g_strdup ("GDM_SESSION_DBUS_ADDRESS"), g_strdup (job->priv->server_address)); + g_hash_table_insert (hash, g_strdup ("GDM_SESSION_DBUS_ADDRESS"), g_strdup (job->server_address)); - if (job->priv->for_reauth) { + if (job->for_reauth) { g_hash_table_insert (hash, g_strdup ("GDM_SESSION_FOR_REAUTH"), g_strdup ("1")); } @@ -268,7 +268,7 @@ gdm_session_worker_job_spawn (GdmSessionWorkerJob *session_worker_job, ret = FALSE; g_debug ("GdmSessionWorkerJob: Running session_worker_job process: %s %s", - name != NULL? name : "", session_worker_job->priv->command); + name != NULL? name : "", session_worker_job->command); args = get_job_arguments (session_worker_job, name); @@ -284,7 +284,7 @@ gdm_session_worker_job_spawn (GdmSessionWorkerJob *session_worker_job, G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_FILE_AND_ARGV_ZERO, (GSpawnChildSetupFunc)session_worker_job_child_setup, session_worker_job, - &session_worker_job->priv->pid, + &session_worker_job->pid, NULL, NULL, NULL, @@ -298,16 +298,16 @@ gdm_session_worker_job_spawn (GdmSessionWorkerJob *session_worker_job, if (! ret) { g_warning ("Could not start command '%s': %s", - session_worker_job->priv->command, + session_worker_job->command, error->message); g_error_free (error); } else { - g_debug ("GdmSessionWorkerJob: : SessionWorkerJob on pid %d", (int)session_worker_job->priv->pid); + g_debug ("GdmSessionWorkerJob: : SessionWorkerJob on pid %d", (int)session_worker_job->pid); } - session_worker_job->priv->child_watch_id = g_child_watch_add (session_worker_job->priv->pid, - (GChildWatchFunc)session_worker_job_child_watch, - session_worker_job); + session_worker_job->child_watch_id = g_child_watch_add (session_worker_job->pid, + (GChildWatchFunc)session_worker_job_child_watch, + session_worker_job); return ret; } @@ -336,8 +336,8 @@ handle_session_worker_job_death (GdmSessionWorkerJob *session_worker_job) { int exit_status; - g_debug ("GdmSessionWorkerJob: Waiting on process %d", session_worker_job->priv->pid); - exit_status = gdm_wait_on_and_disown_pid (session_worker_job->priv->pid, 5); + g_debug ("GdmSessionWorkerJob: Waiting on process %d", session_worker_job->pid); + exit_status = gdm_wait_on_and_disown_pid (session_worker_job->pid, 5); if (WIFEXITED (exit_status) && (WEXITSTATUS (exit_status) != 0)) { g_debug ("GdmSessionWorkerJob: Wait on child process failed"); @@ -345,8 +345,8 @@ handle_session_worker_job_death (GdmSessionWorkerJob *session_worker_job) /* exited normally */ } - g_spawn_close_pid (session_worker_job->priv->pid); - session_worker_job->priv->pid = -1; + g_spawn_close_pid (session_worker_job->pid); + session_worker_job->pid = -1; g_debug ("GdmSessionWorkerJob: SessionWorkerJob died"); } @@ -354,14 +354,14 @@ handle_session_worker_job_death (GdmSessionWorkerJob *session_worker_job) void gdm_session_worker_job_stop_now (GdmSessionWorkerJob *session_worker_job) { - if (session_worker_job->priv->pid <= 1) { + if (session_worker_job->pid <= 1) { return; } /* remove watch source before we can wait on child */ - if (session_worker_job->priv->child_watch_id > 0) { - g_source_remove (session_worker_job->priv->child_watch_id); - session_worker_job->priv->child_watch_id = 0; + if (session_worker_job->child_watch_id > 0) { + g_source_remove (session_worker_job->child_watch_id); + session_worker_job->child_watch_id = 0; } gdm_session_worker_job_stop (session_worker_job); @@ -373,13 +373,13 @@ gdm_session_worker_job_stop (GdmSessionWorkerJob *session_worker_job) { int res; - if (session_worker_job->priv->pid <= 1) { + if (session_worker_job->pid <= 1) { return; } - g_debug ("GdmSessionWorkerJob: Stopping job pid:%d", session_worker_job->priv->pid); + g_debug ("GdmSessionWorkerJob: Stopping job pid:%d", session_worker_job->pid); - res = gdm_signal_pid (session_worker_job->priv->pid, SIGTERM); + res = gdm_signal_pid (session_worker_job->pid, SIGTERM); if (res < 0) { g_warning ("Unable to kill session worker process"); @@ -390,7 +390,7 @@ GPid gdm_session_worker_job_get_pid (GdmSessionWorkerJob *session_worker_job) { g_return_val_if_fail (GDM_IS_SESSION_WORKER_JOB (session_worker_job), 0); - return session_worker_job->priv->pid; + return session_worker_job->pid; } void @@ -399,8 +399,8 @@ gdm_session_worker_job_set_server_address (GdmSessionWorkerJob *session_worker_j { g_return_if_fail (GDM_IS_SESSION_WORKER_JOB (session_worker_job)); - g_free (session_worker_job->priv->server_address); - session_worker_job->priv->server_address = g_strdup (address); + g_free (session_worker_job->server_address); + session_worker_job->server_address = g_strdup (address); } void @@ -409,7 +409,7 @@ gdm_session_worker_job_set_for_reauth (GdmSessionWorkerJob *session_worker_job, { g_return_if_fail (GDM_IS_SESSION_WORKER_JOB (session_worker_job)); - session_worker_job->priv->for_reauth = for_reauth; + session_worker_job->for_reauth = for_reauth; } void @@ -418,7 +418,7 @@ gdm_session_worker_job_set_environment (GdmSessionWorkerJob *session_worker_job, { g_return_if_fail (GDM_IS_SESSION_WORKER_JOB (session_worker_job)); - session_worker_job->priv->environment = g_strdupv ((char **) environment); + session_worker_job->environment = g_strdupv ((char **) environment); } static void @@ -459,13 +459,13 @@ gdm_session_worker_job_get_property (GObject *object, switch (prop_id) { case PROP_SERVER_ADDRESS: - g_value_set_string (value, self->priv->server_address); + g_value_set_string (value, self->server_address); break; case PROP_FOR_REAUTH: - g_value_set_boolean (value, self->priv->for_reauth); + g_value_set_boolean (value, self->for_reauth); break; case PROP_ENVIRONMENT: - g_value_set_pointer (value, self->priv->environment); + g_value_set_pointer (value, self->environment); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -497,8 +497,6 @@ gdm_session_worker_job_class_init (GdmSessionWorkerJobClass *klass) object_class->constructor = gdm_session_worker_job_constructor; object_class->finalize = gdm_session_worker_job_finalize; - g_type_class_add_private (klass, sizeof (GdmSessionWorkerJobPrivate)); - g_object_class_install_property (object_class, PROP_SERVER_ADDRESS, g_param_spec_string ("server-address", @@ -523,7 +521,7 @@ gdm_session_worker_job_class_init (GdmSessionWorkerJobClass *klass) g_signal_new ("started", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionWorkerJobClass, started), + 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, @@ -533,7 +531,7 @@ gdm_session_worker_job_class_init (GdmSessionWorkerJobClass *klass) g_signal_new ("exited", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionWorkerJobClass, exited), + 0, NULL, NULL, g_cclosure_marshal_VOID__INT, @@ -545,7 +543,7 @@ gdm_session_worker_job_class_init (GdmSessionWorkerJobClass *klass) g_signal_new ("died", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionWorkerJobClass, died), + 0, NULL, NULL, g_cclosure_marshal_VOID__INT, @@ -557,12 +555,9 @@ gdm_session_worker_job_class_init (GdmSessionWorkerJobClass *klass) static void gdm_session_worker_job_init (GdmSessionWorkerJob *session_worker_job) { + session_worker_job->pid = -1; - session_worker_job->priv = GDM_SESSION_WORKER_JOB_GET_PRIVATE (session_worker_job); - - session_worker_job->priv->pid = -1; - - session_worker_job->priv->command = g_strdup (LIBEXECDIR "/gdm-session-worker"); + session_worker_job->command = g_strdup (LIBEXECDIR "/gdm-session-worker"); } static void @@ -575,12 +570,10 @@ gdm_session_worker_job_finalize (GObject *object) session_worker_job = GDM_SESSION_WORKER_JOB (object); - g_return_if_fail (session_worker_job->priv != NULL); - gdm_session_worker_job_stop (session_worker_job); - g_free (session_worker_job->priv->command); - g_free (session_worker_job->priv->server_address); + g_free (session_worker_job->command); + g_free (session_worker_job->server_address); G_OBJECT_CLASS (gdm_session_worker_job_parent_class)->finalize (object); } diff --git a/daemon/gdm-session-worker-job.h b/daemon/gdm-session-worker-job.h index 8494ff4c..e9b9c8d6 100644 --- a/daemon/gdm-session-worker-job.h +++ b/daemon/gdm-session-worker-job.h @@ -26,34 +26,9 @@ G_BEGIN_DECLS -#define GDM_TYPE_SESSION_WORKER_JOB (gdm_session_worker_job_get_type ()) -#define GDM_SESSION_WORKER_JOB(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_SESSION_WORKER_JOB, GdmSessionWorkerJob)) -#define GDM_SESSION_WORKER_JOB_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_SESSION_WORKER_JOB, GdmSessionWorkerJobClass)) -#define GDM_IS_SESSION_WORKER_JOB(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_SESSION_WORKER_JOB)) -#define GDM_IS_SESSION_WORKER_JOB_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_SESSION_WORKER_JOB)) -#define GDM_SESSION_WORKER_JOB_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_SESSION_WORKER_JOB, GdmSessionWorkerJobClass)) +#define GDM_TYPE_SESSION_WORKER_JOB (gdm_session_worker_job_get_type ()) +G_DECLARE_FINAL_TYPE (GdmSessionWorkerJob, gdm_session_worker_job, GDM, SESSION_WORKER_JOB, GObject) -typedef struct GdmSessionWorkerJobPrivate GdmSessionWorkerJobPrivate; - -typedef struct -{ - GObject parent; - GdmSessionWorkerJobPrivate *priv; -} GdmSessionWorkerJob; - -typedef struct -{ - GObjectClass parent_class; - - void (* started) (GdmSessionWorkerJob *session_worker_job); - void (* exited) (GdmSessionWorkerJob *session_worker_job, - int exit_code); - - void (* died) (GdmSessionWorkerJob *session_worker_job, - int signal_number); -} GdmSessionWorkerJobClass; - -GType gdm_session_worker_job_get_type (void); GdmSessionWorkerJob * gdm_session_worker_job_new (void); void gdm_session_worker_job_set_server_address (GdmSessionWorkerJob *session_worker_job, const char *server_address); diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c index 04f879a7..bc228798 100644 --- a/daemon/gdm-session.c +++ b/daemon/gdm-session.c @@ -80,8 +80,10 @@ typedef struct GPid reauth_pid_of_caller; } GdmSessionConversation; -struct _GdmSessionPrivate +struct _GdmSession { + GObject parent; + /* per open scope */ char *selected_program; char *selected_session; @@ -199,7 +201,7 @@ find_conversation_by_name (GdmSession *self, { GdmSessionConversation *conversation; - conversation = g_hash_table_lookup (self->priv->conversations, service_name); + conversation = g_hash_table_lookup (self->conversations, service_name); if (conversation == NULL) { g_warning ("Tried to look up non-existent conversation %s", service_name); @@ -215,19 +217,19 @@ report_and_stop_conversation (GdmSession *self, { g_dbus_error_strip_remote_error (error); - if (self->priv->user_verifier_interface != NULL) { + if (self->user_verifier_interface != NULL) { if (g_error_matches (error, GDM_SESSION_WORKER_ERROR, GDM_SESSION_WORKER_ERROR_SERVICE_UNAVAILABLE)) { - gdm_dbus_user_verifier_emit_service_unavailable (self->priv->user_verifier_interface, + gdm_dbus_user_verifier_emit_service_unavailable (self->user_verifier_interface, service_name, error->message); } else { - gdm_dbus_user_verifier_emit_problem (self->priv->user_verifier_interface, + gdm_dbus_user_verifier_emit_problem (self->user_verifier_interface, service_name, error->message); } - gdm_dbus_user_verifier_emit_verification_failed (self->priv->user_verifier_interface, + gdm_dbus_user_verifier_emit_verification_failed (self->user_verifier_interface, service_name); } @@ -317,13 +319,13 @@ on_establish_credentials_cb (GdmDBusWorker *proxy, service_name = g_strdup (conversation->service_name); if (worked) { - if (self->priv->user_verifier_interface != NULL) { - gdm_dbus_user_verifier_emit_verification_complete (self->priv->user_verifier_interface, + if (self->user_verifier_interface != NULL) { + gdm_dbus_user_verifier_emit_verification_complete (self->user_verifier_interface, service_name); g_signal_emit (self, signals[VERIFICATION_COMPLETE], 0, service_name); } - switch (self->priv->verification_mode) { + switch (self->verification_mode) { case GDM_SESSION_VERIFICATION_MODE_LOGIN: case GDM_SESSION_VERIFICATION_MODE_CHOOSER: gdm_session_open_session (self, service_name); @@ -367,7 +369,7 @@ get_system_session_dirs (GdmSession *self) g_array_append_vals (search_array, x_search_dirs, G_N_ELEMENTS (x_search_dirs)); #ifdef ENABLE_WAYLAND_SUPPORT - if (!self->priv->ignore_wayland) { + if (!self->ignore_wayland) { #ifdef ENABLE_USER_DISPLAY_SERVER g_array_prepend_val (search_array, wayland_search_dir); @@ -530,11 +532,11 @@ get_default_language_name (GdmSession *self) { const char *default_language; - if (self->priv->saved_language != NULL) { - return self->priv->saved_language; + if (self->saved_language != NULL) { + return self->saved_language; } - default_language = g_hash_table_lookup (self->priv->environment, + default_language = g_hash_table_lookup (self->environment, "LANG"); if (default_language != NULL) { @@ -553,17 +555,17 @@ get_fallback_session_name (GdmSession *self) GSequence *sessions; GSequenceIter *session; - if (self->priv->fallback_session_name != NULL) { + if (self->fallback_session_name != NULL) { /* verify that the cached version still exists */ - if (get_session_command_for_name (self, self->priv->fallback_session_name, NULL)) { + if (get_session_command_for_name (self, self->fallback_session_name, NULL)) { goto out; } } name = g_strdup ("gnome"); if (get_session_command_for_name (self, name, NULL)) { - g_free (self->priv->fallback_session_name); - self->priv->fallback_session_name = name; + g_free (self->fallback_session_name); + self->fallback_session_name = name; goto out; } g_free (name); @@ -616,20 +618,20 @@ get_fallback_session_name (GdmSession *self) session = g_sequence_iter_next (session); } while (!g_sequence_iter_is_end (session)); - g_free (self->priv->fallback_session_name); - self->priv->fallback_session_name = g_strdup (name); + g_free (self->fallback_session_name); + self->fallback_session_name = g_strdup (name); g_sequence_free (sessions); out: - return self->priv->fallback_session_name; + return self->fallback_session_name; } static const char * get_default_session_name (GdmSession *self) { - if (self->priv->saved_session != NULL) { - return self->priv->saved_session; + if (self->saved_session != NULL) { + return self->saved_session; } return get_fallback_session_name (self); @@ -641,10 +643,10 @@ gdm_session_defaults_changed (GdmSession *self) update_session_type (self); - if (self->priv->greeter_interface != NULL) { - gdm_dbus_greeter_emit_default_language_name_changed (self->priv->greeter_interface, + if (self->greeter_interface != NULL) { + gdm_dbus_greeter_emit_default_language_name_changed (self->greeter_interface, get_default_language_name (self)); - gdm_dbus_greeter_emit_default_session_name_changed (self->priv->greeter_interface, + gdm_dbus_greeter_emit_default_session_name_changed (self->greeter_interface, get_default_session_name (self)); } } @@ -656,14 +658,14 @@ gdm_session_select_user (GdmSession *self, g_debug ("GdmSession: Setting user: '%s'", text); - g_free (self->priv->selected_user); - self->priv->selected_user = g_strdup (text); + g_free (self->selected_user); + self->selected_user = g_strdup (text); - g_free (self->priv->saved_session); - self->priv->saved_session = NULL; + g_free (self->saved_session); + self->saved_session = NULL; - g_free (self->priv->saved_language); - self->priv->saved_language = NULL; + g_free (self->saved_language); + self->saved_language = NULL; } static void @@ -712,8 +714,8 @@ gdm_session_handle_choice_list_query (GdmDBusWorkerManager *worker_manager_inte g_debug ("GdmSession: choice query for service '%s'", service_name); - if (self->priv->user_verifier_extensions != NULL) - choice_list_interface = g_hash_table_lookup (self->priv->user_verifier_extensions, + if (self->user_verifier_extensions != NULL) + choice_list_interface = g_hash_table_lookup (self->user_verifier_extensions, gdm_dbus_user_verifier_choice_list_interface_info ()->name); if (choice_list_interface == NULL) { @@ -746,13 +748,13 @@ gdm_session_handle_info_query (GdmDBusWorkerManager *worker_manager_interface, { GdmSessionConversation *conversation; - g_return_val_if_fail (self->priv->user_verifier_interface != NULL, FALSE); + g_return_val_if_fail (self->user_verifier_interface != NULL, FALSE); conversation = find_conversation_by_name (self, service_name); if (conversation != NULL) { set_pending_query (conversation, invocation); - gdm_dbus_user_verifier_emit_info_query (self->priv->user_verifier_interface, + gdm_dbus_user_verifier_emit_info_query (self->user_verifier_interface, service_name, query); } @@ -769,13 +771,13 @@ gdm_session_handle_secret_info_query (GdmDBusWorkerManager *worker_manager_inte { GdmSessionConversation *conversation; - g_return_val_if_fail (self->priv->user_verifier_interface != NULL, FALSE); + g_return_val_if_fail (self->user_verifier_interface != NULL, FALSE); conversation = find_conversation_by_name (self, service_name); if (conversation != NULL) { set_pending_query (conversation, invocation); - gdm_dbus_user_verifier_emit_secret_info_query (self->priv->user_verifier_interface, + gdm_dbus_user_verifier_emit_secret_info_query (self->user_verifier_interface, service_name, query); } @@ -793,8 +795,8 @@ gdm_session_handle_info (GdmDBusWorkerManager *worker_manager_interface, gdm_dbus_worker_manager_complete_info (worker_manager_interface, invocation); - if (self->priv->user_verifier_interface != NULL) { - gdm_dbus_user_verifier_emit_info (self->priv->user_verifier_interface, + if (self->user_verifier_interface != NULL) { + gdm_dbus_user_verifier_emit_info (self->user_verifier_interface, service_name, info); } @@ -819,8 +821,8 @@ gdm_session_handle_problem (GdmDBusWorkerManager *worker_manager_interface, gdm_dbus_worker_manager_complete_problem (worker_manager_interface, invocation); - if (self->priv->user_verifier_interface != NULL) { - gdm_dbus_user_verifier_emit_problem (self->priv->user_verifier_interface, + if (self->user_verifier_interface != NULL) { + gdm_dbus_user_verifier_emit_problem (self->user_verifier_interface, service_name, problem); } @@ -858,13 +860,13 @@ on_opened (GdmDBusWorker *worker, conversation->session_id = g_strdup (session_id); - if (self->priv->greeter_interface != NULL) { - gdm_dbus_greeter_emit_session_opened (self->priv->greeter_interface, + if (self->greeter_interface != NULL) { + gdm_dbus_greeter_emit_session_opened (self->greeter_interface, service_name); } - if (self->priv->user_verifier_interface != NULL) { - gdm_dbus_user_verifier_emit_verification_complete (self->priv->user_verifier_interface, + if (self->user_verifier_interface != NULL) { + gdm_dbus_user_verifier_emit_verification_complete (self->user_verifier_interface, service_name); g_signal_emit (self, signals[VERIFICATION_COMPLETE], 0, service_name); } @@ -887,7 +889,7 @@ worker_on_username_changed (GdmDBusWorker *worker, GdmSession *self = conversation->session; g_debug ("GdmSession: changing username from '%s' to '%s'", - self->priv->selected_user != NULL ? self->priv->selected_user : "<unset>", + self->selected_user != NULL ? self->selected_user : "<unset>", (strlen (username)) ? username : "<unset>"); gdm_session_select_user (self, (strlen (username) > 0) ? g_strdup (username) : NULL); @@ -902,7 +904,7 @@ worker_on_session_exited (GdmDBusWorker *worker, { GdmSession *self = conversation->session; - self->priv->session_conversation = NULL; + self->session_conversation = NULL; if (WIFEXITED (status)) { g_debug ("GdmSession: Emitting 'session-exited' signal with exit code '%d'", @@ -965,11 +967,11 @@ worker_on_saved_language_name_read (GdmDBusWorker *worker, GdmSession *self = conversation->session; if (strlen (language_name) > 0) { - g_free (self->priv->saved_language); - self->priv->saved_language = g_strdup (language_name); + g_free (self->saved_language); + self->saved_language = g_strdup (language_name); - if (self->priv->greeter_interface != NULL) { - gdm_dbus_greeter_emit_default_language_name_changed (self->priv->greeter_interface, + if (self->greeter_interface != NULL) { + gdm_dbus_greeter_emit_default_language_name_changed (self->greeter_interface, language_name); } } @@ -985,15 +987,15 @@ worker_on_saved_session_name_read (GdmDBusWorker *worker, if (! get_session_command_for_name (self, session_name, NULL)) { /* ignore sessions that don't exist */ g_debug ("GdmSession: not using invalid .dmrc session: %s", session_name); - g_free (self->priv->saved_session); - self->priv->saved_session = NULL; + g_free (self->saved_session); + self->saved_session = NULL; } else if (strcmp (session_name, get_default_session_name (self)) != 0) { - g_free (self->priv->saved_session); - self->priv->saved_session = g_strdup (session_name); + g_free (self->saved_session); + self->saved_session = g_strdup (session_name); - if (self->priv->greeter_interface != NULL) { - gdm_dbus_greeter_emit_default_session_name_changed (self->priv->greeter_interface, + if (self->greeter_interface != NULL) { + gdm_dbus_greeter_emit_default_session_name_changed (self->greeter_interface, session_name); } } @@ -1009,7 +1011,7 @@ find_conversation_by_pid (GdmSession *self, GHashTableIter iter; gpointer key, value; - g_hash_table_iter_init (&iter, self->priv->conversations); + g_hash_table_iter_init (&iter, self->conversations); while (g_hash_table_iter_next (&iter, &key, &value)) { GdmSessionConversation *conversation; @@ -1037,7 +1039,7 @@ allow_worker_function (GDBusAuthObserver *observer, return TRUE; } - if (connecting_user == self->priv->allowed_user) { + if (connecting_user == self->allowed_user) { return TRUE; } @@ -1052,8 +1054,8 @@ on_worker_connection_closed (GDBusConnection *connection, GError *error, GdmSession *self) { - self->priv->pending_worker_connections = - g_list_remove (self->priv->pending_worker_connections, + self->pending_worker_connections = + g_list_remove (self->pending_worker_connections, connection); g_object_unref (connection); } @@ -1072,7 +1074,7 @@ register_worker (GdmDBusWorkerManager *worker_manager_interface, g_debug ("GdmSession: Authenticating new connection"); connection = g_dbus_method_invocation_get_connection (invocation); - connection_node = g_list_find (self->priv->pending_worker_connections, connection); + connection_node = g_list_find (self->pending_worker_connections, connection); if (connection_node == NULL) { g_debug ("GdmSession: Ignoring connection that we aren't tracking"); @@ -1082,8 +1084,8 @@ register_worker (GdmDBusWorkerManager *worker_manager_interface, /* connection was ref'd when it was added to list, we're taking that * reference over and removing it from the list */ - self->priv->pending_worker_connections = - g_list_delete_link (self->priv->pending_worker_connections, + self->pending_worker_connections = + g_list_delete_link (self->pending_worker_connections, connection_node); g_signal_handlers_disconnect_by_func (connection, @@ -1145,8 +1147,8 @@ register_worker (GdmDBusWorkerManager *worker_manager_interface, g_debug ("GdmSession: Emitting conversation-started signal"); g_signal_emit (self, signals[CONVERSATION_STARTED], 0, conversation->service_name); - if (self->priv->user_verifier_interface != NULL) { - gdm_dbus_user_verifier_emit_conversation_started (self->priv->user_verifier_interface, + if (self->user_verifier_interface != NULL) { + gdm_dbus_user_verifier_emit_conversation_started (self->user_verifier_interface, conversation->service_name); } @@ -1244,8 +1246,8 @@ handle_connection_from_worker (GDBusServer *server, * associate it with a specific worker conversation until we have * authenticated the connection (from the Hello handler). */ - self->priv->pending_worker_connections = - g_list_prepend (self->priv->pending_worker_connections, + self->pending_worker_connections = + g_list_prepend (self->pending_worker_connections, g_object_ref (connection)); g_signal_connect_object (connection, @@ -1314,7 +1316,7 @@ export_user_verifier_choice_list_interface (GdmSession *self, GDM_SESSION_DBUS_OBJECT_PATH, NULL); - g_hash_table_insert (self->priv->user_verifier_extensions, + g_hash_table_insert (self->user_verifier_extensions, gdm_dbus_user_verifier_choice_list_interface_info ()->name, interface); } @@ -1328,10 +1330,10 @@ gdm_session_handle_client_enable_extensions (GdmDBusUserVerifier *user_verifi GdmSession *self = g_object_get_data (G_OBJECT (connection), "gdm-session"); size_t i; - g_hash_table_remove_all (self->priv->user_verifier_extensions); + g_hash_table_remove_all (self->user_verifier_extensions); for (i = 0; extensions[i] != NULL; i++) { - if (g_hash_table_lookup (self->priv->user_verifier_extensions, extensions[i]) != NULL) + if (g_hash_table_lookup (self->user_verifier_extensions, extensions[i]) != NULL) continue; if (strcmp (extensions[i], @@ -1411,7 +1413,7 @@ gdm_session_handle_client_select_session (GdmDBusGreeter *greeter_interf const char *session, GdmSession *self) { - if (self->priv->greeter_interface != NULL) { + if (self->greeter_interface != NULL) { gdm_dbus_greeter_complete_select_session (greeter_interface, invocation); } @@ -1425,7 +1427,7 @@ gdm_session_handle_client_select_user (GdmDBusGreeter *greeter_interface, const char *username, GdmSession *self) { - if (self->priv->greeter_interface != NULL) { + if (self->greeter_interface != NULL) { gdm_dbus_greeter_complete_select_user (greeter_interface, invocation); } @@ -1441,7 +1443,7 @@ gdm_session_handle_client_start_session_when_ready (GdmDBusGreeter *greet GdmSession *self) { - if (self->priv->greeter_interface != NULL) { + if (self->greeter_interface != NULL) { gdm_dbus_greeter_complete_start_session_when_ready (greeter_interface, invocation); } @@ -1459,16 +1461,16 @@ gdm_session_handle_get_timed_login_details (GdmDBusGreeter *greeter_inter GdmSession *self) { - if (self->priv->greeter_interface != NULL) { + if (self->greeter_interface != NULL) { gdm_dbus_greeter_complete_get_timed_login_details (greeter_interface, invocation, - self->priv->timed_login_username != NULL, - self->priv->timed_login_username != NULL? self->priv->timed_login_username : "", - self->priv->timed_login_delay); - if (self->priv->timed_login_username != NULL) { - gdm_dbus_greeter_emit_timed_login_requested (self->priv->greeter_interface, - self->priv->timed_login_username, - self->priv->timed_login_delay); + self->timed_login_username != NULL, + self->timed_login_username != NULL? self->timed_login_username : "", + self->timed_login_delay); + if (self->timed_login_username != NULL) { + gdm_dbus_greeter_emit_timed_login_requested (self->greeter_interface, + self->timed_login_username, + self->timed_login_delay); } } return TRUE; @@ -1480,7 +1482,7 @@ gdm_session_handle_client_begin_auto_login (GdmDBusGreeter *greeter_inter const char *username, GdmSession *self) { - if (self->priv->greeter_interface != NULL) { + if (self->greeter_interface != NULL) { gdm_dbus_greeter_complete_begin_auto_login (greeter_interface, invocation); } @@ -1527,7 +1529,7 @@ export_user_verifier_interface (GdmSession *self, GDM_SESSION_DBUS_OBJECT_PATH, NULL); - self->priv->user_verifier_interface = user_verifier_interface; + self->user_verifier_interface = user_verifier_interface; } static void @@ -1564,7 +1566,7 @@ export_greeter_interface (GdmSession *self, GDM_SESSION_DBUS_OBJECT_PATH, NULL); - self->priv->greeter_interface = greeter_interface; + self->greeter_interface = greeter_interface; } @@ -1597,7 +1599,7 @@ export_remote_greeter_interface (GdmSession *self, GDM_SESSION_DBUS_OBJECT_PATH, NULL); - self->priv->remote_greeter_interface = remote_greeter_interface; + self->remote_greeter_interface = remote_greeter_interface; } @@ -1632,7 +1634,7 @@ export_chooser_interface (GdmSession *self, GDM_SESSION_DBUS_OBJECT_PATH, NULL); - self->priv->chooser_interface = chooser_interface; + self->chooser_interface = chooser_interface; } static void @@ -1646,9 +1648,8 @@ on_outside_connection_closed (GDBusConnection *connection, g_debug ("GdmSession: external connection closed"); - self->priv->outside_connections = - g_list_remove (self->priv->outside_connections, - connection); + self->outside_connections = g_list_remove (self->outside_connections, + connection); credentials = g_dbus_connection_get_peer_credentials (connection); pid_of_client = g_credentials_get_unix_pid (credentials, NULL); @@ -1673,9 +1674,8 @@ handle_connection_from_outside (GDBusServer *server, g_debug ("GdmSession: Handling new connection from outside"); - self->priv->outside_connections = - g_list_prepend (self->priv->outside_connections, - g_object_ref (connection)); + self->outside_connections = g_list_prepend (self->outside_connections, + g_object_ref (connection)); g_signal_connect_object (connection, "closed", @@ -1685,7 +1685,7 @@ handle_connection_from_outside (GDBusServer *server, export_user_verifier_interface (self, connection); - switch (self->priv->verification_mode) { + switch (self->verification_mode) { case GDM_SESSION_VERIFICATION_MODE_LOGIN: export_greeter_interface (self, connection); break; @@ -1698,7 +1698,7 @@ handle_connection_from_outside (GDBusServer *server, break; } - if (!self->priv->display_is_local) { + if (!self->display_is_local) { export_remote_greeter_interface (self, connection); } @@ -1745,12 +1745,12 @@ setup_worker_server (GdmSession *self) G_CALLBACK (handle_connection_from_worker), self, 0); - self->priv->worker_server = server; + self->worker_server = server; g_dbus_server_start (server); g_debug ("GdmSession: D-Bus server for workers listening on %s", - g_dbus_server_get_client_address (self->priv->worker_server)); + g_dbus_server_get_client_address (self->worker_server)); } static gboolean @@ -1763,7 +1763,7 @@ allow_user_function (GDBusAuthObserver *observer, GPid pid_of_client; client_uid = g_credentials_get_unix_user (credentials, NULL); - if (client_uid == self->priv->allowed_user) { + if (client_uid == self->allowed_user) { return TRUE; } @@ -1811,12 +1811,12 @@ setup_outside_server (GdmSession *self) G_CALLBACK (handle_connection_from_outside), self, 0); - self->priv->outside_server = server; + self->outside_server = server; g_dbus_server_start (server); g_debug ("GdmSession: D-Bus server for greeters listening on %s", - g_dbus_server_get_client_address (self->priv->outside_server)); + g_dbus_server_get_client_address (self->outside_server)); } static void @@ -1957,20 +1957,16 @@ unexport_and_free_user_verifier_extension (GDBusInterfaceSkeleton *interface) static void gdm_session_init (GdmSession *self) { - self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, - GDM_TYPE_SESSION, - GdmSessionPrivate); - - self->priv->conversations = g_hash_table_new_full (g_str_hash, + self->conversations = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) free_conversation); - self->priv->environment = g_hash_table_new_full (g_str_hash, + self->environment = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, (GDestroyNotify) g_free); - self->priv->user_verifier_extensions = g_hash_table_new_full (g_str_hash, + self->user_verifier_extensions = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify) @@ -1998,18 +1994,18 @@ worker_exited (GdmSessionWorkerJob *job, g_debug ("GdmSession: Worker job exited: %d", code); - g_hash_table_steal (self->priv->conversations, conversation->service_name); + g_hash_table_steal (self->conversations, conversation->service_name); g_object_ref (conversation->job); - if (self->priv->session_conversation == conversation) { + if (self->session_conversation == conversation) { g_signal_emit (self, signals[SESSION_EXITED], 0, code); - self->priv->session_conversation = NULL; + self->session_conversation = NULL; } g_debug ("GdmSession: Emitting conversation-stopped signal"); g_signal_emit (self, signals[CONVERSATION_STOPPED], 0, conversation->service_name); - if (self->priv->user_verifier_interface != NULL) { - gdm_dbus_user_verifier_emit_conversation_stopped (self->priv->user_verifier_interface, + if (self->user_verifier_interface != NULL) { + gdm_dbus_user_verifier_emit_conversation_stopped (self->user_verifier_interface, conversation->service_name); } g_object_unref (conversation->job); @@ -2031,18 +2027,18 @@ worker_died (GdmSessionWorkerJob *job, g_debug ("GdmSession: Worker job died: %d", signum); - g_hash_table_steal (self->priv->conversations, conversation->service_name); + g_hash_table_steal (self->conversations, conversation->service_name); g_object_ref (conversation->job); - if (self->priv->session_conversation == conversation) { + if (self->session_conversation == conversation) { g_signal_emit (self, signals[SESSION_DIED], 0, signum); - self->priv->session_conversation = NULL; + self->session_conversation = NULL; } g_debug ("GdmSession: Emitting conversation-stopped signal"); g_signal_emit (self, signals[CONVERSATION_STOPPED], 0, conversation->service_name); - if (self->priv->user_verifier_interface != NULL) { - gdm_dbus_user_verifier_emit_conversation_stopped (self->priv->user_verifier_interface, + if (self->user_verifier_interface != NULL) { + gdm_dbus_user_verifier_emit_conversation_stopped (self->user_verifier_interface, conversation->service_name); } g_object_unref (conversation->job); @@ -2068,14 +2064,14 @@ start_conversation (GdmSession *self, conversation->worker_pid = -1; conversation->job = gdm_session_worker_job_new (); gdm_session_worker_job_set_server_address (conversation->job, - g_dbus_server_get_client_address (self->priv->worker_server)); + g_dbus_server_get_client_address (self->worker_server)); gdm_session_worker_job_set_for_reauth (conversation->job, - self->priv->verification_mode == GDM_SESSION_VERIFICATION_MODE_REAUTHENTICATE); + self->verification_mode == GDM_SESSION_VERIFICATION_MODE_REAUTHENTICATE); - if (self->priv->conversation_environment != NULL) { + if (self->conversation_environment != NULL) { gdm_session_worker_job_set_environment (conversation->job, (const char * const *) - self->priv->conversation_environment); + self->conversation_environment); } g_signal_connect (conversation->job, @@ -2146,7 +2142,7 @@ void gdm_session_set_ignore_wayland (GdmSession *self, gboolean ignore_wayland) { - self->priv->ignore_wayland = ignore_wayland; + self->ignore_wayland = ignore_wayland; } #endif @@ -2158,7 +2154,7 @@ gdm_session_start_conversation (GdmSession *self, g_return_val_if_fail (GDM_IS_SESSION (self), FALSE); - conversation = g_hash_table_lookup (self->priv->conversations, + conversation = g_hash_table_lookup (self->conversations, service_name); if (conversation != NULL) { @@ -2176,7 +2172,7 @@ gdm_session_start_conversation (GdmSession *self, conversation = start_conversation (self, service_name); - g_hash_table_insert (self->priv->conversations, + g_hash_table_insert (self->conversations, g_strdup (service_name), conversation); return TRUE; } @@ -2257,7 +2253,7 @@ initialize (GdmSession *self, g_variant_builder_init (&details, G_VARIANT_TYPE ("a{sv}")); g_variant_builder_add_parsed (&details, "{'service', <%s>}", service_name); - extensions = (const char **) g_hash_table_get_keys_as_array (self->priv->user_verifier_extensions, NULL); + extensions = (const char **) g_hash_table_get_keys_as_array (self->user_verifier_extensions, NULL); g_variant_builder_add_parsed (&details, "{'extensions', <%^as>}", extensions); @@ -2267,29 +2263,29 @@ initialize (GdmSession *self, if (log_file != NULL) g_variant_builder_add_parsed (&details, "{'log-file', <%s>}", log_file); - if (self->priv->is_program_session) - g_variant_builder_add_parsed (&details, "{'is-program-session', <%b>}", self->priv->is_program_session); + if (self->is_program_session) + g_variant_builder_add_parsed (&details, "{'is-program-session', <%b>}", self->is_program_session); - if (self->priv->display_name != NULL) - g_variant_builder_add_parsed (&details, "{'x11-display-name', <%s>}", self->priv->display_name); + if (self->display_name != NULL) + g_variant_builder_add_parsed (&details, "{'x11-display-name', <%s>}", self->display_name); - if (self->priv->display_hostname != NULL) - g_variant_builder_add_parsed (&details, "{'hostname', <%s>}", self->priv->display_hostname); + if (self->display_hostname != NULL) + g_variant_builder_add_parsed (&details, "{'hostname', <%s>}", self->display_hostname); - if (self->priv->display_is_local) - g_variant_builder_add_parsed (&details, "{'display-is-local', <%b>}", self->priv->display_is_local); + if (self->display_is_local) + g_variant_builder_add_parsed (&details, "{'display-is-local', <%b>}", self->display_is_local); - if (self->priv->display_is_initial) - g_variant_builder_add_parsed (&details, "{'display-is-initial', <%b>}", self->priv->display_is_initial); + if (self->display_is_initial) + g_variant_builder_add_parsed (&details, "{'display-is-initial', <%b>}", self->display_is_initial); - if (self->priv->display_device != NULL) - g_variant_builder_add_parsed (&details, "{'console', <%s>}", self->priv->display_device); + if (self->display_device != NULL) + g_variant_builder_add_parsed (&details, "{'console', <%s>}", self->display_device); - if (self->priv->display_seat_id != NULL) - g_variant_builder_add_parsed (&details, "{'seat-id', <%s>}", self->priv->display_seat_id); + if (self->display_seat_id != NULL) + g_variant_builder_add_parsed (&details, "{'seat-id', <%s>}", self->display_seat_id); - if (self->priv->display_x11_authority_file != NULL) - g_variant_builder_add_parsed (&details, "{'x11-authority-file', <%s>}", self->priv->display_x11_authority_file); + if (self->display_x11_authority_file != NULL) + g_variant_builder_add_parsed (&details, "{'x11-authority-file', <%s>}", self->display_x11_authority_file); g_debug ("GdmSession: Beginning initialization"); @@ -2333,8 +2329,8 @@ gdm_session_setup_for_user (GdmSession *self, gdm_session_select_user (self, username); - self->priv->is_program_session = FALSE; - initialize (self, service_name, self->priv->selected_user, NULL); + self->is_program_session = FALSE; + initialize (self, service_name, self->selected_user, NULL); gdm_session_defaults_changed (self); } @@ -2347,7 +2343,7 @@ gdm_session_setup_for_program (GdmSession *self, g_return_if_fail (GDM_IS_SESSION (self)); - self->priv->is_program_session = TRUE; + self->is_program_session = TRUE; initialize (self, service_name, username, log_file); } @@ -2419,7 +2415,7 @@ send_environment (GdmSession *self, GdmSessionConversation *conversation) { - g_hash_table_foreach (self->priv->environment, + g_hash_table_foreach (self->environment, (GHFunc) send_environment_variable, conversation); } @@ -2443,8 +2439,8 @@ get_session_name (GdmSession *self) { /* FIXME: test the session names before we use them? */ - if (self->priv->selected_session != NULL) { - return self->priv->selected_session; + if (self->selected_session != NULL) { + return self->selected_session; } return get_default_session_name (self); @@ -2476,7 +2472,7 @@ get_session_desktop_names (GdmSession *self) GKeyFile *keyfile; gchar *desktop_names = NULL; - if (self->priv->selected_program != NULL) { + if (self->selected_program != NULL) { return g_strdup ("GNOME-Greeter:GNOME"); } @@ -2508,7 +2504,7 @@ gdm_session_set_environment_variable (GdmSession *self, g_return_if_fail (key != NULL); g_return_if_fail (value != NULL); - g_hash_table_replace (self->priv->environment, + g_hash_table_replace (self->environment, g_strdup (key), g_strdup (value)); } @@ -2544,7 +2540,7 @@ set_up_session_environment (GdmSession *self) gchar *desktop_names; char *locale; - if (self->priv->selected_program == NULL) { + if (self->selected_program == NULL) { gdm_session_set_environment_variable (self, "GDMSESSION", get_session_name (self)); @@ -2580,12 +2576,12 @@ set_up_session_environment (GdmSession *self) if (display_mode == GDM_SESSION_DISPLAY_MODE_REUSE_VT) { gdm_session_set_environment_variable (self, "DISPLAY", - self->priv->display_name); + self->display_name); - if (self->priv->user_x11_authority_file != NULL) { + if (self->user_x11_authority_file != NULL) { gdm_session_set_environment_variable (self, "XAUTHORITY", - self->priv->user_x11_authority_file); + self->user_x11_authority_file); } } @@ -2617,8 +2613,8 @@ send_session_type (GdmSession *self, { const char *session_type = "x11"; - if (self->priv->session_type != NULL) { - session_type = self->priv->session_type; + if (self->session_type != NULL) { + session_type = self->session_type; } gdm_dbus_worker_call_set_environment_variable (conversation->worker_proxy, @@ -2656,7 +2652,7 @@ stop_all_other_conversations (GdmSession *self, GHashTableIter iter; gpointer key, value; - if (self->priv->conversations == NULL) { + if (self->conversations == NULL) { return; } @@ -2667,7 +2663,7 @@ stop_all_other_conversations (GdmSession *self, conversation_to_keep->service_name); } - g_hash_table_iter_init (&iter, self->priv->conversations); + g_hash_table_iter_init (&iter, self->conversations); while (g_hash_table_iter_next (&iter, &key, &value)) { GdmSessionConversation *conversation; @@ -2688,16 +2684,16 @@ stop_all_other_conversations (GdmSession *self, } if (now) { - g_hash_table_remove_all (self->priv->conversations); + g_hash_table_remove_all (self->conversations); if (conversation_to_keep != NULL) { - g_hash_table_insert (self->priv->conversations, + g_hash_table_insert (self->conversations, g_strdup (conversation_to_keep->service_name), conversation_to_keep); } - if (self->priv->session_conversation != conversation_to_keep) { - self->priv->session_conversation = NULL; + if (self->session_conversation != conversation_to_keep) { + self->session_conversation = NULL; } } @@ -2729,8 +2725,8 @@ on_start_program_cb (GdmDBusWorker *worker, service_name = conversation->service_name; if (worked) { - self->priv->session_pid = pid; - self->priv->session_conversation = conversation; + self->session_pid = pid; + self->session_conversation = conversation; g_debug ("GdmSession: Emitting 'session-started' signal with pid '%d'", pid); g_signal_emit (self, signals[SESSION_STARTED], 0, service_name, pid); @@ -2755,7 +2751,7 @@ gdm_session_start_session (GdmSession *self, char *program; g_return_if_fail (GDM_IS_SESSION (self)); - g_return_if_fail (self->priv->session_conversation == NULL); + g_return_if_fail (self->session_conversation == NULL); conversation = find_conversation_by_name (self, service_name); @@ -2770,7 +2766,7 @@ gdm_session_start_session (GdmSession *self, display_mode = gdm_session_get_display_mode (self); #ifdef ENABLE_WAYLAND_SUPPORT - is_x11 = g_strcmp0 (self->priv->session_type, "wayland") != 0; + is_x11 = g_strcmp0 (self->session_type, "wayland") != 0; #endif if (display_mode == GDM_SESSION_DISPLAY_MODE_LOGIND_MANAGED || @@ -2778,14 +2774,14 @@ gdm_session_start_session (GdmSession *self, run_launcher = TRUE; } - if (self->priv->selected_program == NULL) { + if (self->selected_program == NULL) { gboolean run_xsession_script; command = get_session_command (self); run_xsession_script = !gdm_session_bypasses_xsession (self); - if (self->priv->display_is_local) { + if (self->display_is_local) { gboolean disallow_tcp = TRUE; gdm_settings_direct_get_boolean (GDM_KEY_DISALLOW_TCP, &disallow_tcp); allow_remote_connections = !disallow_tcp; @@ -2814,17 +2810,17 @@ gdm_session_start_session (GdmSession *self, if (run_launcher) { if (is_x11) { program = g_strdup_printf (LIBEXECDIR "/gdm-x-session \"%s\"", - self->priv->selected_program); + self->selected_program); } else { program = g_strdup_printf (LIBEXECDIR "/gdm-wayland-session \"%s\"", - self->priv->selected_program); + self->selected_program); } } else { - if (g_strcmp0 (self->priv->display_seat_id, "seat0") != 0) { + if (g_strcmp0 (self->display_seat_id, "seat0") != 0) { program = g_strdup_printf ("dbus-run-session -- %s", - self->priv->selected_program); + self->selected_program); } else { - program = g_strdup (self->priv->selected_program); + program = g_strdup (self->selected_program); } } } @@ -2851,28 +2847,28 @@ do_reset (GdmSession *self) { stop_all_conversations (self); - g_list_free_full (self->priv->pending_worker_connections, g_object_unref); - self->priv->pending_worker_connections = NULL; + g_list_free_full (self->pending_worker_connections, g_object_unref); + self->pending_worker_connections = NULL; - g_free (self->priv->selected_user); - self->priv->selected_user = NULL; + g_free (self->selected_user); + self->selected_user = NULL; - g_free (self->priv->selected_session); - self->priv->selected_session = NULL; + g_free (self->selected_session); + self->selected_session = NULL; - g_free (self->priv->saved_session); - self->priv->saved_session = NULL; + g_free (self->saved_session); + self->saved_session = NULL; - g_free (self->priv->saved_language); - self->priv->saved_language = NULL; + g_free (self->saved_language); + self->saved_language = NULL; - g_free (self->priv->user_x11_authority_file); - self->priv->user_x11_authority_file = NULL; + g_free (self->user_x11_authority_file); + self->user_x11_authority_file = NULL; - g_hash_table_remove_all (self->priv->environment); + g_hash_table_remove_all (self->environment); - self->priv->session_pid = -1; - self->priv->session_conversation = NULL; + self->session_pid = -1; + self->session_conversation = NULL; } void @@ -2884,8 +2880,8 @@ gdm_session_close (GdmSession *self) g_debug ("GdmSession: Closing session"); do_reset (self); - g_list_free_full (self->priv->outside_connections, g_object_unref); - self->priv->outside_connections = NULL; + g_list_free_full (self->outside_connections, g_object_unref); + self->outside_connections = NULL; } void @@ -2915,8 +2911,8 @@ gdm_session_cancel (GdmSession *self) void gdm_session_reset (GdmSession *self) { - if (self->priv->user_verifier_interface != NULL) { - gdm_dbus_user_verifier_emit_reset (self->priv->user_verifier_interface); + if (self->user_verifier_interface != NULL) { + gdm_dbus_user_verifier_emit_reset (self->user_verifier_interface); } do_reset (self); @@ -2928,14 +2924,14 @@ gdm_session_set_timed_login_details (GdmSession *self, int delay) { g_debug ("GdmSession: timed login details %s %d", username, delay); - self->priv->timed_login_username = g_strdup (username); - self->priv->timed_login_delay = delay; + self->timed_login_username = g_strdup (username); + self->timed_login_delay = delay; } gboolean gdm_session_is_running (GdmSession *self) { - return self->priv->session_pid > 0; + return self->session_pid > 0; } gboolean @@ -2943,13 +2939,13 @@ gdm_session_client_is_connected (GdmSession *self) { g_return_val_if_fail (GDM_IS_SESSION (self), FALSE); - return self->priv->outside_connections != NULL; + return self->outside_connections != NULL; } uid_t gdm_session_get_allowed_user (GdmSession *self) { - return self->priv->allowed_user; + return self->allowed_user; } void @@ -2957,7 +2953,7 @@ gdm_session_start_reauthentication (GdmSession *session, GPid pid_of_caller, uid_t uid_of_caller) { - GdmSessionConversation *conversation = session->priv->session_conversation; + GdmSessionConversation *conversation = session->session_conversation; g_return_if_fail (conversation != NULL); @@ -2976,7 +2972,7 @@ gdm_session_get_server_address (GdmSession *self) { g_return_val_if_fail (GDM_IS_SESSION (self), NULL); - return g_dbus_server_get_client_address (self->priv->outside_server); + return g_dbus_server_get_client_address (self->outside_server); } const char * @@ -2984,7 +2980,7 @@ gdm_session_get_username (GdmSession *self) { g_return_val_if_fail (GDM_IS_SESSION (self), NULL); - return self->priv->selected_user; + return self->selected_user; } const char * @@ -2992,7 +2988,7 @@ gdm_session_get_display_device (GdmSession *self) { g_return_val_if_fail (GDM_IS_SESSION (self), NULL); - return self->priv->display_device; + return self->display_device; } const char * @@ -3000,7 +2996,7 @@ gdm_session_get_display_seat_id (GdmSession *self) { g_return_val_if_fail (GDM_IS_SESSION (self), NULL); - return g_strdup (self->priv->display_seat_id); + return g_strdup (self->display_seat_id); } const char * @@ -3010,7 +3006,7 @@ gdm_session_get_session_id (GdmSession *self) g_return_val_if_fail (GDM_IS_SESSION (self), NULL); - conversation = self->priv->session_conversation; + conversation = self->session_conversation; if (conversation == NULL) { return NULL; @@ -3137,14 +3133,14 @@ GdmSessionDisplayMode gdm_session_get_display_mode (GdmSession *self) { g_debug ("GdmSession: type %s, program? %s, seat %s", - self->priv->session_type, - self->priv->is_program_session? "yes" : "no", - self->priv->display_seat_id); + self->session_type, + self->is_program_session? "yes" : "no", + self->display_seat_id); /* Non-seat0 sessions share their X server with their login screen * for now. */ - if (g_strcmp0 (self->priv->display_seat_id, "seat0") != 0) { + if (g_strcmp0 (self->display_seat_id, "seat0") != 0) { return GDM_SESSION_DISPLAY_MODE_REUSE_VT; } @@ -3177,7 +3173,7 @@ gdm_session_get_display_mode (GdmSession *self) /* Wayland sessions are for now assumed to run in a * mutter-launch-like environment, so we allocate * a new VT for them. */ - if (g_strcmp0 (self->priv->session_type, "wayland") == 0) { + if (g_strcmp0 (self->session_type, "wayland") == 0) { return GDM_SESSION_DISPLAY_MODE_NEW_VT; } #endif @@ -3190,9 +3186,9 @@ gdm_session_select_program (GdmSession *self, const char *text) { - g_free (self->priv->selected_program); + g_free (self->selected_program); - self->priv->selected_program = g_strdup (text); + self->selected_program = g_strdup (text); } void @@ -3204,12 +3200,12 @@ gdm_session_select_session (GdmSession *self, g_debug ("GdmSession: selecting session '%s'", text); - g_free (self->priv->selected_session); - self->priv->selected_session = g_strdup (text); + g_free (self->selected_session); + self->selected_session = g_strdup (text); update_session_type (self); - g_hash_table_iter_init (&iter, self->priv->conversations); + g_hash_table_iter_init (&iter, self->conversations); while (g_hash_table_iter_next (&iter, &key, &value)) { GdmSessionConversation *conversation; @@ -3226,16 +3222,16 @@ static void set_display_name (GdmSession *self, const char *name) { - g_free (self->priv->display_name); - self->priv->display_name = g_strdup (name); + g_free (self->display_name); + self->display_name = g_strdup (name); } static void set_display_hostname (GdmSession *self, const char *name) { - g_free (self->priv->display_hostname); - self->priv->display_hostname = g_strdup (name); + g_free (self->display_hostname); + self->display_hostname = g_strdup (name); } static void @@ -3243,68 +3239,68 @@ set_display_device (GdmSession *self, const char *name) { g_debug ("GdmSession: Setting display device: %s", name); - g_free (self->priv->display_device); - self->priv->display_device = g_strdup (name); + g_free (self->display_device); + self->display_device = g_strdup (name); } static void set_display_seat_id (GdmSession *self, const char *name) { - g_free (self->priv->display_seat_id); - self->priv->display_seat_id = g_strdup (name); + g_free (self->display_seat_id); + self->display_seat_id = g_strdup (name); } static void set_user_x11_authority_file (GdmSession *self, const char *name) { - g_free (self->priv->user_x11_authority_file); - self->priv->user_x11_authority_file = g_strdup (name); + g_free (self->user_x11_authority_file); + self->user_x11_authority_file = g_strdup (name); } static void set_display_x11_authority_file (GdmSession *self, const char *name) { - g_free (self->priv->display_x11_authority_file); - self->priv->display_x11_authority_file = g_strdup (name); + g_free (self->display_x11_authority_file); + self->display_x11_authority_file = g_strdup (name); } static void set_display_is_local (GdmSession *self, gboolean is_local) { - self->priv->display_is_local = is_local; + self->display_is_local = is_local; } static void set_display_is_initial (GdmSession *self, gboolean is_initial) { - self->priv->display_is_initial = is_initial; + self->display_is_initial = is_initial; } static void set_verification_mode (GdmSession *self, GdmSessionVerificationMode verification_mode) { - self->priv->verification_mode = verification_mode; + self->verification_mode = verification_mode; } static void set_allowed_user (GdmSession *self, uid_t allowed_user) { - self->priv->allowed_user = allowed_user; + self->allowed_user = allowed_user; } static void set_conversation_environment (GdmSession *self, char **environment) { - g_strfreev (self->priv->conversation_environment); - self->priv->conversation_environment = g_strdupv (environment); + g_strfreev (self->conversation_environment); + self->conversation_environment = g_strdupv (environment); } static void @@ -3312,10 +3308,10 @@ set_session_type (GdmSession *self, const char *session_type) { - if (g_strcmp0 (self->priv->session_type, session_type) != 0) { + if (g_strcmp0 (self->session_type, session_type) != 0) { g_debug ("GdmSession: setting session to type '%s'", session_type? session_type : ""); - g_free (self->priv->session_type); - self->priv->session_type = g_strdup (session_type); + g_free (self->session_type); + self->session_type = g_strdup (session_type); } } @@ -3389,44 +3385,44 @@ gdm_session_get_property (GObject *object, switch (prop_id) { case PROP_SESSION_TYPE: - g_value_set_string (value, self->priv->session_type); + g_value_set_string (value, self->session_type); break; case PROP_DISPLAY_NAME: - g_value_set_string (value, self->priv->display_name); + g_value_set_string (value, self->display_name); break; case PROP_DISPLAY_HOSTNAME: - g_value_set_string (value, self->priv->display_hostname); + g_value_set_string (value, self->display_hostname); break; case PROP_DISPLAY_DEVICE: - g_value_set_string (value, self->priv->display_device); + g_value_set_string (value, self->display_device); break; case PROP_DISPLAY_SEAT_ID: - g_value_set_string (value, self->priv->display_seat_id); + g_value_set_string (value, self->display_seat_id); break; case PROP_USER_X11_AUTHORITY_FILE: - g_value_set_string (value, self->priv->user_x11_authority_file); + g_value_set_string (value, self->user_x11_authority_file); break; case PROP_DISPLAY_X11_AUTHORITY_FILE: - g_value_set_string (value, self->priv->display_x11_authority_file); + g_value_set_string (value, self->display_x11_authority_file); break; case PROP_DISPLAY_IS_LOCAL: - g_value_set_boolean (value, self->priv->display_is_local); + g_value_set_boolean (value, self->display_is_local); break; case PROP_DISPLAY_IS_INITIAL: - g_value_set_boolean (value, self->priv->display_is_initial); + g_value_set_boolean (value, self->display_is_initial); break; case PROP_VERIFICATION_MODE: - g_value_set_enum (value, self->priv->verification_mode); + g_value_set_enum (value, self->verification_mode); break; case PROP_ALLOWED_USER: - g_value_set_uint (value, self->priv->allowed_user); + g_value_set_uint (value, self->allowed_user); break; case PROP_CONVERSATION_ENVIRONMENT: - g_value_set_pointer (value, self->priv->environment); + g_value_set_pointer (value, self->environment); break; #ifdef ENABLE_WAYLAND_SUPPORT case PROP_IGNORE_WAYLAND: - g_value_set_boolean (value, self->priv->ignore_wayland); + g_value_set_boolean (value, self->ignore_wayland); break; #endif default: @@ -3446,46 +3442,46 @@ gdm_session_dispose (GObject *object) gdm_session_close (self); - g_clear_pointer (&self->priv->conversations, + g_clear_pointer (&self->conversations, g_hash_table_unref); - g_clear_object (&self->priv->user_verifier_interface); - g_clear_pointer (&self->priv->user_verifier_extensions, + g_clear_object (&self->user_verifier_interface); + g_clear_pointer (&self->user_verifier_extensions, g_hash_table_unref); - g_clear_object (&self->priv->greeter_interface); - g_clear_object (&self->priv->chooser_interface); + g_clear_object (&self->greeter_interface); + g_clear_object (&self->chooser_interface); - g_free (self->priv->display_name); - self->priv->display_name = NULL; + g_free (self->display_name); + self->display_name = NULL; - g_free (self->priv->display_hostname); - self->priv->display_hostname = NULL; + g_free (self->display_hostname); + self->display_hostname = NULL; - g_free (self->priv->display_device); - self->priv->display_device = NULL; + g_free (self->display_device); + self->display_device = NULL; - g_free (self->priv->display_seat_id); - self->priv->display_seat_id = NULL; + g_free (self->display_seat_id); + self->display_seat_id = NULL; - g_free (self->priv->display_x11_authority_file); - self->priv->display_x11_authority_file = NULL; + g_free (self->display_x11_authority_file); + self->display_x11_authority_file = NULL; - g_strfreev (self->priv->conversation_environment); - self->priv->conversation_environment = NULL; + g_strfreev (self->conversation_environment); + self->conversation_environment = NULL; - if (self->priv->worker_server != NULL) { - g_dbus_server_stop (self->priv->worker_server); - g_clear_object (&self->priv->worker_server); + if (self->worker_server != NULL) { + g_dbus_server_stop (self->worker_server); + g_clear_object (&self->worker_server); } - if (self->priv->outside_server != NULL) { - g_dbus_server_stop (self->priv->outside_server); - g_clear_object (&self->priv->outside_server); + if (self->outside_server != NULL) { + g_dbus_server_stop (self->outside_server); + g_clear_object (&self->outside_server); } - if (self->priv->environment != NULL) { - g_hash_table_destroy (self->priv->environment); - self->priv->environment = NULL; + if (self->environment != NULL) { + g_hash_table_destroy (self->environment); + self->environment = NULL; } G_OBJECT_CLASS (gdm_session_parent_class)->dispose (object); @@ -3499,12 +3495,12 @@ gdm_session_finalize (GObject *object) self = GDM_SESSION (object); - g_free (self->priv->selected_user); - g_free (self->priv->selected_session); - g_free (self->priv->saved_session); - g_free (self->priv->saved_language); + g_free (self->selected_user); + g_free (self->selected_session); + g_free (self->saved_session); + g_free (self->saved_language); - g_free (self->priv->fallback_session_name); + g_free (self->fallback_session_name); parent_class = G_OBJECT_CLASS (gdm_session_parent_class); @@ -3538,13 +3534,11 @@ gdm_session_class_init (GdmSessionClass *session_class) object_class->dispose = gdm_session_dispose; object_class->finalize = gdm_session_finalize; - g_type_class_add_private (session_class, sizeof (GdmSessionPrivate)); - signals [CONVERSATION_STARTED] = g_signal_new ("conversation-started", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, conversation_started), + 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, @@ -3554,7 +3548,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("conversation-stopped", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, conversation_stopped), + 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, @@ -3564,7 +3558,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("setup-complete", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, setup_complete), + 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, @@ -3576,7 +3570,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("authentication-failed", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, authentication_failed), + 0, NULL, NULL, NULL, @@ -3588,7 +3582,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("verification-complete", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, verification_complete), + 0, NULL, NULL, NULL, @@ -3599,7 +3593,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("session-opened", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, session_opened), + 0, NULL, NULL, NULL, @@ -3611,7 +3605,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("session-started", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, session_started), + 0, NULL, NULL, g_cclosure_marshal_generic, @@ -3623,7 +3617,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("session-start-failed", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, session_start_failed), + 0, NULL, NULL, g_cclosure_marshal_generic, @@ -3634,7 +3628,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("session-exited", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, session_exited), + 0, NULL, NULL, g_cclosure_marshal_VOID__INT, @@ -3645,7 +3639,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("session-died", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, session_died), + 0, NULL, NULL, g_cclosure_marshal_VOID__INT, @@ -3657,7 +3651,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("reauthentication-started", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, reauthentication_started), + 0, NULL, NULL, NULL, @@ -3669,7 +3663,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("reauthenticated", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, reauthenticated), + 0, NULL, NULL, NULL, @@ -3680,7 +3674,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("cancelled", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, cancelled), + 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, @@ -3691,7 +3685,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("client-rejected", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, client_rejected), + 0, NULL, NULL, NULL, @@ -3704,7 +3698,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("client-connected", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, client_connected), + 0, NULL, NULL, NULL, @@ -3717,7 +3711,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("client-disconnected", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, client_disconnected), + 0, NULL, NULL, NULL, @@ -3729,7 +3723,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("client-ready-for-session-to-start", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, client_ready_for_session_to_start), + 0, NULL, NULL, NULL, @@ -3742,7 +3736,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("hostname-selected", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, disconnected), + 0, NULL, NULL, NULL, @@ -3753,7 +3747,7 @@ gdm_session_class_init (GdmSessionClass *session_class) g_signal_new ("disconnected", GDM_TYPE_SESSION, G_SIGNAL_RUN_FIRST, - G_STRUCT_OFFSET (GdmSessionClass, disconnected), + 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, @@ -3924,5 +3918,5 @@ gdm_session_display_mode_to_string (GdmSessionDisplayMode mode) GPid gdm_session_get_pid (GdmSession *session) { - return session->priv->session_pid; + return session->session_pid; } diff --git a/daemon/gdm-session.h b/daemon/gdm-session.h index a22c0954..98acb4f6 100644 --- a/daemon/gdm-session.h +++ b/daemon/gdm-session.h @@ -27,13 +27,7 @@ G_BEGIN_DECLS #define GDM_TYPE_SESSION (gdm_session_get_type ()) -#define GDM_SESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDM_TYPE_SESSION, GdmSession)) -#define GDM_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDM_TYPE_SESSION, GdmSessionClass)) -#define GDM_IS_SESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDM_TYPE_SESSION)) -#define GDM_IS_SESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDM_TYPE_SESSION)) -#define GDM_SESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GDM_TYPE_SESSION, GdmSessionClass)) - -typedef struct _GdmSessionPrivate GdmSessionPrivate; +G_DECLARE_FINAL_TYPE (GdmSession, gdm_session, GDM, SESSION, GObject) typedef enum { @@ -62,59 +56,6 @@ typedef enum { GdmSessionDisplayMode gdm_session_display_mode_from_string (const char *str); const char * gdm_session_display_mode_to_string (GdmSessionDisplayMode mode); -typedef struct -{ - GObject parent; - GdmSessionPrivate *priv; -} GdmSession; - -typedef struct -{ - GObjectClass parent_class; - - /* Signals */ - void (* client_ready_for_session_to_start) (GdmSession *session, - const char *service_name, - gboolean client_is_ready); - - void (* cancelled) (GdmSession *session); - void (* client_rejected) (GdmSession *session); - void (* client_connected) (GdmSession *session); - void (* client_disconnected) (GdmSession *session); - void (* disconnected) (GdmSession *session); - void (* verification_complete) (GdmSession *session, - const char *service_name); - void (* authentication_failed) (GdmSession *session, - const char *service_name, - GPid worker_pid); - void (* session_opened) (GdmSession *session, - const char *service_name, - const char *session_id); - void (* session_started) (GdmSession *session, - const char *service_name, - const char *session_id, - int pid); - void (* session_start_failed) (GdmSession *session, - const char *service_name, - const char *message); - void (* session_exited) (GdmSession *session, - int exit_code); - void (* session_died) (GdmSession *session, - int signal_number); - void (* reauthentication_started) (GdmSession *session, - GPid pid_of_caller); - void (* reauthenticated) (GdmSession *session, - const char *service_name); - void (* conversation_started) (GdmSession *session, - const char *service_name); - void (* conversation_stopped) (GdmSession *session, - const char *service_name); - void (* setup_complete) (GdmSession *session, - const char *service_name); -} GdmSessionClass; - -GType gdm_session_get_type (void); - GdmSession *gdm_session_new (GdmSessionVerificationMode verification_mode, uid_t allowed_user, const char *display_name, diff --git a/daemon/gdm-xdmcp-display-factory.c b/daemon/gdm-xdmcp-display-factory.c index 5b5786c6..dfbce072 100644 --- a/daemon/gdm-xdmcp-display-factory.c +++ b/daemon/gdm-xdmcp-display-factory.c @@ -71,8 +71,6 @@ int allow_severity = LOG_INFO; int deny_severity = LOG_WARNING; #endif -#define GDM_XDMCP_DISPLAY_FACTORY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_XDMCP_DISPLAY_FACTORY, GdmXdmcpDisplayFactoryPrivate)) - #define DEFAULT_PORT 177 #define DEFAULT_USE_MULTICAST FALSE #define DEFAULT_MULTICAST_ADDRESS "ff02::1" @@ -162,8 +160,10 @@ typedef struct { GdmXdmcpDisplayFactory *xdmcp_display_factory; } ManagedForward; -struct GdmXdmcpDisplayFactoryPrivate +struct _GdmXdmcpDisplayFactory { + GdmDisplayFactory parent; + GSList *forward_queries; GSList *managed_forwards; GSList *indirect_clients; @@ -269,8 +269,8 @@ get_next_session_serial (GdmXdmcpDisplayFactory *factory) gint32 serial; again: - if (factory->priv->session_serial != G_MAXINT32) { - serial = factory->priv->session_serial++; + if (factory->session_serial != G_MAXINT32) { + serial = factory->session_serial++; } else { serial = g_random_int (); } @@ -561,10 +561,10 @@ setup_multicast (GdmXdmcpDisplayFactory *factory) mreq.ipv6mr_interface = ifindex; inet_pton (AF_INET6, - factory->priv->multicast_address, + factory->multicast_address, &mreq.ipv6mr_multiaddr); - setsockopt (factory->priv->socket_fd, + setsockopt (factory->socket_fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, @@ -598,24 +598,24 @@ open_port (GdmXdmcpDisplayFactory *factory) struct sockaddr_storage serv_sa = { 0 }; g_debug ("GdmXdmcpDisplayFactory: Start up on host %s, port %d", - factory->priv->hostname ? factory->priv->hostname : "(null)", - factory->priv->port); + factory->hostname ? factory->hostname : "(null)", + factory->port); /* Open socket for communications */ #ifdef ENABLE_IPV6 - factory->priv->socket_fd = do_bind (factory->priv->port, AF_INET6, &serv_sa); - if (factory->priv->socket_fd < 0) + factory->socket_fd = do_bind (factory->port, AF_INET6, &serv_sa); + if (factory->socket_fd < 0) #endif - factory->priv->socket_fd = do_bind (factory->priv->port, AF_INET, &serv_sa); + factory->socket_fd = do_bind (factory->port, AF_INET, &serv_sa); - if G_UNLIKELY (factory->priv->socket_fd < 0) { + if G_UNLIKELY (factory->socket_fd < 0) { g_warning (_("Could not create socket!")); return FALSE; } - fd_set_close_on_exec (factory->priv->socket_fd); + fd_set_close_on_exec (factory->socket_fd); - if (factory->priv->use_multicast) { + if (factory->use_multicast) { setup_multicast (factory); } @@ -763,12 +763,12 @@ get_willing_output (GdmXdmcpDisplayFactory *factory) output = NULL; buf[0] = '\0'; - if (factory->priv->willing_script == NULL) { + if (factory->willing_script == NULL) { goto out; } argv = NULL; - if (! g_shell_parse_argv (factory->priv->willing_script, NULL, &argv, NULL)) { + if (! g_shell_parse_argv (factory->willing_script, NULL, &argv, NULL)) { goto out; } @@ -778,7 +778,7 @@ get_willing_output (GdmXdmcpDisplayFactory *factory) goto out; } - fd = popen (factory->priv->willing_script, "r"); + fd = popen (factory->willing_script, "r"); if (fd == NULL) { goto out; } @@ -821,12 +821,12 @@ gdm_xdmcp_send_willing (GdmXdmcpDisplayFactory *factory, if (s != NULL) { last_status = s; } else { - last_status = g_strdup (factory->priv->sysid); + last_status = g_strdup (factory->sysid); } } if (! gdm_address_is_local (address) && - gdm_xdmcp_num_displays_from_host (factory, address) >= factory->priv->max_displays_per_host) { + gdm_xdmcp_num_displays_from_host (factory, address) >= factory->max_displays_per_host) { /* * Don't translate, this goes over the wire to servers where we * don't know the charset or language, so it must be ascii @@ -841,17 +841,17 @@ gdm_xdmcp_send_willing (GdmXdmcpDisplayFactory *factory, header.opcode = (CARD16) WILLING; header.length = 6 + serv_authlist.authentication.length; - header.length += factory->priv->servhost.length + status.length; + header.length += factory->servhost.length + status.length; header.version = XDM_PROTOCOL_VERSION; - XdmcpWriteHeader (&factory->priv->buf, &header); + XdmcpWriteHeader (&factory->buf, &header); /* Hardcoded authentication */ - XdmcpWriteARRAY8 (&factory->priv->buf, &serv_authlist.authentication); - XdmcpWriteARRAY8 (&factory->priv->buf, &factory->priv->servhost); - XdmcpWriteARRAY8 (&factory->priv->buf, &status); + XdmcpWriteARRAY8 (&factory->buf, &serv_authlist.authentication); + XdmcpWriteARRAY8 (&factory->buf, &factory->servhost); + XdmcpWriteARRAY8 (&factory->buf, &status); - XdmcpFlush (factory->priv->socket_fd, - &factory->priv->buf, + XdmcpFlush (factory->socket_fd, + &factory->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), (int)gdm_sockaddr_len (gdm_address_peek_sockaddr_storage (address))); @@ -890,14 +890,14 @@ gdm_xdmcp_send_unwilling (GdmXdmcpDisplayFactory *factory, status.length = strlen ((char *) status.data); header.opcode = (CARD16) UNWILLING; - header.length = 4 + factory->priv->servhost.length + status.length; + header.length = 4 + factory->servhost.length + status.length; header.version = XDM_PROTOCOL_VERSION; - XdmcpWriteHeader (&factory->priv->buf, &header); + XdmcpWriteHeader (&factory->buf, &header); - XdmcpWriteARRAY8 (&factory->priv->buf, &factory->priv->servhost); - XdmcpWriteARRAY8 (&factory->priv->buf, &status); - XdmcpFlush (factory->priv->socket_fd, - &factory->priv->buf, + XdmcpWriteARRAY8 (&factory->buf, &factory->servhost); + XdmcpWriteARRAY8 (&factory->buf, &status); + XdmcpFlush (factory->socket_fd, + &factory->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), (int)gdm_sockaddr_len (gdm_address_peek_sockaddr_storage (address))); @@ -1000,13 +1000,13 @@ gdm_xdmcp_send_forward_query (GdmXdmcpDisplayFactory *factory, header.length += 2 + authlist->data[i].length; } - XdmcpWriteHeader (&factory->priv->buf, &header); - XdmcpWriteARRAY8 (&factory->priv->buf, &addr); - XdmcpWriteARRAY8 (&factory->priv->buf, &port); - XdmcpWriteARRAYofARRAY8 (&factory->priv->buf, authlist); + XdmcpWriteHeader (&factory->buf, &header); + XdmcpWriteARRAY8 (&factory->buf, &addr); + XdmcpWriteARRAY8 (&factory->buf, &port); + XdmcpWriteARRAYofARRAY8 (&factory->buf, authlist); - XdmcpFlush (factory->priv->socket_fd, - &factory->priv->buf, + XdmcpFlush (factory->socket_fd, + &factory->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (ic->chosen_address), (int)gdm_sockaddr_len (gdm_address_peek_sockaddr_storage (ic->chosen_address))); @@ -1034,7 +1034,7 @@ handle_direct_query (GdmXdmcpDisplayFactory *factory, int i; int res; - res = XdmcpReadARRAYofARRAY8 (&factory->priv->buf, &clnt_authlist); + res = XdmcpReadARRAYofARRAY8 (&factory->buf, &clnt_authlist); if G_UNLIKELY (! res) { g_warning ("Could not extract authlist from packet"); return; @@ -1088,7 +1088,7 @@ indirect_client_create (GdmXdmcpDisplayFactory *factory, ic = g_new0 (IndirectClient, 1); ic->dsp_address = gdm_address_copy (dsp_address); - factory->priv->indirect_clients = g_slist_prepend (factory->priv->indirect_clients, ic); + factory->indirect_clients = g_slist_prepend (factory->indirect_clients, ic); return ic; } @@ -1101,7 +1101,7 @@ indirect_client_destroy (GdmXdmcpDisplayFactory *factory, return; } - factory->priv->indirect_clients = g_slist_remove (factory->priv->indirect_clients, ic); + factory->indirect_clients = g_slist_remove (factory->indirect_clients, ic); ic->acctime = 0; @@ -1137,7 +1137,7 @@ indirect_client_lookup_by_chosen (GdmXdmcpDisplayFactory *factory, ret = NULL; - for (li = factory->priv->indirect_clients; li != NULL; li = li->next) { + for (li = factory->indirect_clients; li != NULL; li = li->next) { IndirectClient *ic = li->data; if (ic != NULL @@ -1178,7 +1178,7 @@ indirect_client_lookup (GdmXdmcpDisplayFactory *factory, curtime = time (NULL); ret = NULL; - qlist = g_slist_copy (factory->priv->indirect_clients); + qlist = g_slist_copy (factory->indirect_clients); for (li = qlist; li != NULL; li = li->next) { IndirectClient *ic; @@ -1204,7 +1204,7 @@ indirect_client_lookup (GdmXdmcpDisplayFactory *factory, break; } - if (ic->acctime > 0 && curtime > ic->acctime + factory->priv->max_wait_indirect) { + if (ic->acctime > 0 && curtime > ic->acctime + factory->max_wait_indirect) { g_debug ("GdmXdmcpDisplayFactory: Disposing stale forward query from %s:%s", host ? host : "(null)", serv ? serv : "(null)"); @@ -1246,19 +1246,19 @@ gdm_xdmcp_handle_indirect_query (GdmXdmcpDisplayFactory *factory, return; } - if (! factory->priv->honor_indirect) { + if (! factory->honor_indirect) { /* ignore it */ return; } - if (factory->priv->num_sessions > factory->priv->max_displays || + if (factory->num_sessions > factory->max_displays || (!gdm_address_is_local (address) && - gdm_xdmcp_num_displays_from_host (factory, address) > factory->priv->max_displays_per_host)) { + gdm_xdmcp_num_displays_from_host (factory, address) > factory->max_displays_per_host)) { g_debug ("GdmXdmcpDisplayFactory: reached maximum number of clients - ignoring indirect query"); return; } - res = XdmcpReadARRAYofARRAY8 (&factory->priv->buf, &clnt_authlist); + res = XdmcpReadARRAYofARRAY8 (&factory->buf, &clnt_authlist); if G_UNLIKELY (! res) { g_warning ("Could not extract authlist from packet"); return; @@ -1342,7 +1342,7 @@ forward_query_destroy (GdmXdmcpDisplayFactory *factory, return; } - factory->priv->forward_queries = g_slist_remove (factory->priv->forward_queries, q); + factory->forward_queries = g_slist_remove (factory->forward_queries, q); q->acctime = 0; @@ -1370,7 +1370,7 @@ remove_oldest_forward (GdmXdmcpDisplayFactory *factory) GSList *li; ForwardQuery *oldest = NULL; - for (li = factory->priv->forward_queries; li != NULL; li = li->next) { + for (li = factory->forward_queries; li != NULL; li = li->next) { ForwardQuery *query = li->data; if (oldest == NULL || query->acctime < oldest->acctime) { @@ -1394,7 +1394,7 @@ forward_query_create (GdmXdmcpDisplayFactory *factory, ForwardQuery *q; int count; - count = g_slist_length (factory->priv->forward_queries); + count = g_slist_length (factory->forward_queries); while (count > GDM_MAX_FORWARD_QUERIES && remove_oldest_forward (factory)) { count--; @@ -1404,7 +1404,7 @@ forward_query_create (GdmXdmcpDisplayFactory *factory, q->dsp_address = gdm_address_copy (dsp_address); q->from_address = gdm_address_copy (mgr_address); - factory->priv->forward_queries = g_slist_prepend (factory->priv->forward_queries, q); + factory->forward_queries = g_slist_prepend (factory->forward_queries, q); return q; } @@ -1421,7 +1421,7 @@ forward_query_lookup (GdmXdmcpDisplayFactory *factory, curtime = time (NULL); ret = NULL; - qlist = g_slist_copy (factory->priv->forward_queries); + qlist = g_slist_copy (factory->forward_queries); for (li = qlist; li != NULL; li = li->next) { ForwardQuery *q; @@ -1568,12 +1568,12 @@ gdm_xdmcp_whack_queued_managed_forwards (GdmXdmcpDisplayFactory *factory, { GSList *li; - for (li = factory->priv->managed_forwards; li != NULL; li = li->next) { + for (li = factory->managed_forwards; li != NULL; li = li->next) { ManagedForward *mf = li->data; if (gdm_address_equal (mf->manager, address) && gdm_address_equal (mf->origin, origin)) { - factory->priv->managed_forwards = g_slist_remove_link (factory->priv->managed_forwards, li); + factory->managed_forwards = g_slist_remove_link (factory->managed_forwards, li); g_slist_free_1 (li); g_source_remove (mf->handler); /* mf freed by glib */ @@ -1613,14 +1613,14 @@ gdm_xdmcp_handle_forward_query (GdmXdmcpDisplayFactory *factory, } /* Read display address */ - if G_UNLIKELY (! XdmcpReadARRAY8 (&factory->priv->buf, &clnt_addr)) { + if G_UNLIKELY (! XdmcpReadARRAY8 (&factory->buf, &clnt_addr)) { g_warning ("%s: Could not read display address", "gdm_xdmcp_handle_forward_query"); return; } /* Read display port */ - if G_UNLIKELY (! XdmcpReadARRAY8 (&factory->priv->buf, &clnt_port)) { + if G_UNLIKELY (! XdmcpReadARRAY8 (&factory->buf, &clnt_port)) { XdmcpDisposeARRAY8 (&clnt_addr); g_warning ("%s: Could not read display port number", "gdm_xdmcp_handle_forward_query"); @@ -1628,7 +1628,7 @@ gdm_xdmcp_handle_forward_query (GdmXdmcpDisplayFactory *factory, } /* Extract array of authentication names from Xdmcp packet */ - if G_UNLIKELY (! XdmcpReadARRAYofARRAY8 (&factory->priv->buf, &clnt_authlist)) { + if G_UNLIKELY (! XdmcpReadARRAYofARRAY8 (&factory->buf, &clnt_authlist)) { XdmcpDisposeARRAY8 (&clnt_addr); XdmcpDisposeARRAY8 (&clnt_port); g_warning ("%s: Could not extract authlist from packet", @@ -1716,11 +1716,11 @@ gdm_xdmcp_really_send_managed_forward (GdmXdmcpDisplayFactory *factory, header.opcode = (CARD16) GDM_XDMCP_MANAGED_FORWARD; header.length = 4 + addr.length; header.version = GDM_XDMCP_PROTOCOL_VERSION; - XdmcpWriteHeader (&factory->priv->buf, &header); + XdmcpWriteHeader (&factory->buf, &header); - XdmcpWriteARRAY8 (&factory->priv->buf, &addr); - XdmcpFlush (factory->priv->socket_fd, - &factory->priv->buf, + XdmcpWriteARRAY8 (&factory->buf, &addr); + XdmcpFlush (factory->socket_fd, + &factory->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), (int)gdm_sockaddr_len (gdm_address_peek_sockaddr_storage (address))); @@ -1730,15 +1730,15 @@ gdm_xdmcp_really_send_managed_forward (GdmXdmcpDisplayFactory *factory, static gboolean managed_forward_handler (ManagedForward *mf) { - if (mf->xdmcp_display_factory->priv->socket_fd > 0) { + if (mf->xdmcp_display_factory->socket_fd > 0) { gdm_xdmcp_really_send_managed_forward (mf->xdmcp_display_factory, mf->manager, mf->origin); } mf->times++; - if (mf->xdmcp_display_factory->priv->socket_fd <= 0 || mf->times >= 2) { - mf->xdmcp_display_factory->priv->managed_forwards = g_slist_remove (mf->xdmcp_display_factory->priv->managed_forwards, mf); + if (mf->xdmcp_display_factory->socket_fd <= 0 || mf->times >= 2) { + mf->xdmcp_display_factory->managed_forwards = g_slist_remove (mf->xdmcp_display_factory->managed_forwards, mf); mf->handler = 0; /* mf freed by glib */ return FALSE; @@ -1775,7 +1775,7 @@ gdm_xdmcp_send_managed_forward (GdmXdmcpDisplayFactory *factory, (GSourceFunc)managed_forward_handler, mf, (GDestroyNotify)managed_forward_free); - factory->priv->managed_forwards = g_slist_prepend (factory->priv->managed_forwards, mf); + factory->managed_forwards = g_slist_prepend (factory->managed_forwards, mf); } static void @@ -1798,11 +1798,11 @@ gdm_xdmcp_send_got_managed_forward (GdmXdmcpDisplayFactory *factory, header.opcode = (CARD16) GDM_XDMCP_GOT_MANAGED_FORWARD; header.length = 4 + addr.length; header.version = GDM_XDMCP_PROTOCOL_VERSION; - XdmcpWriteHeader (&factory->priv->buf, &header); + XdmcpWriteHeader (&factory->buf, &header); - XdmcpWriteARRAY8 (&factory->priv->buf, &addr); - XdmcpFlush (factory->priv->socket_fd, - &factory->priv->buf, + XdmcpWriteARRAY8 (&factory->buf, &addr); + XdmcpFlush (factory->socket_fd, + &factory->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), (int)gdm_sockaddr_len (gdm_address_peek_sockaddr_storage (address))); } @@ -1818,9 +1818,9 @@ count_sessions (const char *id, status = gdm_display_get_status (display); if (status == GDM_DISPLAY_MANAGED) { - factory->priv->num_sessions++; + factory->num_sessions++; } else if (status == GDM_DISPLAY_UNMANAGED) { - factory->priv->num_pending_sessions++; + factory->num_pending_sessions++; } } @@ -1832,8 +1832,8 @@ gdm_xdmcp_recount_sessions (GdmXdmcpDisplayFactory *factory) { GdmDisplayStore *store; - factory->priv->num_sessions = 0; - factory->priv->num_pending_sessions = 0; + factory->num_sessions = 0; + factory->num_pending_sessions = 0; store = gdm_display_factory_get_display_store (GDM_DISPLAY_FACTORY (factory)); gdm_display_store_foreach (store, @@ -1856,7 +1856,7 @@ purge_displays (const char *id, acctime = gdm_display_get_creation_time (display); if (status == GDM_DISPLAY_UNMANAGED && - currtime > acctime + factory->priv->max_wait) { + currtime > acctime + factory->max_wait) { /* return TRUE to remove display */ return TRUE; } @@ -1971,13 +1971,13 @@ gdm_xdmcp_send_decline (GdmXdmcpDisplayFactory *factory, header.length += 2 + authentype.length; header.length += 2 + authendata.length; - XdmcpWriteHeader (&factory->priv->buf, &header); - XdmcpWriteARRAY8 (&factory->priv->buf, &status); - XdmcpWriteARRAY8 (&factory->priv->buf, &authentype); - XdmcpWriteARRAY8 (&factory->priv->buf, &authendata); + XdmcpWriteHeader (&factory->buf, &header); + XdmcpWriteARRAY8 (&factory->buf, &status); + XdmcpWriteARRAY8 (&factory->buf, &authentype); + XdmcpWriteARRAY8 (&factory->buf, &authendata); - XdmcpFlush (factory->priv->socket_fd, - &factory->priv->buf, + XdmcpFlush (factory->socket_fd, + &factory->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), (int)gdm_sockaddr_len (gdm_address_peek_sockaddr_storage (address))); @@ -2138,7 +2138,7 @@ gdm_xdmcp_display_create (GdmXdmcpDisplayFactory *factory, hostname ? hostname : "(null)", displaynum); use_chooser = FALSE; - if (factory->priv->honor_indirect) { + if (factory->honor_indirect) { IndirectClient *ic; ic = indirect_client_lookup (factory, address); @@ -2182,7 +2182,7 @@ gdm_xdmcp_display_create (GdmXdmcpDisplayFactory *factory, store = gdm_display_factory_get_display_store (GDM_DISPLAY_FACTORY (factory)); gdm_display_store_add (store, display); - factory->priv->num_pending_sessions++; + factory->num_pending_sessions++; out: return display; @@ -2208,15 +2208,15 @@ gdm_xdmcp_send_accept (GdmXdmcpDisplayFactory *factory, header.length += 2 + authorization_name->length; header.length += 2 + authorization_data->length; - XdmcpWriteHeader (&factory->priv->buf, &header); - XdmcpWriteCARD32 (&factory->priv->buf, session_id); - XdmcpWriteARRAY8 (&factory->priv->buf, authentication_name); - XdmcpWriteARRAY8 (&factory->priv->buf, authentication_data); - XdmcpWriteARRAY8 (&factory->priv->buf, authorization_name); - XdmcpWriteARRAY8 (&factory->priv->buf, authorization_data); + XdmcpWriteHeader (&factory->buf, &header); + XdmcpWriteCARD32 (&factory->buf, session_id); + XdmcpWriteARRAY8 (&factory->buf, authentication_name); + XdmcpWriteARRAY8 (&factory->buf, authentication_data); + XdmcpWriteARRAY8 (&factory->buf, authorization_name); + XdmcpWriteARRAY8 (&factory->buf, authorization_data); - XdmcpFlush (factory->priv->socket_fd, - &factory->priv->buf, + XdmcpFlush (factory->socket_fd, + &factory->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), (int)gdm_sockaddr_len (gdm_address_peek_sockaddr_storage (address))); @@ -2265,21 +2265,21 @@ gdm_xdmcp_handle_request (GdmXdmcpDisplayFactory *factory, gdm_xdmcp_displays_purge (factory); /* Purge pending displays */ /* Remote display number */ - if G_UNLIKELY (! XdmcpReadCARD16 (&factory->priv->buf, &clnt_dspnum)) { + if G_UNLIKELY (! XdmcpReadCARD16 (&factory->buf, &clnt_dspnum)) { g_warning ("%s: Could not read Display Number", "gdm_xdmcp_handle_request"); goto out; } /* We don't care about connection type. Address says it all */ - if G_UNLIKELY (! XdmcpReadARRAY16 (&factory->priv->buf, &clnt_conntyp)) { + if G_UNLIKELY (! XdmcpReadARRAY16 (&factory->buf, &clnt_conntyp)) { g_warning ("%s: Could not read Connection Type", "gdm_xdmcp_handle_request"); goto out; } /* This is TCP/IP - we don't care */ - if G_UNLIKELY (! XdmcpReadARRAYofARRAY8 (&factory->priv->buf, &clnt_addr)) { + if G_UNLIKELY (! XdmcpReadARRAYofARRAY8 (&factory->buf, &clnt_addr)) { g_warning ("%s: Could not read Client Address", "gdm_xdmcp_handle_request"); XdmcpDisposeARRAY16 (&clnt_conntyp); @@ -2287,7 +2287,7 @@ gdm_xdmcp_handle_request (GdmXdmcpDisplayFactory *factory, } /* Read authentication type */ - if G_UNLIKELY (! XdmcpReadARRAY8 (&factory->priv->buf, &clnt_authname)) { + if G_UNLIKELY (! XdmcpReadARRAY8 (&factory->buf, &clnt_authname)) { g_warning ("%s: Could not read Authentication Names", "gdm_xdmcp_handle_request"); XdmcpDisposeARRAYofARRAY8 (&clnt_addr); @@ -2296,7 +2296,7 @@ gdm_xdmcp_handle_request (GdmXdmcpDisplayFactory *factory, } /* Read authentication data */ - if G_UNLIKELY (! XdmcpReadARRAY8 (&factory->priv->buf, &clnt_authdata)) { + if G_UNLIKELY (! XdmcpReadARRAY8 (&factory->buf, &clnt_authdata)) { g_warning ("%s: Could not read Authentication Data", "gdm_xdmcp_handle_request"); XdmcpDisposeARRAYofARRAY8 (&clnt_addr); @@ -2306,7 +2306,7 @@ gdm_xdmcp_handle_request (GdmXdmcpDisplayFactory *factory, } /* Read and select from supported authorization list */ - if G_UNLIKELY (! XdmcpReadARRAYofARRAY8 (&factory->priv->buf, &clnt_authorization_names)) { + if G_UNLIKELY (! XdmcpReadARRAYofARRAY8 (&factory->buf, &clnt_authorization_names)) { g_warning ("%s: Could not read Authorization List", "gdm_xdmcp_handle_request"); XdmcpDisposeARRAY8 (&clnt_authdata); @@ -2325,7 +2325,7 @@ gdm_xdmcp_handle_request (GdmXdmcpDisplayFactory *factory, } /* Manufacturer ID */ - if G_UNLIKELY (! XdmcpReadARRAY8 (&factory->priv->buf, &clnt_manufacturer)) { + if G_UNLIKELY (! XdmcpReadARRAY8 (&factory->buf, &clnt_manufacturer)) { g_warning ("%s: Could not read Manufacturer ID", "gdm_xdmcp_handle_request"); XdmcpDisposeARRAY8 (&clnt_authname); @@ -2369,19 +2369,19 @@ gdm_xdmcp_handle_request (GdmXdmcpDisplayFactory *factory, { char *s = g_strndup ((char *) clnt_manufacturer.data, clnt_manufacturer.length); g_debug ("GdmXdmcpDisplayFactory: xdmcp_pending=%d, MaxPending=%d, xdmcp_sessions=%d, MaxSessions=%d, ManufacturerID=%s", - factory->priv->num_pending_sessions, - factory->priv->max_pending_displays, - factory->priv->num_sessions, - factory->priv->max_displays, + factory->num_pending_sessions, + factory->max_pending_displays, + factory->num_sessions, + factory->max_displays, s != NULL ? s : ""); g_free (s); } /* Check if ok to manage display */ if (mitauth && - factory->priv->num_sessions < factory->priv->max_displays && + factory->num_sessions < factory->max_displays && (gdm_address_is_local (address) || - gdm_xdmcp_num_displays_from_host (factory, address) < factory->priv->max_displays_per_host)) { + gdm_xdmcp_num_displays_from_host (factory, address) < factory->max_displays_per_host)) { entered = TRUE; } @@ -2390,7 +2390,7 @@ gdm_xdmcp_handle_request (GdmXdmcpDisplayFactory *factory, /* Check if we are already talking to this host */ display_dispose_check (factory, hostname, clnt_dspnum); - if (factory->priv->num_pending_sessions >= factory->priv->max_pending_displays) { + if (factory->num_pending_sessions >= factory->max_pending_displays) { g_debug ("GdmXdmcpDisplayFactory: maximum pending"); /* Don't translate, this goes over the wire to servers where we * don't know the charset or language, so it must be ascii */ @@ -2458,7 +2458,7 @@ gdm_xdmcp_handle_request (GdmXdmcpDisplayFactory *factory, gdm_xdmcp_send_decline (factory, address, "Only MIT-MAGIC-COOKIE-1 supported"); - } else if (factory->priv->num_sessions >= factory->priv->max_displays) { + } else if (factory->num_sessions >= factory->max_displays) { g_warning ("Maximum number of open XDMCP sessions reached"); gdm_xdmcp_send_decline (factory, address, @@ -2545,12 +2545,12 @@ gdm_xdmcp_send_failed (GdmXdmcpDisplayFactory *factory, header.opcode = (CARD16) FAILED; header.length = 6 + status.length; - XdmcpWriteHeader (&factory->priv->buf, &header); - XdmcpWriteCARD32 (&factory->priv->buf, sessid); - XdmcpWriteARRAY8 (&factory->priv->buf, &status); + XdmcpWriteHeader (&factory->buf, &header); + XdmcpWriteCARD32 (&factory->buf, sessid); + XdmcpWriteARRAY8 (&factory->buf, &status); - XdmcpFlush (factory->priv->socket_fd, - &factory->priv->buf, + XdmcpFlush (factory->socket_fd, + &factory->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), (int)gdm_sockaddr_len (gdm_address_peek_sockaddr_storage (address))); } @@ -2570,11 +2570,11 @@ gdm_xdmcp_send_refuse (GdmXdmcpDisplayFactory *factory, header.opcode = (CARD16) REFUSE; header.length = 4; - XdmcpWriteHeader (&factory->priv->buf, &header); - XdmcpWriteCARD32 (&factory->priv->buf, sessid); + XdmcpWriteHeader (&factory->buf, &header); + XdmcpWriteCARD32 (&factory->buf, sessid); - XdmcpFlush (factory->priv->socket_fd, - &factory->priv->buf, + XdmcpFlush (factory->socket_fd, + &factory->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), (int)gdm_sockaddr_len (gdm_address_peek_sockaddr_storage (address))); @@ -2616,21 +2616,21 @@ gdm_xdmcp_handle_manage (GdmXdmcpDisplayFactory *factory, } /* SessionID */ - if G_UNLIKELY (! XdmcpReadCARD32 (&factory->priv->buf, &clnt_sessid)) { + if G_UNLIKELY (! XdmcpReadCARD32 (&factory->buf, &clnt_sessid)) { g_warning ("%s: Could not read Session ID", "gdm_xdmcp_handle_manage"); goto out; } /* Remote display number */ - if G_UNLIKELY (! XdmcpReadCARD16 (&factory->priv->buf, &clnt_dspnum)) { + if G_UNLIKELY (! XdmcpReadCARD16 (&factory->buf, &clnt_dspnum)) { g_warning ("%s: Could not read Display Number", "gdm_xdmcp_handle_manage"); goto out; } /* Display Class */ - if G_UNLIKELY (! XdmcpReadARRAY8 (&factory->priv->buf, &clnt_dspclass)) { + if G_UNLIKELY (! XdmcpReadARRAY8 (&factory->buf, &clnt_dspclass)) { g_warning ("%s: Could not read Display Class", "gdm_xdmcp_handle_manage"); goto out; @@ -2658,7 +2658,7 @@ gdm_xdmcp_handle_manage (GdmXdmcpDisplayFactory *factory, name ? name : "(null)"); g_free (name); - if (factory->priv->honor_indirect) { + if (factory->honor_indirect) { IndirectClient *ic; ic = indirect_client_lookup (factory, address); @@ -2688,8 +2688,8 @@ gdm_xdmcp_handle_manage (GdmXdmcpDisplayFactory *factory, forward_query_destroy (factory, fq); } - factory->priv->num_sessions++; - factory->priv->num_pending_sessions--; + factory->num_sessions++; + factory->num_pending_sessions--; /* Start greeter/session */ if (! gdm_display_manage (display)) { @@ -2736,7 +2736,7 @@ gdm_xdmcp_handle_managed_forward (GdmXdmcpDisplayFactory *factory, g_free (host); /* Hostname */ - if G_UNLIKELY ( ! XdmcpReadARRAY8 (&factory->priv->buf, &clnt_address)) { + if G_UNLIKELY ( ! XdmcpReadARRAY8 (&factory->buf, &clnt_address)) { g_warning ("%s: Could not read address", "gdm_xdmcp_handle_managed_forward"); return; @@ -2786,7 +2786,7 @@ gdm_xdmcp_handle_got_managed_forward (GdmXdmcpDisplayFactory *factory, g_free (host); /* Hostname */ - if G_UNLIKELY ( ! XdmcpReadARRAY8 (&factory->priv->buf, &clnt_address)) { + if G_UNLIKELY ( ! XdmcpReadARRAY8 (&factory->buf, &clnt_address)) { g_warning ("%s: Could not read address", "gdm_xdmcp_handle_got_managed_forward"); return; @@ -2842,12 +2842,12 @@ gdm_xdmcp_send_alive (GdmXdmcpDisplayFactory *factory, header.opcode = (CARD16) ALIVE; header.length = 5; - XdmcpWriteHeader (&factory->priv->buf, &header); - XdmcpWriteCARD8 (&factory->priv->buf, send_running); - XdmcpWriteCARD32 (&factory->priv->buf, send_sessid); + XdmcpWriteHeader (&factory->buf, &header); + XdmcpWriteCARD8 (&factory->buf, send_running); + XdmcpWriteCARD32 (&factory->buf, send_sessid); - XdmcpFlush (factory->priv->socket_fd, - &factory->priv->buf, + XdmcpFlush (factory->socket_fd, + &factory->buf, (XdmcpNetaddr)gdm_address_peek_sockaddr_storage (address), (int)gdm_sockaddr_len (gdm_address_peek_sockaddr_storage (address))); } @@ -2877,14 +2877,14 @@ gdm_xdmcp_handle_keepalive (GdmXdmcpDisplayFactory *factory, g_free (host); /* Remote display number */ - if G_UNLIKELY (! XdmcpReadCARD16 (&factory->priv->buf, &clnt_dspnum)) { + if G_UNLIKELY (! XdmcpReadCARD16 (&factory->buf, &clnt_dspnum)) { g_warning ("%s: Could not read Display Number", "gdm_xdmcp_handle_keepalive"); return; } /* SessionID */ - if G_UNLIKELY (! XdmcpReadCARD32 (&factory->priv->buf, &clnt_sessid)) { + if G_UNLIKELY (! XdmcpReadCARD32 (&factory->buf, &clnt_sessid)) { g_warning ("%s: Could not read Session ID", "gdm_xdmcp_handle_keepalive"); return; @@ -2950,13 +2950,13 @@ decode_packet (GIOChannel *source, ss_len = (int) sizeof (clnt_ss); - res = XdmcpFill (factory->priv->socket_fd, &factory->priv->buf, (XdmcpNetaddr)&clnt_ss, &ss_len); + res = XdmcpFill (factory->socket_fd, &factory->buf, (XdmcpNetaddr)&clnt_ss, &ss_len); if G_UNLIKELY (! res) { g_debug ("GdmXdmcpDisplayFactory: Could not create XDMCP buffer!"); return TRUE; } - res = XdmcpReadHeader (&factory->priv->buf, &header); + res = XdmcpReadHeader (&factory->buf, &header); if G_UNLIKELY (! res) { g_warning ("GdmXdmcpDisplayFactory: Could not read XDMCP header!"); return TRUE; @@ -3047,29 +3047,29 @@ gdm_xdmcp_display_factory_start (GdmDisplayFactory *base_factory) gboolean res; g_return_val_if_fail (GDM_IS_XDMCP_DISPLAY_FACTORY (factory), FALSE); - g_return_val_if_fail (factory->priv->socket_fd == -1, FALSE); + g_return_val_if_fail (factory->socket_fd == -1, FALSE); /* read configuration */ res = gdm_settings_direct_get_uint (GDM_KEY_UDP_PORT, - &(factory->priv->port)); + &(factory->port)); res = res && gdm_settings_direct_get_boolean (GDM_KEY_MULTICAST, - &(factory->priv->use_multicast)); + &(factory->use_multicast)); res = res && gdm_settings_direct_get_string (GDM_KEY_MULTICAST_ADDR, - &(factory->priv->multicast_address)); + &(factory->multicast_address)); res = res && gdm_settings_direct_get_boolean (GDM_KEY_INDIRECT, - &(factory->priv->honor_indirect)); + &(factory->honor_indirect)); res = res && gdm_settings_direct_get_uint (GDM_KEY_DISPLAYS_PER_HOST, - &(factory->priv->max_displays_per_host)); + &(factory->max_displays_per_host)); res = res && gdm_settings_direct_get_uint (GDM_KEY_MAX_SESSIONS, - &(factory->priv->max_displays)); + &(factory->max_displays)); res = res && gdm_settings_direct_get_uint (GDM_KEY_MAX_PENDING, - &(factory->priv->max_pending_displays)); + &(factory->max_pending_displays)); res = res && gdm_settings_direct_get_uint (GDM_KEY_MAX_WAIT, - &(factory->priv->max_wait)); + &(factory->max_wait)); res = res && gdm_settings_direct_get_uint (GDM_KEY_MAX_WAIT_INDIRECT, - &(factory->priv->max_wait_indirect)); + &(factory->max_wait_indirect)); res = res && gdm_settings_direct_get_string (GDM_KEY_WILLING, - &(factory->priv->willing_script)); + &(factory->willing_script)); if (! res) { return res; @@ -3082,12 +3082,12 @@ gdm_xdmcp_display_factory_start (GdmDisplayFactory *base_factory) g_debug ("GdmXdmcpDisplayFactory: Starting to listen on XDMCP port"); - ioc = g_io_channel_unix_new (factory->priv->socket_fd); + ioc = g_io_channel_unix_new (factory->socket_fd); g_io_channel_set_encoding (ioc, NULL, NULL); g_io_channel_set_buffered (ioc, FALSE); - factory->priv->socket_watch_id = g_io_add_watch_full (ioc, + factory->socket_watch_id = g_io_add_watch_full (ioc, G_PRIORITY_DEFAULT, G_IO_IN | G_IO_PRI | G_IO_ERR | G_IO_HUP | G_IO_NVAL, (GIOFunc)decode_packet, @@ -3104,16 +3104,16 @@ gdm_xdmcp_display_factory_stop (GdmDisplayFactory *base_factory) GdmXdmcpDisplayFactory *factory = GDM_XDMCP_DISPLAY_FACTORY (base_factory); g_return_val_if_fail (GDM_IS_XDMCP_DISPLAY_FACTORY (factory), FALSE); - g_return_val_if_fail (factory->priv->socket_fd != -1, FALSE); + g_return_val_if_fail (factory->socket_fd != -1, FALSE); - if (factory->priv->socket_watch_id > 0) { - g_source_remove (factory->priv->socket_watch_id); - factory->priv->socket_watch_id = 0; + if (factory->socket_watch_id > 0) { + g_source_remove (factory->socket_watch_id); + factory->socket_watch_id = 0; } - if (factory->priv->socket_fd > 0) { - VE_IGNORE_EINTR (close (factory->priv->socket_fd)); - factory->priv->socket_fd = -1; + if (factory->socket_fd > 0) { + VE_IGNORE_EINTR (close (factory->socket_fd)); + factory->socket_fd = -1; } return TRUE; @@ -3125,7 +3125,7 @@ gdm_xdmcp_display_factory_set_port (GdmXdmcpDisplayFactory *factory, { g_return_if_fail (GDM_IS_XDMCP_DISPLAY_FACTORY (factory)); - factory->priv->port = port; + factory->port = port; } static void @@ -3134,7 +3134,7 @@ gdm_xdmcp_display_factory_set_use_multicast (GdmXdmcpDisplayFactory *factory, { g_return_if_fail (GDM_IS_XDMCP_DISPLAY_FACTORY (factory)); - factory->priv->use_multicast = use_multicast; + factory->use_multicast = use_multicast; } static void @@ -3143,8 +3143,8 @@ gdm_xdmcp_display_factory_set_multicast_address (GdmXdmcpDisplayFactory *factory { g_return_if_fail (GDM_IS_XDMCP_DISPLAY_FACTORY (factory)); - g_free (factory->priv->multicast_address); - factory->priv->multicast_address = g_strdup (address); + g_free (factory->multicast_address); + factory->multicast_address = g_strdup (address); } static void @@ -3153,7 +3153,7 @@ gdm_xdmcp_display_factory_set_honor_indirect (GdmXdmcpDisplayFactory *factory, { g_return_if_fail (GDM_IS_XDMCP_DISPLAY_FACTORY (factory)); - factory->priv->honor_indirect = honor_indirect; + factory->honor_indirect = honor_indirect; } static void @@ -3162,7 +3162,7 @@ gdm_xdmcp_display_factory_set_max_displays_per_host (GdmXdmcpDisplayFactory *fac { g_return_if_fail (GDM_IS_XDMCP_DISPLAY_FACTORY (factory)); - factory->priv->max_displays_per_host = num; + factory->max_displays_per_host = num; } static void @@ -3171,7 +3171,7 @@ gdm_xdmcp_display_factory_set_max_displays (GdmXdmcpDisplayFactory *factory, { g_return_if_fail (GDM_IS_XDMCP_DISPLAY_FACTORY (factory)); - factory->priv->max_displays = num; + factory->max_displays = num; } static void @@ -3180,7 +3180,7 @@ gdm_xdmcp_display_factory_set_max_pending_displays (GdmXdmcpDisplayFactory *fact { g_return_if_fail (GDM_IS_XDMCP_DISPLAY_FACTORY (factory)); - factory->priv->max_pending_displays = num; + factory->max_pending_displays = num; } static void @@ -3189,7 +3189,7 @@ gdm_xdmcp_display_factory_set_max_wait (GdmXdmcpDisplayFactory *factory, { g_return_if_fail (GDM_IS_XDMCP_DISPLAY_FACTORY (factory)); - factory->priv->max_wait = num; + factory->max_wait = num; } static void @@ -3198,7 +3198,7 @@ gdm_xdmcp_display_factory_set_max_wait_indirect (GdmXdmcpDisplayFactory *factory { g_return_if_fail (GDM_IS_XDMCP_DISPLAY_FACTORY (factory)); - factory->priv->max_wait_indirect = num; + factory->max_wait_indirect = num; } static void @@ -3207,8 +3207,8 @@ gdm_xdmcp_display_factory_set_willing_script (GdmXdmcpDisplayFactory *factory, { g_return_if_fail (GDM_IS_XDMCP_DISPLAY_FACTORY (factory)); - g_free (factory->priv->willing_script); - factory->priv->willing_script = g_strdup (script); + g_free (factory->willing_script); + factory->willing_script = g_strdup (script); } static void @@ -3270,34 +3270,34 @@ gdm_xdmcp_display_factory_get_property (GObject *object, switch (prop_id) { case PROP_PORT: - g_value_set_uint (value, self->priv->port); + g_value_set_uint (value, self->port); break; case PROP_USE_MULTICAST: - g_value_set_boolean (value, self->priv->use_multicast); + g_value_set_boolean (value, self->use_multicast); break; case PROP_MULTICAST_ADDRESS: - g_value_set_string (value, self->priv->multicast_address); + g_value_set_string (value, self->multicast_address); break; case PROP_HONOR_INDIRECT: - g_value_set_boolean (value, self->priv->honor_indirect); + g_value_set_boolean (value, self->honor_indirect); break; case PROP_MAX_DISPLAYS_PER_HOST: - g_value_set_uint (value, self->priv->max_displays_per_host); + g_value_set_uint (value, self->max_displays_per_host); break; case PROP_MAX_DISPLAYS: - g_value_set_uint (value, self->priv->max_displays); + g_value_set_uint (value, self->max_displays); break; case PROP_MAX_PENDING_DISPLAYS: - g_value_set_uint (value, self->priv->max_pending_displays); + g_value_set_uint (value, self->max_pending_displays); break; case PROP_MAX_WAIT: - g_value_set_uint (value, self->priv->max_wait); + g_value_set_uint (value, self->max_wait); break; case PROP_MAX_WAIT_INDIRECT: - g_value_set_uint (value, self->priv->max_wait_indirect); + g_value_set_uint (value, self->max_wait_indirect); break; case PROP_WILLING_SCRIPT: - g_value_set_string (value, self->priv->willing_script); + g_value_set_string (value, self->willing_script); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -3400,8 +3400,6 @@ gdm_xdmcp_display_factory_class_init (GdmXdmcpDisplayFactoryClass *klass) G_MAXINT, DEFAULT_MAX_WAIT_INDIRECT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - - g_type_class_add_private (klass, sizeof (GdmXdmcpDisplayFactoryPrivate)); } static void @@ -3410,11 +3408,9 @@ gdm_xdmcp_display_factory_init (GdmXdmcpDisplayFactory *factory) char hostbuf[1024]; struct utsname name; - factory->priv = GDM_XDMCP_DISPLAY_FACTORY_GET_PRIVATE (factory); - - factory->priv->socket_fd = -1; + factory->socket_fd = -1; - factory->priv->session_serial = g_random_int (); + factory->session_serial = g_random_int (); /* Fetch and store local hostname in XDMCP friendly format */ hostbuf[1023] = '\0'; @@ -3424,15 +3420,15 @@ gdm_xdmcp_display_factory_init (GdmXdmcpDisplayFactory *factory) } uname (&name); - factory->priv->sysid = g_strconcat (name.sysname, + factory->sysid = g_strconcat (name.sysname, " ", name.release, NULL); - factory->priv->hostname = g_strdup (hostbuf); + factory->hostname = g_strdup (hostbuf); - factory->priv->servhost.data = (CARD8 *) g_strdup (hostbuf); - factory->priv->servhost.length = strlen ((char *) factory->priv->servhost.data); + factory->servhost.data = (CARD8 *) g_strdup (hostbuf); + factory->servhost.length = strlen ((char *) factory->servhost.data); } static void @@ -3445,24 +3441,24 @@ gdm_xdmcp_display_factory_finalize (GObject *object) factory = GDM_XDMCP_DISPLAY_FACTORY (object); - g_return_if_fail (factory->priv != NULL); + g_return_if_fail (factory != NULL); - if (factory->priv->socket_watch_id > 0) { - g_source_remove (factory->priv->socket_watch_id); + if (factory->socket_watch_id > 0) { + g_source_remove (factory->socket_watch_id); } - if (factory->priv->socket_fd > 0) { - close (factory->priv->socket_fd); - factory->priv->socket_fd = -1; + if (factory->socket_fd > 0) { + close (factory->socket_fd); + factory->socket_fd = -1; } - g_slist_free (factory->priv->forward_queries); - g_slist_free (factory->priv->managed_forwards); + g_slist_free (factory->forward_queries); + g_slist_free (factory->managed_forwards); - g_free (factory->priv->sysid); - g_free (factory->priv->hostname); - g_free (factory->priv->multicast_address); - g_free (factory->priv->willing_script); + g_free (factory->sysid); + g_free (factory->hostname); + g_free (factory->multicast_address); + g_free (factory->willing_script); /* FIXME: Free servhost */ diff --git a/daemon/gdm-xdmcp-display-factory.h b/daemon/gdm-xdmcp-display-factory.h index fe14ea2a..2a2e8211 100644 --- a/daemon/gdm-xdmcp-display-factory.h +++ b/daemon/gdm-xdmcp-display-factory.h @@ -29,25 +29,8 @@ G_BEGIN_DECLS -#define GDM_TYPE_XDMCP_DISPLAY_FACTORY (gdm_xdmcp_display_factory_get_type ()) -#define GDM_XDMCP_DISPLAY_FACTORY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_XDMCP_DISPLAY_FACTORY, GdmXdmcpDisplayFactory)) -#define GDM_XDMCP_DISPLAY_FACTORY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_XDMCP_DISPLAY_FACTORY, GdmXdmcpDisplayFactoryClass)) -#define GDM_IS_XDMCP_DISPLAY_FACTORY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_XDMCP_DISPLAY_FACTORY)) -#define GDM_IS_XDMCP_DISPLAY_FACTORY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_XDMCP_DISPLAY_FACTORY)) -#define GDM_XDMCP_DISPLAY_FACTORY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_XDMCP_DISPLAY_FACTORY, GdmXdmcpDisplayFactoryClass)) - -typedef struct GdmXdmcpDisplayFactoryPrivate GdmXdmcpDisplayFactoryPrivate; - -typedef struct -{ - GdmDisplayFactory parent; - GdmXdmcpDisplayFactoryPrivate *priv; -} GdmXdmcpDisplayFactory; - -typedef struct -{ - GdmDisplayFactoryClass parent_class; -} GdmXdmcpDisplayFactoryClass; +#define GDM_TYPE_XDMCP_DISPLAY_FACTORY (gdm_xdmcp_display_factory_get_type ()) +G_DECLARE_FINAL_TYPE (GdmXdmcpDisplayFactory, gdm_xdmcp_display_factory, GDM, XDMCP_DISPLAY_FACTORY, GdmDisplayFactory) typedef enum { @@ -57,7 +40,6 @@ typedef enum #define GDM_XDMCP_DISPLAY_FACTORY_ERROR gdm_xdmcp_display_factory_error_quark () GQuark gdm_xdmcp_display_factory_error_quark (void); -GType gdm_xdmcp_display_factory_get_type (void); GdmXdmcpDisplayFactory * gdm_xdmcp_display_factory_new (GdmDisplayStore *display_store); diff --git a/daemon/gdm-xdmcp-display.c b/daemon/gdm-xdmcp-display.c index 630844f2..f4020672 100644 --- a/daemon/gdm-xdmcp-display.c +++ b/daemon/gdm-xdmcp-display.c @@ -46,14 +46,12 @@ #include "gdm-settings-direct.h" #include "gdm-settings-keys.h" -#define GDM_XDMCP_DISPLAY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_XDMCP_DISPLAY, GdmXdmcpDisplayPrivate)) - -struct GdmXdmcpDisplayPrivate +typedef struct _GdmXdmcpDisplayPrivate { GdmAddress *remote_address; gint32 session_number; guint connection_attempts; -}; +} GdmXdmcpDisplayPrivate; enum { PROP_0, @@ -66,36 +64,45 @@ enum { static void gdm_xdmcp_display_class_init (GdmXdmcpDisplayClass *klass); static void gdm_xdmcp_display_init (GdmXdmcpDisplay *xdmcp_display); -G_DEFINE_TYPE (GdmXdmcpDisplay, gdm_xdmcp_display, GDM_TYPE_DISPLAY) +G_DEFINE_TYPE_WITH_PRIVATE (GdmXdmcpDisplay, gdm_xdmcp_display, GDM_TYPE_DISPLAY) gint32 gdm_xdmcp_display_get_session_number (GdmXdmcpDisplay *display) { + GdmXdmcpDisplayPrivate *priv; + g_return_val_if_fail (GDM_IS_XDMCP_DISPLAY (display), 0); - return display->priv->session_number; + priv = gdm_xdmcp_display_get_instance_private (display); + return priv->session_number; } GdmAddress * gdm_xdmcp_display_get_remote_address (GdmXdmcpDisplay *display) { + GdmXdmcpDisplayPrivate *priv; + g_return_val_if_fail (GDM_IS_XDMCP_DISPLAY (display), NULL); - return display->priv->remote_address; + priv = gdm_xdmcp_display_get_instance_private (display); + return priv->remote_address; } static void _gdm_xdmcp_display_set_remote_address (GdmXdmcpDisplay *display, GdmAddress *address) { - if (display->priv->remote_address != NULL) { - gdm_address_free (display->priv->remote_address); + GdmXdmcpDisplayPrivate *priv; + + priv = gdm_xdmcp_display_get_instance_private (display); + if (priv->remote_address != NULL) { + gdm_address_free (priv->remote_address); } g_assert (address != NULL); gdm_address_debug (address); - display->priv->remote_address = gdm_address_copy (address); + priv->remote_address = gdm_address_copy (address); } static void @@ -105,15 +112,17 @@ gdm_xdmcp_display_set_property (GObject *object, GParamSpec *pspec) { GdmXdmcpDisplay *self; + GdmXdmcpDisplayPrivate *priv; self = GDM_XDMCP_DISPLAY (object); + priv = gdm_xdmcp_display_get_instance_private (self); switch (prop_id) { case PROP_REMOTE_ADDRESS: _gdm_xdmcp_display_set_remote_address (self, g_value_get_boxed (value)); break; case PROP_SESSION_NUMBER: - self->priv->session_number = g_value_get_int (value); + priv->session_number = g_value_get_int (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -128,15 +137,17 @@ gdm_xdmcp_display_get_property (GObject *object, GParamSpec *pspec) { GdmXdmcpDisplay *self; + GdmXdmcpDisplayPrivate *priv; self = GDM_XDMCP_DISPLAY (object); + priv = gdm_xdmcp_display_get_instance_private (self); switch (prop_id) { case PROP_REMOTE_ADDRESS: - g_value_set_boxed (value, self->priv->remote_address); + g_value_set_boxed (value, priv->remote_address); break; case PROP_SESSION_NUMBER: - g_value_set_int (value, self->priv->session_number); + g_value_set_int (value, priv->session_number); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -187,16 +198,18 @@ gdm_xdmcp_display_prepare (GdmDisplay *display) static gboolean idle_connect_to_display (GdmXdmcpDisplay *self) { + GdmXdmcpDisplayPrivate *priv; gboolean res; - self->priv->connection_attempts++; + priv = gdm_xdmcp_display_get_instance_private (self); + priv->connection_attempts++; res = gdm_display_connect (GDM_DISPLAY (self)); if (res) { g_object_set (G_OBJECT (self), "status", GDM_DISPLAY_MANAGED, NULL); } 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); + if (priv->connection_attempts >= MAX_CONNECT_ATTEMPTS) { + g_warning ("Unable to connect to display after %d tries - bailing out", priv->connection_attempts); gdm_display_unmanage (GDM_DISPLAY (self)); return FALSE; } @@ -226,8 +239,6 @@ gdm_xdmcp_display_class_init (GdmXdmcpDisplayClass *klass) display_class->prepare = gdm_xdmcp_display_prepare; display_class->manage = gdm_xdmcp_display_manage; - g_type_class_add_private (klass, sizeof (GdmXdmcpDisplayPrivate)); - g_object_class_install_property (object_class, PROP_REMOTE_ADDRESS, g_param_spec_boxed ("remote-address", @@ -254,8 +265,6 @@ gdm_xdmcp_display_init (GdmXdmcpDisplay *xdmcp_display) gboolean allow_remote_autologin; - xdmcp_display->priv = GDM_XDMCP_DISPLAY_GET_PRIVATE (xdmcp_display); - allow_remote_autologin = FALSE; gdm_settings_direct_get_boolean (GDM_KEY_ALLOW_REMOTE_AUTOLOGIN, &allow_remote_autologin); diff --git a/daemon/gdm-xdmcp-display.h b/daemon/gdm-xdmcp-display.h index e127614e..c103eaa5 100644 --- a/daemon/gdm-xdmcp-display.h +++ b/daemon/gdm-xdmcp-display.h @@ -31,28 +31,13 @@ G_BEGIN_DECLS -#define GDM_TYPE_XDMCP_DISPLAY (gdm_xdmcp_display_get_type ()) -#define GDM_XDMCP_DISPLAY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_XDMCP_DISPLAY, GdmXdmcpDisplay)) -#define GDM_XDMCP_DISPLAY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_XDMCP_DISPLAY, GdmXdmcpDisplayClass)) -#define GDM_IS_XDMCP_DISPLAY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_XDMCP_DISPLAY)) -#define GDM_IS_XDMCP_DISPLAY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_XDMCP_DISPLAY)) -#define GDM_XDMCP_DISPLAY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_XDMCP_DISPLAY, GdmXdmcpDisplayClass)) +#define GDM_TYPE_XDMCP_DISPLAY (gdm_xdmcp_display_get_type ()) +G_DECLARE_DERIVABLE_TYPE (GdmXdmcpDisplay, gdm_xdmcp_display, GDM, XDMCP_DISPLAY, GdmDisplay) -typedef struct GdmXdmcpDisplayPrivate GdmXdmcpDisplayPrivate; - -typedef struct -{ - GdmDisplay parent; - GdmXdmcpDisplayPrivate *priv; -} GdmXdmcpDisplay; - -typedef struct +struct _GdmXdmcpDisplayClass { GdmDisplayClass parent_class; - -} GdmXdmcpDisplayClass; - -GType gdm_xdmcp_display_get_type (void); +}; gint32 gdm_xdmcp_display_get_session_number (GdmXdmcpDisplay *display); GdmAddress * gdm_xdmcp_display_get_remote_address (GdmXdmcpDisplay *display); diff --git a/libgdm/gdm-client.c b/libgdm/gdm-client.c index f9e3faee..1686161d 100644 --- a/libgdm/gdm-client.c +++ b/libgdm/gdm-client.c @@ -34,12 +34,12 @@ #include "gdm-client-glue.h" #include "gdm-manager-glue.h" -#define GDM_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_CLIENT, GdmClientPrivate)) - #define SESSION_DBUS_PATH "/org/gnome/DisplayManager/Session" -struct GdmClientPrivate +struct _GdmClient { + GObject parent; + GdmUserVerifier *user_verifier; GHashTable *user_verifier_extensions; @@ -50,8 +50,6 @@ struct GdmClientPrivate char **enabled_extensions; }; -static void gdm_client_class_init (GdmClientClass *klass); -static void gdm_client_init (GdmClient *client); static void gdm_client_finalize (GObject *object); G_DEFINE_TYPE (GdmClient, gdm_client, G_TYPE_OBJECT); @@ -74,14 +72,14 @@ gdm_client_get_open_connection (GdmClient *client) { GDBusProxy *proxy = NULL; - if (client->priv->user_verifier != NULL) { - proxy = G_DBUS_PROXY (client->priv->user_verifier); - } else if (client->priv->greeter != NULL) { - proxy = G_DBUS_PROXY (client->priv->greeter); - } else if (client->priv->remote_greeter != NULL) { - proxy = G_DBUS_PROXY (client->priv->remote_greeter); - } else if (client->priv->chooser != NULL) { - proxy = G_DBUS_PROXY (client->priv->chooser); + if (client->user_verifier != NULL) { + proxy = G_DBUS_PROXY (client->user_verifier); + } else if (client->greeter != NULL) { + proxy = G_DBUS_PROXY (client->greeter); + } else if (client->remote_greeter != NULL) { + proxy = G_DBUS_PROXY (client->remote_greeter); + } else if (client->chooser != NULL) { + proxy = G_DBUS_PROXY (client->chooser); } if (proxy != NULL) { @@ -177,8 +175,8 @@ maybe_complete_user_verifier_proxy_operation (GdmClient *client, GHashTableIter iter; gpointer key, value; - if (client->priv->user_verifier_extensions != NULL) { - g_hash_table_iter_init (&iter, client->priv->user_verifier_extensions); + if (client->user_verifier_extensions != NULL) { + g_hash_table_iter_init (&iter, client->user_verifier_extensions); while (g_hash_table_iter_next (&iter, &key, &value)) { if (value == NULL) return; @@ -203,9 +201,9 @@ on_user_verifier_choice_list_proxy_created (GObject *source, if (choice_list == NULL) { g_debug ("Couldn't create UserVerifier ChoiceList proxy: %s", error->message); - g_hash_table_remove (client->priv->user_verifier_extensions, gdm_user_verifier_choice_list_interface_info ()->name); + g_hash_table_remove (client->user_verifier_extensions, gdm_user_verifier_choice_list_interface_info ()->name); } else { - g_hash_table_replace (client->priv->user_verifier_extensions, gdm_user_verifier_choice_list_interface_info ()->name, choice_list); + g_hash_table_replace (client->user_verifier_extensions, gdm_user_verifier_choice_list_interface_info ()->name, choice_list); } maybe_complete_user_verifier_proxy_operation (client, data); @@ -236,13 +234,13 @@ on_user_verifier_extensions_enabled (GdmUserVerifier *user_verifier, connection = g_dbus_proxy_get_connection (G_DBUS_PROXY (user_verifier)); - for (i = 0; client->priv->enabled_extensions[i] != NULL; i++) { - g_debug ("Enabled extensions[%lu] = %s", i, client->priv->enabled_extensions[i]); - g_hash_table_insert (client->priv->user_verifier_extensions, client->priv->enabled_extensions[i], NULL); + for (i = 0; client->enabled_extensions[i] != NULL; i++) { + g_debug ("Enabled extensions[%lu] = %s", i, client->enabled_extensions[i]); + g_hash_table_insert (client->user_verifier_extensions, client->enabled_extensions[i], NULL); - if (strcmp (client->priv->enabled_extensions[i], + if (strcmp (client->enabled_extensions[i], gdm_user_verifier_choice_list_interface_info ()->name) == 0) { - g_hash_table_insert (client->priv->user_verifier_extensions, client->priv->enabled_extensions[i], NULL); + g_hash_table_insert (client->user_verifier_extensions, client->enabled_extensions[i], NULL); gdm_user_verifier_choice_list_proxy_new (connection, G_DBUS_PROXY_FLAGS_NONE, NULL, @@ -252,13 +250,13 @@ on_user_verifier_extensions_enabled (GdmUserVerifier *user_verifier, on_user_verifier_choice_list_proxy_created, data); } else { - g_debug ("User verifier extension %s is unsupported", client->priv->enabled_extensions[i]); - g_hash_table_remove (client->priv->user_verifier_extensions, - client->priv->enabled_extensions[i]); + g_debug ("User verifier extension %s is unsupported", client->enabled_extensions[i]); + g_hash_table_remove (client->user_verifier_extensions, + client->enabled_extensions[i]); } } - if (g_hash_table_size (client->priv->user_verifier_extensions) == 0) { + if (g_hash_table_size (client->user_verifier_extensions) == 0) { g_debug ("No supported user verifier extensions"); complete_user_verifier_proxy_operation (client, data); } @@ -294,7 +292,7 @@ on_user_verifier_proxy_created (GObject *source, g_debug ("UserVerifier %p created", user_verifier); self = GDM_CLIENT (g_async_result_get_source_object (G_ASYNC_RESULT (task))); - if (self->priv->enabled_extensions == NULL) { + if (self->enabled_extensions == NULL) { g_debug ("no enabled extensions"); g_task_return_pointer (task, g_steal_pointer (&user_verifier), @@ -302,7 +300,7 @@ on_user_verifier_proxy_created (GObject *source, return; } - self->priv->user_verifier_extensions = g_hash_table_new_full (g_str_hash, + self->user_verifier_extensions = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify) @@ -310,7 +308,7 @@ on_user_verifier_proxy_created (GObject *source, cancellable = g_task_get_cancellable (task); gdm_user_verifier_call_enable_extensions (user_verifier, (const char * const *) - self->priv->enabled_extensions, + self->enabled_extensions, cancellable, (GAsyncReadyCallback) on_user_verifier_extensions_enabled, @@ -718,8 +716,8 @@ gdm_client_get_user_verifier_sync (GdmClient *client, { g_autoptr(GDBusConnection) connection = NULL; - if (client->priv->user_verifier != NULL) { - return g_object_ref (client->priv->user_verifier); + if (client->user_verifier != NULL) { + return g_object_ref (client->user_verifier); } connection = gdm_client_get_connection_sync (client, cancellable, error); @@ -728,35 +726,35 @@ gdm_client_get_user_verifier_sync (GdmClient *client, return NULL; } - client->priv->user_verifier = gdm_user_verifier_proxy_new_sync (connection, + client->user_verifier = gdm_user_verifier_proxy_new_sync (connection, G_DBUS_PROXY_FLAGS_NONE, NULL, SESSION_DBUS_PATH, cancellable, error); - if (client->priv->user_verifier != NULL) { - g_object_add_weak_pointer (G_OBJECT (client->priv->user_verifier), + if (client->user_verifier != NULL) { + g_object_add_weak_pointer (G_OBJECT (client->user_verifier), (gpointer *) - &client->priv->user_verifier); - if (client->priv->enabled_extensions != NULL) { + &client->user_verifier); + if (client->enabled_extensions != NULL) { gboolean res; - client->priv->user_verifier_extensions = g_hash_table_new_full (g_str_hash, + client->user_verifier_extensions = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify) free_interface_skeleton); - res = gdm_user_verifier_call_enable_extensions_sync (client->priv->user_verifier, + res = gdm_user_verifier_call_enable_extensions_sync (client->user_verifier, (const char * const *) - client->priv->enabled_extensions, + client->enabled_extensions, cancellable, NULL); if (res) { size_t i; - for (i = 0; client->priv->enabled_extensions[i] != NULL; i++) { - if (strcmp (client->priv->enabled_extensions[i], + for (i = 0; client->enabled_extensions[i] != NULL; i++) { + if (strcmp (client->enabled_extensions[i], gdm_user_verifier_choice_list_interface_info ()->name) == 0) { GdmUserVerifierChoiceList *choice_list_interface; choice_list_interface = gdm_user_verifier_choice_list_proxy_new_sync (connection, @@ -766,14 +764,14 @@ gdm_client_get_user_verifier_sync (GdmClient *client, cancellable, NULL); if (choice_list_interface != NULL) - g_hash_table_insert (client->priv->user_verifier_extensions, client->priv->enabled_extensions[i], choice_list_interface); + g_hash_table_insert (client->user_verifier_extensions, client->enabled_extensions[i], choice_list_interface); } } } } } - return client->priv->user_verifier; + return client->user_verifier; } static void @@ -827,9 +825,9 @@ gdm_client_get_user_verifier (GdmClient *client, callback, user_data); - if (client->priv->user_verifier != NULL) { + if (client->user_verifier != NULL) { g_task_return_pointer (task, - g_object_ref (client->priv->user_verifier), + g_object_ref (client->user_verifier), (GDestroyNotify) g_object_unref); return; } @@ -861,18 +859,18 @@ gdm_client_get_user_verifier_finish (GdmClient *client, g_return_val_if_fail (GDM_IS_CLIENT (client), NULL); - if (client->priv->user_verifier != NULL) - return g_object_ref (client->priv->user_verifier); + if (client->user_verifier != NULL) + return g_object_ref (client->user_verifier); user_verifier = g_task_propagate_pointer (G_TASK (result), error); if (user_verifier == NULL) return NULL; - client->priv->user_verifier = user_verifier; + client->user_verifier = user_verifier; - g_object_add_weak_pointer (G_OBJECT (client->priv->user_verifier), + g_object_add_weak_pointer (G_OBJECT (client->user_verifier), (gpointer *) - &client->priv->user_verifier); + &client->user_verifier); return user_verifier; } @@ -890,10 +888,10 @@ gdm_client_get_user_verifier_finish (GdmClient *client, GdmUserVerifierChoiceList * gdm_client_get_user_verifier_choice_list (GdmClient *client) { - if (client->priv->user_verifier_extensions == NULL) + if (client->user_verifier_extensions == NULL) return NULL; - return g_hash_table_lookup (client->priv->user_verifier_extensions, + return g_hash_table_lookup (client->user_verifier_extensions, gdm_user_verifier_choice_list_interface_info ()->name); } @@ -991,9 +989,9 @@ gdm_client_get_greeter (GdmClient *client, callback, user_data); - if (client->priv->greeter != NULL) { + if (client->greeter != NULL) { g_task_return_pointer (task, - g_object_ref (client->priv->greeter), + g_object_ref (client->greeter), (GDestroyNotify) g_object_unref); return; } @@ -1025,18 +1023,18 @@ gdm_client_get_greeter_finish (GdmClient *client, g_return_val_if_fail (GDM_IS_CLIENT (client), NULL); - if (client->priv->greeter != NULL) - return g_object_ref (client->priv->greeter); + if (client->greeter != NULL) + return g_object_ref (client->greeter); greeter = g_task_propagate_pointer (G_TASK (result), error); if (greeter == NULL) return NULL; - client->priv->greeter = greeter; + client->greeter = greeter; - g_object_add_weak_pointer (G_OBJECT (client->priv->greeter), + g_object_add_weak_pointer (G_OBJECT (client->greeter), (gpointer *) - &client->priv->greeter); + &client->greeter); return greeter; } @@ -1061,8 +1059,8 @@ gdm_client_get_greeter_sync (GdmClient *client, { g_autoptr(GDBusConnection) connection = NULL; - if (client->priv->greeter != NULL) { - return g_object_ref (client->priv->greeter); + if (client->greeter != NULL) { + return g_object_ref (client->greeter); } connection = gdm_client_get_connection_sync (client, cancellable, error); @@ -1071,22 +1069,22 @@ gdm_client_get_greeter_sync (GdmClient *client, return NULL; } - client->priv->greeter = gdm_greeter_proxy_new_sync (connection, + client->greeter = gdm_greeter_proxy_new_sync (connection, G_DBUS_PROXY_FLAGS_NONE, NULL, SESSION_DBUS_PATH, cancellable, error); - if (client->priv->greeter != NULL) { - g_object_add_weak_pointer (G_OBJECT (client->priv->greeter), + if (client->greeter != NULL) { + g_object_add_weak_pointer (G_OBJECT (client->greeter), (gpointer *) - &client->priv->greeter); + &client->greeter); - query_for_timed_login_requested_signal (client->priv->greeter); + query_for_timed_login_requested_signal (client->greeter); } - return client->priv->greeter; + return client->greeter; } static void @@ -1161,9 +1159,9 @@ gdm_client_get_remote_greeter (GdmClient *client, callback, user_data); - if (client->priv->remote_greeter != NULL) { + if (client->remote_greeter != NULL) { g_task_return_pointer (task, - g_object_ref (client->priv->remote_greeter), + g_object_ref (client->remote_greeter), (GDestroyNotify) g_object_unref); return; } @@ -1195,18 +1193,18 @@ gdm_client_get_remote_greeter_finish (GdmClient *client, g_return_val_if_fail (GDM_IS_CLIENT (client), NULL); - if (client->priv->remote_greeter != NULL) - return g_object_ref (client->priv->remote_greeter); + if (client->remote_greeter != NULL) + return g_object_ref (client->remote_greeter); remote_greeter = g_task_propagate_pointer (G_TASK (result), error); if (remote_greeter == NULL) return NULL; - client->priv->remote_greeter = remote_greeter; + client->remote_greeter = remote_greeter; - g_object_add_weak_pointer (G_OBJECT (client->priv->remote_greeter), + g_object_add_weak_pointer (G_OBJECT (client->remote_greeter), (gpointer *) - &client->priv->remote_greeter); + &client->remote_greeter); return remote_greeter; } @@ -1230,8 +1228,8 @@ gdm_client_get_remote_greeter_sync (GdmClient *client, { g_autoptr(GDBusConnection) connection = NULL; - if (client->priv->remote_greeter != NULL) { - return g_object_ref (client->priv->remote_greeter); + if (client->remote_greeter != NULL) { + return g_object_ref (client->remote_greeter); } connection = gdm_client_get_connection_sync (client, cancellable, error); @@ -1240,20 +1238,20 @@ gdm_client_get_remote_greeter_sync (GdmClient *client, return NULL; } - client->priv->remote_greeter = gdm_remote_greeter_proxy_new_sync (connection, + client->remote_greeter = gdm_remote_greeter_proxy_new_sync (connection, G_DBUS_PROXY_FLAGS_NONE, NULL, SESSION_DBUS_PATH, cancellable, error); - if (client->priv->remote_greeter != NULL) { - g_object_add_weak_pointer (G_OBJECT (client->priv->remote_greeter), + if (client->remote_greeter != NULL) { + g_object_add_weak_pointer (G_OBJECT (client->remote_greeter), (gpointer *) - &client->priv->remote_greeter); + &client->remote_greeter); } - return client->priv->remote_greeter; + return client->remote_greeter; } static void @@ -1329,9 +1327,9 @@ gdm_client_get_chooser (GdmClient *client, callback, user_data); - if (client->priv->chooser != NULL) { + if (client->chooser != NULL) { g_task_return_pointer (task, - g_object_ref (client->priv->chooser), + g_object_ref (client->chooser), (GDestroyNotify) g_object_unref); return; } @@ -1363,18 +1361,18 @@ gdm_client_get_chooser_finish (GdmClient *client, g_return_val_if_fail (GDM_IS_CLIENT (client), NULL); - if (client->priv->chooser != NULL) - return g_object_ref (client->priv->chooser); + if (client->chooser != NULL) + return g_object_ref (client->chooser); chooser = g_task_propagate_pointer (G_TASK (result), error); if (chooser == NULL) return NULL; - client->priv->chooser = chooser; + client->chooser = chooser; - g_object_add_weak_pointer (G_OBJECT (client->priv->chooser), + g_object_add_weak_pointer (G_OBJECT (client->chooser), (gpointer *) - &client->priv->chooser); + &client->chooser); return chooser; } @@ -1398,8 +1396,8 @@ gdm_client_get_chooser_sync (GdmClient *client, { g_autoptr(GDBusConnection) connection = NULL; - if (client->priv->chooser != NULL) { - return g_object_ref (client->priv->chooser); + if (client->chooser != NULL) { + return g_object_ref (client->chooser); } connection = gdm_client_get_connection_sync (client, cancellable, error); @@ -1408,20 +1406,20 @@ gdm_client_get_chooser_sync (GdmClient *client, return NULL; } - client->priv->chooser = gdm_chooser_proxy_new_sync (connection, + client->chooser = gdm_chooser_proxy_new_sync (connection, G_DBUS_PROXY_FLAGS_NONE, NULL, SESSION_DBUS_PATH, cancellable, error); - if (client->priv->chooser != NULL) { - g_object_add_weak_pointer (G_OBJECT (client->priv->chooser), + if (client->chooser != NULL) { + g_object_add_weak_pointer (G_OBJECT (client->chooser), (gpointer *) - &client->priv->chooser); + &client->chooser); } - return client->priv->chooser; + return client->chooser; } static void @@ -1430,16 +1428,11 @@ gdm_client_class_init (GdmClientClass *klass) GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->finalize = gdm_client_finalize; - - g_type_class_add_private (klass, sizeof (GdmClientPrivate)); - } static void gdm_client_init (GdmClient *client) { - - client->priv = GDM_CLIENT_GET_PRIVATE (client); } static void @@ -1452,33 +1445,33 @@ gdm_client_finalize (GObject *object) client = GDM_CLIENT (object); - g_return_if_fail (client->priv != NULL); + g_return_if_fail (client != NULL); - if (client->priv->user_verifier != NULL) { - g_object_remove_weak_pointer (G_OBJECT (client->priv->user_verifier), + if (client->user_verifier != NULL) { + g_object_remove_weak_pointer (G_OBJECT (client->user_verifier), (gpointer *) - &client->priv->user_verifier); + &client->user_verifier); } - if (client->priv->greeter != NULL) { - g_object_remove_weak_pointer (G_OBJECT (client->priv->greeter), + if (client->greeter != NULL) { + g_object_remove_weak_pointer (G_OBJECT (client->greeter), (gpointer *) - &client->priv->greeter); + &client->greeter); } - if (client->priv->remote_greeter != NULL) { - g_object_remove_weak_pointer (G_OBJECT (client->priv->remote_greeter), + if (client->remote_greeter != NULL) { + g_object_remove_weak_pointer (G_OBJECT (client->remote_greeter), (gpointer *) - &client->priv->remote_greeter); + &client->remote_greeter); } - if (client->priv->chooser != NULL) { - g_object_remove_weak_pointer (G_OBJECT (client->priv->chooser), + if (client->chooser != NULL) { + g_object_remove_weak_pointer (G_OBJECT (client->chooser), (gpointer *) - &client->priv->chooser); + &client->chooser); } - g_strfreev (client->priv->enabled_extensions); + g_strfreev (client->enabled_extensions); G_OBJECT_CLASS (gdm_client_parent_class)->finalize (object); } @@ -1510,5 +1503,5 @@ void gdm_client_set_enabled_extensions (GdmClient *client, const char * const *extensions) { - client->priv->enabled_extensions = g_strdupv ((char **) extensions); + client->enabled_extensions = g_strdupv ((char **) extensions); } diff --git a/libgdm/gdm-client.h b/libgdm/gdm-client.h index 8718a2ef..f73b5556 100644 --- a/libgdm/gdm-client.h +++ b/libgdm/gdm-client.h @@ -27,26 +27,8 @@ G_BEGIN_DECLS -#define GDM_TYPE_CLIENT (gdm_client_get_type ()) -#define GDM_CLIENT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_CLIENT, GdmClient)) -#define GDM_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_CLIENT, GdmClientClass)) -#define GDM_IS_CLIENT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_CLIENT)) -#define GDM_IS_CLIENT_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_CLIENT)) -#define GDM_CLIENT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_CLIENT, GdmClientClass)) - -typedef struct GdmClientPrivate GdmClientPrivate; - -typedef struct -{ - GObject parent; - GdmClientPrivate *priv; -} GdmClient; - -typedef struct -{ - GObjectClass parent_class; - -} GdmClientClass; +#define GDM_TYPE_CLIENT (gdm_client_get_type ()) +G_DECLARE_FINAL_TYPE (GdmClient, gdm_client, GDM, CLIENT, GObject) #define GDM_CLIENT_ERROR (gdm_client_error_quark ()) @@ -54,7 +36,6 @@ typedef enum _GdmClientError { GDM_CLIENT_ERROR_GENERIC = 0, } GdmClientError; -GType gdm_client_get_type (void); GQuark gdm_client_error_quark (void); GdmClient *gdm_client_new (void); @@ -122,10 +103,6 @@ GdmChooser *gdm_client_get_chooser_sync (GdmClient *client, GCancellable *cancellable, GError **error); -#if GLIB_CHECK_VERSION(2, 44, 0) -G_DEFINE_AUTOPTR_CLEANUP_FUNC (GdmClient, g_object_unref) -#endif - G_END_DECLS #endif /* __GDM_CLIENT_H */ |