]> rtime.felk.cvut.cz Git - sojka/lightdm.git/blob - src/xdmcp-session.c
Merge in changes for LP:#789389
[sojka/lightdm.git] / src / xdmcp-session.c
1 /*
2  * Copyright (C) 2010-2011 Robert Ancell.
3  * Author: Robert Ancell <robert.ancell@canonical.com>
4  * 
5  * This program is free software: you can redistribute it and/or modify it under
6  * the terms of the GNU General Public License as published by the Free Software
7  * Foundation, either version 3 of the License, or (at your option) any later
8  * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
9  * license.
10  */
11
12 #include "xdmcp-session.h"
13 #include "xdmcp-session-private.h"
14
15 G_DEFINE_TYPE (XDMCPSession, xdmcp_session, G_TYPE_OBJECT);
16
17 XDMCPSession *
18 xdmcp_session_new (guint16 id)
19 {
20     XDMCPSession *self = g_object_new (XDMCP_SESSION_TYPE, NULL);
21
22     self->priv->id = id;
23
24     return self;
25 }
26
27 guint16
28 xdmcp_session_get_id (XDMCPSession *session)
29 {
30     return session->priv->id;
31 }
32
33 const gchar *
34 xdmcp_session_get_manufacturer_display_id (XDMCPSession *session)
35 {
36     return session->priv->manufacturer_display_id;
37 }
38
39 const GInetAddress *
40 xdmcp_session_get_address (XDMCPSession *session)
41 {
42     return session->priv->address;
43 }
44
45 const gchar *
46 xdmcp_session_get_authorization_name (XDMCPSession *session)
47 {
48     return session->priv->authorization_name;
49 }
50
51 const guchar *
52 xdmcp_session_get_authorization_data (XDMCPSession *session)
53 {
54     return session->priv->authorization_data;  
55 }
56
57 const gsize
58 xdmcp_session_get_authorization_data_length (XDMCPSession *session)
59 {
60     return session->priv->authorization_data_length;
61 }
62
63 guint16
64 xdmcp_session_get_display_number (XDMCPSession *session)
65 {
66     return session->priv->display_number;
67 }
68
69 const gchar *
70 xdmcp_session_get_display_class (XDMCPSession *session)
71 {
72     return session->priv->display_class;
73 }
74
75 static void
76 xdmcp_session_init (XDMCPSession *session)
77 {
78     session->priv = G_TYPE_INSTANCE_GET_PRIVATE (session, XDMCP_SESSION_TYPE, XDMCPSessionPrivate);
79     session->priv->manufacturer_display_id = g_strdup ("");
80     session->priv->authorization_name = g_strdup ("");
81     session->priv->display_class = g_strdup ("");
82 }
83
84 static void
85 xdmcp_session_finalize (GObject *object)
86 {
87     XDMCPSession *self;
88
89     self = XDMCP_SESSION (object);
90   
91     g_free (self->priv->manufacturer_display_id);
92     if (self->priv->address)
93         g_object_unref (self->priv->address);
94     if (self->priv->address6)
95         g_object_unref (self->priv->address6);
96     g_free (self->priv->authorization_name);
97     g_free (self->priv->display_class);
98
99     G_OBJECT_CLASS (xdmcp_session_parent_class)->finalize (object);
100 }
101
102 static void
103 xdmcp_session_class_init (XDMCPSessionClass *klass)
104 {
105     GObjectClass *object_class = G_OBJECT_CLASS (klass);
106
107     object_class->finalize = xdmcp_session_finalize;  
108
109     g_type_class_add_private (klass, sizeof (XDMCPSessionPrivate));
110 }