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>
33 /* 'private'/'protected' functions */
34 static void modest_server_account_settings_class_init (ModestServerAccountSettingsClass *klass);
35 static void modest_server_account_settings_finalize (GObject *obj);
36 static void modest_server_account_settings_instance_init (ModestServerAccountSettings *obj);
38 typedef struct _ModestServerAccountSettingsPrivate ModestServerAccountSettingsPrivate;
39 struct _ModestServerAccountSettingsPrivate {
42 ModestProtocolType protocol;
45 ModestProtocolType security_protocol;
46 ModestProtocolType auth_protocol;
51 #define MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
52 MODEST_TYPE_SERVER_ACCOUNT_SETTINGS, \
53 ModestServerAccountSettingsPrivate))
56 static GObjectClass *parent_class = NULL;
59 modest_server_account_settings_get_type (void)
61 static GType my_type = 0;
64 static const GTypeInfo my_info = {
65 sizeof(ModestServerAccountSettingsClass),
67 NULL, /* base finalize */
68 (GClassInitFunc) modest_server_account_settings_class_init,
69 NULL, /* class finalize */
70 NULL, /* class data */
71 sizeof(ModestServerAccountSettings),
73 (GInstanceInitFunc) modest_server_account_settings_instance_init,
77 my_type = g_type_register_static (G_TYPE_OBJECT,
78 "ModestServerAccountSettings",
85 modest_server_account_settings_class_init (ModestServerAccountSettingsClass *klass)
87 GObjectClass *gobject_class;
88 gobject_class = (GObjectClass *) klass;
90 parent_class = g_type_class_peek_parent (klass);
91 gobject_class->finalize = modest_server_account_settings_finalize;
93 g_type_class_add_private (gobject_class,
94 sizeof(ModestServerAccountSettingsPrivate));
98 modest_server_account_settings_instance_init (ModestServerAccountSettings *obj)
100 ModestServerAccountSettingsPrivate *priv;
102 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (obj);
104 priv->hostname = NULL;
105 priv->protocol = MODEST_PROTOCOL_REGISTRY_TYPE_INVALID;
107 priv->username = NULL;
108 priv->password = NULL;
109 priv->security_protocol = MODEST_PROTOCOLS_CONNECTION_NONE;
110 priv->auth_protocol = MODEST_PROTOCOLS_AUTH_NONE;
111 priv->account_name = NULL;
116 modest_server_account_settings_finalize (GObject *obj)
118 ModestServerAccountSettings *settings = MODEST_SERVER_ACCOUNT_SETTINGS (obj);
119 ModestServerAccountSettingsPrivate *priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
120 g_free (priv->hostname);
121 priv->hostname = NULL;
122 g_free (priv->username);
123 priv->username = NULL;
125 if (priv->password) {
126 bzero (priv->password, strlen (priv->password));
127 g_free (priv->password);
129 priv->password = NULL;
131 priv->protocol = MODEST_PROTOCOL_REGISTRY_TYPE_INVALID;
133 priv->security_protocol = MODEST_PROTOCOL_REGISTRY_TYPE_INVALID;
134 priv->auth_protocol = MODEST_PROTOCOL_REGISTRY_TYPE_INVALID;
135 g_free (priv->account_name);
136 priv->account_name = NULL;
140 G_OBJECT_CLASS (parent_class)->finalize (obj);
143 ModestServerAccountSettings*
144 modest_server_account_settings_new (void)
146 return g_object_new (MODEST_TYPE_SERVER_ACCOUNT_SETTINGS, NULL);
150 modest_server_account_settings_get_hostname (ModestServerAccountSettings *settings)
152 ModestServerAccountSettingsPrivate *priv;
154 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
156 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
157 return priv->hostname;
161 modest_server_account_settings_set_hostname (ModestServerAccountSettings *settings,
162 const gchar *hostname)
164 ModestServerAccountSettingsPrivate *priv;
166 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
168 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
169 g_free (priv->hostname);
170 priv->hostname = g_strdup (hostname);
174 modest_server_account_settings_get_uri (ModestServerAccountSettings *settings)
176 ModestServerAccountSettingsPrivate *priv;
178 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
180 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
185 modest_server_account_settings_set_uri (ModestServerAccountSettings *settings,
188 ModestServerAccountSettingsPrivate *priv;
190 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
192 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
194 priv->uri = g_strdup (uri);
199 modest_server_account_settings_get_username (ModestServerAccountSettings *settings)
201 ModestServerAccountSettingsPrivate *priv;
203 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
205 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
206 return priv->username;
210 modest_server_account_settings_set_username (ModestServerAccountSettings *settings,
211 const gchar *username)
213 ModestServerAccountSettingsPrivate *priv;
215 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
217 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
218 g_free (priv->username);
219 priv->username = g_strdup (username);
223 modest_server_account_settings_get_password (ModestServerAccountSettings *settings)
225 ModestServerAccountSettingsPrivate *priv;
227 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
229 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
230 return priv->password;
234 modest_server_account_settings_set_password (ModestServerAccountSettings *settings,
235 const gchar *password)
237 ModestServerAccountSettingsPrivate *priv;
239 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
241 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
242 if (priv->password) {
243 bzero (priv->password, strlen (priv->password));
244 g_free (priv->password);
246 priv->password = g_strdup (password);
250 modest_server_account_settings_get_account_name (ModestServerAccountSettings *settings)
252 ModestServerAccountSettingsPrivate *priv;
254 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), NULL);
256 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
257 return priv->account_name;
261 modest_server_account_settings_set_account_name (ModestServerAccountSettings *settings,
262 const gchar *account_name)
264 ModestServerAccountSettingsPrivate *priv;
266 /* be careful. This method should only be used internally in #ModestAccountMgr and
267 * #ModestAccountSettings. */
269 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
271 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
272 g_free (priv->account_name);
273 priv->account_name = g_strdup (account_name);
277 modest_server_account_settings_get_protocol (ModestServerAccountSettings *settings)
279 ModestServerAccountSettingsPrivate *priv;
281 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), MODEST_PROTOCOL_REGISTRY_TYPE_INVALID);
283 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
284 return priv->protocol;
288 modest_server_account_settings_set_protocol (ModestServerAccountSettings *settings,
289 ModestProtocolType protocol)
291 ModestServerAccountSettingsPrivate *priv;
293 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
295 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
296 priv->protocol = protocol;
301 modest_server_account_settings_get_port (ModestServerAccountSettings *settings)
303 ModestServerAccountSettingsPrivate *priv;
305 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), 0);
307 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
312 modest_server_account_settings_set_port (ModestServerAccountSettings *settings,
315 ModestServerAccountSettingsPrivate *priv;
317 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
319 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
324 modest_server_account_settings_get_security_protocol (ModestServerAccountSettings *settings)
326 ModestServerAccountSettingsPrivate *priv;
328 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), MODEST_PROTOCOL_REGISTRY_TYPE_INVALID);
330 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
331 return priv->security_protocol;
335 modest_server_account_settings_set_security_protocol (ModestServerAccountSettings *settings,
336 ModestProtocolType security_protocol)
338 ModestServerAccountSettingsPrivate *priv;
340 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
342 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
343 priv->security_protocol = security_protocol;
347 modest_server_account_settings_get_auth_protocol (ModestServerAccountSettings *settings)
349 ModestServerAccountSettingsPrivate *priv;
351 g_return_val_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings), MODEST_PROTOCOL_REGISTRY_TYPE_INVALID);
353 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
354 return priv->auth_protocol;
358 modest_server_account_settings_set_auth_protocol (ModestServerAccountSettings *settings,
359 ModestProtocolType auth_protocol)
361 ModestServerAccountSettingsPrivate *priv;
363 g_return_if_fail (MODEST_IS_SERVER_ACCOUNT_SETTINGS (settings));
365 priv = MODEST_SERVER_ACCOUNT_SETTINGS_GET_PRIVATE (settings);
366 priv->auth_protocol = auth_protocol;