1 /* Copyright (c) 2007, Nokia Corporation
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * * Neither the name of the Nokia Corporation nor the names of its
14 * contributors may be used to endorse or promote products derived from
15 * this software without specific prior written permission.
17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
18 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
20 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
21 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 #include <modest-protocol-registry.h>
31 #include <modest-server-account-settings.h>
34 /* 'private'/'protected' functions */
35 static void modest_server_account_settings_class_init (ModestServerAccountSettingsClass *klass);
36 static void modest_server_account_settings_finalize (GObject *obj);
37 static void modest_server_account_settings_instance_init (ModestServerAccountSettings *obj);
39 typedef struct _ModestServerAccountSettingsPrivate ModestServerAccountSettingsPrivate;
40 struct _ModestServerAccountSettingsPrivate {
43 ModestProtocolType protocol;
46 ModestProtocolType security_protocol;
47 ModestProtocolType auth_protocol;
52 #define MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
53 MODEST_TYPE_SERVER_ACCOUNT_SETTINGS, \
54 ModestServerAccountSettingsPrivate))
57 static GObjectClass *parent_class = NULL;
60 modest_server_account_settings_get_type (void)
62 static GType my_type = 0;
65 static const GTypeInfo my_info = {
66 sizeof(ModestServerAccountSettingsClass),
68 NULL, /* base finalize */
69 (GClassInitFunc) modest_server_account_settings_class_init,
70 NULL, /* class finalize */
71 NULL, /* class data */
72 sizeof(ModestServerAccountSettings),
74 (GInstanceInitFunc) modest_server_account_settings_instance_init,
78 my_type = g_type_register_static (G_TYPE_OBJECT,
79 "ModestServerAccountSettings",
86 modest_server_account_settings_class_init (ModestServerAccountSettingsClass *klass)
88 GObjectClass *gobject_class;
89 gobject_class = (GObjectClass *) klass;
91 parent_class = g_type_class_peek_parent (klass);
92 gobject_class->finalize = modest_server_account_settings_finalize;
94 g_type_class_add_private (gobject_class,
95 sizeof(ModestServerAccountSettingsPrivate));
99 modest_server_account_settings_instance_init (ModestServerAccountSettings *obj)
101 ModestServerAccountSettingsPrivate *priv;
103 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (obj);
105 priv->hostname = NULL;
106 priv->protocol = MODEST_PROTOCOL_REGISTRY_TYPE_INVALID;
108 priv->username = NULL;
109 priv->password = NULL;
110 priv->security_protocol = MODEST_PROTOCOLS_CONNECTION_NONE;
111 priv->auth_protocol = MODEST_PROTOCOLS_AUTH_NONE;
112 priv->account_name = NULL;
117 modest_server_account_settings_finalize (GObject *obj)
119 ModestServerAccountSettings *settings = MODEST_SERVER_ACCOUNT_SETTINGS (obj);
120 ModestServerAccountSettingsPrivate *priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
121 g_free (priv->hostname);
122 priv->hostname = NULL;
123 g_free (priv->username);
124 priv->username = NULL;
126 if (priv->password) {
127 bzero (priv->password, strlen (priv->password));
128 g_free (priv->password);
130 priv->password = NULL;
132 priv->protocol = MODEST_PROTOCOL_REGISTRY_TYPE_INVALID;
134 priv->security_protocol = MODEST_PROTOCOL_REGISTRY_TYPE_INVALID;
135 priv->auth_protocol = MODEST_PROTOCOL_REGISTRY_TYPE_INVALID;
136 g_free (priv->account_name);
137 priv->account_name = NULL;
141 G_OBJECT_CLASS (parent_class)->finalize (obj);
144 ModestServerAccountSettings*
145 modest_server_account_settings_new (void)
147 return g_object_new (MODEST_TYPE_SERVER_ACCOUNT_SETTINGS, NULL);
151 modest_server_account_settings_get_hostname (ModestServerAccountSettings *settings)
153 ModestServerAccountSettingsPrivate *priv;
155 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
157 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
158 return priv->hostname;
162 modest_server_account_settings_set_hostname (ModestServerAccountSettings *settings,
163 const gchar *hostname)
165 ModestServerAccountSettingsPrivate *priv;
167 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
169 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
170 g_free (priv->hostname);
171 priv->hostname = g_strdup (hostname);
175 modest_server_account_settings_get_uri (ModestServerAccountSettings *settings)
177 ModestServerAccountSettingsPrivate *priv;
179 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
181 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
186 modest_server_account_settings_set_uri (ModestServerAccountSettings *settings,
189 ModestServerAccountSettingsPrivate *priv;
191 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
193 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
195 priv->uri = g_strdup (uri);
200 modest_server_account_settings_get_username (ModestServerAccountSettings *settings)
202 ModestServerAccountSettingsPrivate *priv;
204 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
206 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
207 return priv->username;
211 modest_server_account_settings_set_username (ModestServerAccountSettings *settings,
212 const gchar *username)
214 ModestServerAccountSettingsPrivate *priv;
216 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
218 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
219 g_free (priv->username);
220 priv->username = g_strdup (username);
224 modest_server_account_settings_get_password (ModestServerAccountSettings *settings)
226 ModestServerAccountSettingsPrivate *priv;
228 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
230 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
231 return priv->password;
235 modest_server_account_settings_set_password (ModestServerAccountSettings *settings,
236 const gchar *password)
238 ModestServerAccountSettingsPrivate *priv;
240 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
242 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
243 if (priv->password) {
244 bzero (priv->password, strlen (priv->password));
245 g_free (priv->password);
247 priv->password = g_strdup (password);
251 modest_server_account_settings_get_account_name (ModestServerAccountSettings *settings)
253 ModestServerAccountSettingsPrivate *priv;
255 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
257 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
258 return priv->account_name;
262 modest_server_account_settings_set_account_name (ModestServerAccountSettings *settings,
263 const gchar *account_name)
265 ModestServerAccountSettingsPrivate *priv;
267 /* be careful. This method should only be used internally in #ModestAccountMgr and
268 * #ModestAccountSettings. */
270 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
272 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
273 g_free (priv->account_name);
274 priv->account_name = g_strdup (account_name);
278 modest_server_account_settings_get_protocol (ModestServerAccountSettings *settings)
280 ModestServerAccountSettingsPrivate *priv;
282 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), MODEST_PROTOCOL_REGISTRY_TYPE_INVALID);
284 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
285 return priv->protocol;
289 modest_server_account_settings_set_protocol (ModestServerAccountSettings *settings,
290 ModestProtocolType protocol)
292 ModestServerAccountSettingsPrivate *priv;
294 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
296 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
297 priv->protocol = protocol;
302 modest_server_account_settings_get_port (ModestServerAccountSettings *settings)
304 ModestServerAccountSettingsPrivate *priv;
306 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), 0);
308 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
313 modest_server_account_settings_set_port (ModestServerAccountSettings *settings,
316 ModestServerAccountSettingsPrivate *priv;
318 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
320 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
325 modest_server_account_settings_get_security_protocol (ModestServerAccountSettings *settings)
327 ModestServerAccountSettingsPrivate *priv;
329 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), MODEST_PROTOCOL_REGISTRY_TYPE_INVALID);
331 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
332 return priv->security_protocol;
336 modest_server_account_settings_set_security_protocol (ModestServerAccountSettings *settings,
337 ModestProtocolType security_protocol)
339 ModestServerAccountSettingsPrivate *priv;
341 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
343 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
344 priv->security_protocol = security_protocol;
348 modest_server_account_settings_get_auth_protocol (ModestServerAccountSettings *settings)
350 ModestServerAccountSettingsPrivate *priv;
352 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), MODEST_PROTOCOL_REGISTRY_TYPE_INVALID);
354 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
355 return priv->auth_protocol;
359 modest_server_account_settings_set_auth_protocol (ModestServerAccountSettings *settings,
360 ModestProtocolType auth_protocol)
362 ModestServerAccountSettingsPrivate *priv;
364 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
366 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
367 priv->auth_protocol = auth_protocol;