Codebase list krb5-auth-dialog / upstream/0.7.git7cc1d84
Imported Upstream version 0.7.git7cc1d84 Guido Guenther 15 years ago
15 changed file(s) with 177 addition(s) and 192 deletion(s). Raw diff Collapse all Expand all
0 2008-06-09 Colin Walters <walters@verbum.org>
1
2 Bug 534867: should use g_timeout_add_seconds
3
4 * src/krb5-auth-dialog.c: Save power with
5 g_timeout_add_seconds.
6 Patch from from Guido Günther.
7
8 2008-06-09 Colin Walters <walters@verbum.org>
9
10 Bug 534736: make i18n work
11
12 * src/krb5-auth-dialog.c: Set up i18n correctly.
13 * src/Makefile.am: Pass in LOCALEDIR.
14 Patch from from Guido Günther.
15
16 2008-06-09 Colin Walters <walters@verbum.org>
17
18 Bug 534620: password field focus
19
20 * src/krb5-auth-dialog.c: Be sure we focus the
21 password field every time.
22 Patch from from Guido Günther.
23
24 2008-06-09 Colin Walters <walters@verbum.org>
25
26 Bug 534515: cleanups
27
28 * configure.in: Look for dbus-glib and not libgnome.
29 Patch from from Guido Günther.
30
31 2008-06-09 Colin Walters <walters@verbum.org>
32
33 Bug 534515: cleanups
34
35 * src/krb5-auth-dialog.c: Cleaner use of
36 gboolean. Patch from from Guido Günther.
37
38 2008-06-09 Colin Walters <walters@verbum.org>
39
40 Bug 534515: cleanups
41
42 * src/krb5-auth-dialog.c: Use GOption instead of
43 libgnome. Patch from Guido Günther.
44
45 2008-06-09 Colin Walters <walters@verbum.org>
46
47 Bug 529220: set dialog icon
48
49 * src/krb5-auth-dialog.c: Set an icon so we
50 look nicer in the window list. Patch from
51 Guido Günther.
52
053 2008-03-22 Colin Walters <walters@verbum.org>
154
255 * src/krb5-auth-dialog.c: Grab a name on the
0 NULL =
0 NULL =
11
22 smallicondir=${datadir}/icons/hicolor/22x22/apps
33 smallicon_DATA= \
4242 EXTRA_DIST = \
4343 $(glade_DATA) \
4444 $(autostart_in_files) \
45 $(schema_SOURCES) \
4645 krb5-auth-dialog.1.in
4746
48 schemadir = $(sysconfdir)/gconf/schemas
49 schema_SOURCES = $(PACKAGE).schemas.in
50 schema_DATA = $(PACKAGE).schemas
51
5247 DISTCLEANFILES = krb5-auth-dialog.desktop
53 CLEANFILES = $(schema_DATA)
54
55 %.schemas: $(srcdir)/%.schemas.in
56 sed -e "s,::PACKAGE::,$(PACKAGE)," -e "s,::MINIMUM_LIFETIME::,$(minimum_lifetime)," < $< > $@
57
00 /* Krb5 Auth Applet -- Acquire and release kerberos tickets
1 *
1 *
22 * (C) 2008 Guido Guenther <agx@sigxcpu.org>
3 *
3 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
66 * the Free Software Foundation; either version 2 of the License, or
2727 #include "krb5-auth-notify.h"
2828 #endif
2929
30 #define NOTIFY_SECONDS 300
3031
3132 /* update the tray icon's tooltip and icon */
32 int
33 int
3334 ka_update_status(Krb5AuthApplet* applet, krb5_timestamp expiry)
3435 {
3536 gchar* expiry_text;
36 int interval = expiry - time(0);
37 int now = time(0);
38 int remaining = expiry - now;
39 static int last_warn = 0;
3740 static gboolean expiry_notified = FALSE;
3841
39 if (interval > 0) {
42 if (remaining > 0) {
4043 int hours, minutes;
41 if (interval >= 3600) {
42 hours = interval / 3600;
43 minutes = (interval % 3600) / 60;
44 if (remaining >= 3600) {
45 hours = remaining / 3600;
46 minutes = (remaining % 3600) / 60;
4447 expiry_text = g_strdup_printf (_("Your credentials expire in %.2d:%.2dh"), hours, minutes);
4548 } else {
46 minutes = interval / 60;
49 minutes = remaining / 60;
4750 expiry_text = g_strdup_printf (ngettext(
4851 "Your credentials expire in %d minute",
4952 "Your credentials expire in %d minutes",
5053 minutes), minutes);
5154 }
52 gtk_status_icon_set_from_icon_name (applet->tray_icon, applet->icons[1]);
55 gtk_status_icon_set_from_icon_name (applet->tray_icon, applet->icons[1]);
5356 #ifdef HAVE_LIBNOTIFY
5457 if (expiry_notified) {
5558 ka_send_event_notification (applet, NOTIFY_URGENCY_NORMAL,
5659 _("Network credentials valid"),
5760 _("Your Kerberos credentials have been refreshed."), NULL);
5861 expiry_notified = FALSE;
62 } else if (remaining < applet->pw_prompt_secs && (now - last_warn) > NOTIFY_SECONDS) {
63 ka_send_event_notification (applet, NOTIFY_URGENCY_NORMAL,
64 _("Network credentials expiring"),
65 expiry_text, NULL);
66 last_warn = now;
5967 }
6068 #endif
6169 } else {
6270 expiry_text = g_strdup (_("Your credentials have expired"));
63 gtk_status_icon_set_from_icon_name (applet->tray_icon, applet->icons[0]);
71 gtk_status_icon_set_from_icon_name (applet->tray_icon, applet->icons[0]);
6472 #ifdef HAVE_LIBNOTIFY
6573 if (!expiry_notified) {
6674 ka_send_event_notification (applet, NOTIFY_URGENCY_NORMAL,
6775 _("Network credentials expired"),
6876 _("Your Kerberos credentails have expired."), NULL);
6977 expiry_notified = TRUE;
78 last_warn = 0;
7079 }
7180 #endif
7281 }
7382
74 gtk_status_icon_set_tooltip(applet->tray_icon, expiry_text);
75 g_free(expiry_text);
83 gtk_status_icon_set_tooltip (applet->tray_icon, expiry_text);
84 g_free (expiry_text);
7685 return 0;
7786 }
7887
7988
80 static void
89 static void
8190 ka_menu_add_separator_item (GtkWidget* menu)
8291 {
8392 GtkWidget* menu_item;
8998
9099
91100 /* Free all resources and quit */
92 static void
101 static void
93102 ka_quit_applet (GtkMenuItem* menuitem, gpointer user_data)
94103 {
95104 Krb5AuthApplet* applet = (Krb5AuthApplet*) user_data;
96
97 g_free(applet->principal);
98 g_free(applet);
99 gtk_main_quit();
100 }
101
102
103 static void
105
106 g_free (applet->principal);
107 g_free (applet);
108 gtk_main_quit ();
109 }
110
111
112 static void
104113 ka_about_dialog (GtkMenuItem* menuitem, gpointer user_data)
105114 {
106115 gchar* authors[] = { "Christopher Aillon <caillon@redhat.com>",
107116 "Colin Walters <walters@verbum.org>",
108 "Guido Günther <agx@sigxpcu.org>",
117 "Guido Günther <agx@sigxpcu.org>",
109118 NULL };
110119 gtk_show_about_dialog (NULL,
111120 "authors", authors,
132141 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image);
133142 gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
134143
135 ka_menu_add_separator_item(menu);
144 ka_menu_add_separator_item (menu);
136145
137146 /* About item */
138147 menu_item = gtk_image_menu_item_new_with_mnemonic (_("_About"));
141150 gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image);
142151 gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
143152
144 ka_menu_add_separator_item(menu);
153 ka_menu_add_separator_item (menu);
145154
146155 /* Quit */
147156 menu_item = gtk_image_menu_item_new_with_mnemonic (_("_Quit"));
157166
158167
159168 static void
160 ka_tray_icon_on_menu (GtkStatusIcon* status_icon, guint button,
169 ka_tray_icon_on_menu (GtkStatusIcon* status_icon, guint button,
161170 guint activate_time, gpointer user_data)
162171 {
163172 Krb5AuthApplet* applet = (Krb5AuthApplet*) user_data;
164
173
165174 KA_DEBUG("Trayicon right clicked: %d", applet->pw_prompt_secs);
166 gtk_menu_popup (GTK_MENU (applet->context_menu), NULL, NULL,
167 gtk_status_icon_position_menu, applet->tray_icon,
175 gtk_menu_popup (GTK_MENU (applet->context_menu), NULL, NULL,
176 gtk_status_icon_position_menu, applet->tray_icon,
168177 button, activate_time);
169178 }
170179
192201 }
193202
194203
195 static GtkStatusIcon*
204 static GtkStatusIcon*
196205 ka_create_tray_icon (Krb5AuthApplet* applet)
197206 {
198 GtkStatusIcon* tray_icon;
199
200 tray_icon = gtk_status_icon_new();
201 g_signal_connect(G_OBJECT(tray_icon), "activate",
202 G_CALLBACK(ka_tray_icon_on_click), applet);
203 g_signal_connect(G_OBJECT(tray_icon),
204 "popup-menu",
205 G_CALLBACK(ka_tray_icon_on_menu), applet);
207 GtkStatusIcon* tray_icon;
208
209 tray_icon = gtk_status_icon_new ();
210 g_signal_connect (G_OBJECT(tray_icon), "activate",
211 G_CALLBACK(ka_tray_icon_on_click), applet);
212 g_signal_connect (G_OBJECT(tray_icon),
213 "popup-menu",
214 G_CALLBACK(ka_tray_icon_on_menu), applet);
206215 gtk_status_icon_set_from_icon_name (tray_icon, applet->icons[0]);
207216 gtk_status_icon_set_tooltip (tray_icon, PACKAGE);
208217 return tray_icon;
209218 }
210219
211220
212 static void
213 ka_err_dialog (const char* err)
214 {
215 GtkWidget* dialog = gtk_message_dialog_new (NULL,
216 GTK_DIALOG_DESTROY_WITH_PARENT,
217 GTK_MESSAGE_ERROR,
218 GTK_BUTTONS_CLOSE,
219 err);
220 gtk_dialog_run (GTK_DIALOG (dialog));
221 gtk_widget_destroy (dialog);
222 }
223
224
225221 int
226222 ka_setup_icons (Krb5AuthApplet* applet)
227223 {
232228
233229
234230 /* create the tray icon applet */
235 Krb5AuthApplet*
231 Krb5AuthApplet*
236232 ka_create_applet()
237233 {
238 const char* err;
239 Krb5AuthApplet* applet = g_malloc0(sizeof(Krb5AuthApplet));
240
241 if(!(ka_setup_icons(applet))) {
242 err = _("Failure to setup icons");
243 goto out;
244 }
245
246 if(!(applet->tray_icon = ka_create_tray_icon(applet))) {
247 err = _("Failure to create tray icon");
248 goto out;
249 }
250 // FIXME: handle with signal
234 Krb5AuthApplet* applet = g_malloc0 (sizeof(Krb5AuthApplet));
235
236 if (!(ka_setup_icons (applet)))
237 g_error ("Failure to setup icons");
238 if (!(applet->tray_icon = ka_create_tray_icon (applet)))
239 g_error ("Failure to create tray icon");
240 if (!(applet->context_menu = ka_create_context_menu (applet)))
241 g_error ("Failure to create context menu");
251242 ka_show_tray_icon (applet);
252243
253 if(!(applet->context_menu = ka_create_context_menu(applet))) {
254 err = _("Failure to create context menu");
255 goto out;
256 }
257
258244 return applet;
259 out:
260 ka_err_dialog(err);
261 g_free(applet);
262 return NULL;
263 }
264
245 }
246
00 /* Krb5 Auth Applet -- Acquire and release kerberos tickets
1 *
1 *
22 * (C) 2008 Guido Guenther <agx@sigxcpu.org>
3 *
3 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
66 * the Free Software Foundation; either version 2 of the License, or
0 .TH krb5-auth-dialog 2005/11/02 "GNOME" "System Administrator's Manual"
0 .TH krb5-auth-dialog 1 2005/11/02 "GNOME" "System Administrator's Manual"
11
22 .SH NAME
33 krb5-auth-dialog \- Kerberos 5 credential checking
211211
212212 /* Check for things we have to do while the password dialog is open */
213213 static gboolean
214 krb5_auth_dialog_do_updates(gpointer data)
214 krb5_auth_dialog_do_updates (gpointer data)
215215 {
216216 Krb5AuthApplet* applet = (Krb5AuthApplet*)data;
217217 gboolean refreshable;
327327 errcode = KRB5_LIBOS_CANTREADPWD;
328328
329329 krb5_auth_dialog_setup (applet, (gchar *) prompts[i].prompt, prompts[i].hidden);
330 entry = glade_xml_get_widget(applet->pw_xml, "krb5_entry");
331 gtk_widget_grab_focus(entry);
330 entry = glade_xml_get_widget (applet->pw_xml, "krb5_entry");
331 gtk_widget_grab_focus (entry);
332332
333333 source_id = g_timeout_add_seconds (5, (GSourceFunc)krb5_auth_dialog_do_updates, applet);
334334 response = gtk_dialog_run (GTK_DIALOG (applet->pw_dialog));
403403 Krb5AuthApplet* applet = (Krb5AuthApplet*) data;
404404
405405 KA_DEBUG("Checking expiry: %d", applet->pw_prompt_secs);
406 if (credentials_expiring_real (applet, &renewable) && is_online) {
406 if (credentials_expiring_real (applet, &renewable) && is_online && !applet->show_trayicon) {
407407 give_up = canceled && (creds_expiry == canceled_creds_expiry);
408408 if (!give_up) {
409409 do {
613613 }
614614
615615
616 static void
616 static void
617617 ka_error_dialog(int err)
618618 {
619619 const char* msg = error_message(err);
620620 GtkWidget *dialog = gtk_message_dialog_new (NULL,
621 GTK_DIALOG_DESTROY_WITH_PARENT,
622 GTK_MESSAGE_ERROR,
623 GTK_BUTTONS_CLOSE,
624 _("Couldn't acquire kerberos ticket: '%s'"), msg);
625 gtk_dialog_run (GTK_DIALOG (dialog));
621 GTK_DIALOG_DESTROY_WITH_PARENT,
622 GTK_MESSAGE_ERROR,
623 GTK_BUTTONS_CLOSE,
624 _("Couldn't acquire kerberos ticket: '%s'"), msg);
625 gtk_dialog_run (GTK_DIALOG (dialog));
626626 gtk_widget_destroy (dialog);
627627 }
628628
644644 break;
645645 case 0: /* success */
646646 case KRB5_LIBOS_CANTREADPWD: /* canceled */
647 retry = FALSE;
647 retry = FALSE;
648648 break;
649649 case KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN:
650650 default:
669669 if (!strcmp(name, "krb5_entry")) {
670670 entry = gtk_secure_entry_new ();
671671 gtk_secure_entry_set_activates_default(GTK_SECURE_ENTRY(entry), TRUE);
672 gtk_widget_set(entry, "invisible-char", 0x25cf, NULL);
672673 gtk_widget_show (entry);
673674 } else {
674675 g_warning("Don't know anything about widget %s", name);
725726 g_error_free (error);
726727 return 1;
727728 }
728 textdomain(PACKAGE);
729 bind_textdomain_codeset(PACKAGE, "UTF-8");
730 bindtextdomain(PACKAGE, LOCALE_DIR);
729 textdomain (PACKAGE);
730 bind_textdomain_codeset (PACKAGE, "UTF-8");
731 bindtextdomain (PACKAGE, LOCALE_DIR);
731732 ka_secmem_init();
732733
733 if(!ka_dbus_connect (&status))
734 if (!ka_dbus_connect (&status))
734735 exit(status);
735736
736737 if (run_always && !run_auto) {
737738 always_run = TRUE;
738739 }
739740 if (using_krb5 () || always_run) {
740 applet = ka_create_applet();
741 applet = ka_create_applet ();
741742 if (!applet)
742743 return 1;
743 if (!ka_gconf_init(applet, argc, argv))
744 if (!ka_gconf_init (applet, argc, argv))
744745 return 1;
745746
746747 /* setup the pw dialog */
750751 applet->pw_dialog = glade_xml_get_widget (applet->pw_xml, "krb5_dialog");
751752
752753 g_set_application_name (_("Network Authentication"));
753 gtk_window_set_default_icon_name(applet->icons[1]);
754 gtk_window_set_default_icon_name (applet->icons[1]);
754755
755756 #ifdef ENABLE_NETWORK_MANAGER
756757 nm_context = libnm_glib_init ();
00 [Desktop Entry]
11 _Name=Network Authentication
2 _Comments=Kerberos Network Authentication Dialog
3 Exec=krb5-auth-dialog
2 _Comment=Kerberos Network Authentication Dialog
43 Encoding=UTF-8
54 Exec=krb5-auth-dialog
65 Terminal=false
115115
116116 <child>
117117 <widget class="GtkLabel" id="krb5_message_label">
118 <property name="width_request">333</property>
119118 <property name="visible">True</property>
120119 <property name="label" translatable="no"></property>
121120 <property name="use_underline">False</property>
00 /* Krb5 Auth Applet -- Acquire and release kerberos tickets
1 *
1 *
22 * (C) 2008 Guido Guenther <agx@sigxcpu.org>
3 *
3 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
66 * the Free Software Foundation; either version 2 of the License, or
+0
-39
src/krb5-auth-dialog.schemas.in less more
0 <gconfschemafile>
1 <schemalist>
2 <schema>
3 <key>/schemas/apps/::PACKAGE::/show_trayicon</key>
4 <applyto>/apps/::PACKAGE::/show_trayicon</applyto>
5 <owner>::PACKAGE::</owner>
6 <type>bool</type>
7 <default>true</default>
8 <locale name="C">
9 <short>Display trayicon</short>
10 <long>Display the trayicon in the panel</long>
11 </locale>
12 </schema>
13
14 <schema>
15 <key>/schemas/apps/::PACKAGE::/prompt_minutes</key>
16 <applyto>/apps/::PACKAGE::/prompt_minutes</applyto>
17 <owner>::PACKAGE::</owner>
18 <type>int</type>
19 <default>::MINIMUM_LIFETIME::</default>
20 <locale name="C">
21 <short>Minutes before ticket expires</short>
22 <long>How many minutes before the ticket expires should
23 prompting for the new password start</long>
24 </locale>
25 </schema>
26
27 <schema>
28 <key>/schemas/apps/::PACKAGE::/principal</key>
29 <applyto>/apps/::PACKAGE::/principal</applyto>
30 <type>string</type>
31 <default></default>
32 <locale name="C">
33 <short>default principal</short>
34 <long>principal to use when no ticket cache is present</long>
35 </locale>
36 </schema>
37 </schemalist>
38 </gconfschemafile>
00 /* Krb5 Auth Applet -- Acquire and release kerberos tickets
1 *
1 *
22 * (C) 2008 Guido Guenther <agx@sigxcpu.org>
3 *
3 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
66 * the Free Software Foundation; either version 2 of the License, or
2828 #define KA_GCONF_KEY_PROMPT_MINS KA_GCONF_PATH "/prompt_minutes"
2929 #define KA_GCONF_KEY_SHOW_TRAYICON KA_GCONF_PATH "/show_trayicon"
3030
31 static gboolean
32 ka_gconf_get_string(GConfClient* client,
33 const char* key,
34 char** value)
31 static gboolean
32 ka_gconf_get_string (GConfClient* client,
33 const char* key,
34 char** value)
3535 {
3636 GError* error = NULL;
3737 gboolean success = FALSE;
5555
5656
5757 static gboolean
58 ka_gconf_get_int(GConfClient* client,
58 ka_gconf_get_int (GConfClient* client,
5959 const char* key,
6060 int* value)
6161 {
8282
8383
8484 static gboolean
85 ka_gconf_get_bool(GConfClient* client,
85 ka_gconf_get_bool (GConfClient* client,
8686 const char* key,
8787 gboolean* value)
8888 {
109109
110110
111111 static gboolean
112 ka_gconf_set_principal(GConfClient* client, Krb5AuthApplet* applet)
113 {
114 g_free(applet->principal);
112 ka_gconf_set_principal (GConfClient* client, Krb5AuthApplet* applet)
113 {
114 g_free (applet->principal);
115115 applet->principal = NULL;
116 if(!ka_gconf_get_string(client, KA_GCONF_KEY_PRINCIPAL, &applet->principal)) {
117 applet->principal = g_strdup(g_get_user_name());
118 }
116 if(!ka_gconf_get_string (client, KA_GCONF_KEY_PRINCIPAL, &applet->principal)) {
117 applet->principal = g_strdup (g_get_user_name());
118 }
119119 KA_DEBUG("Setting principal to %s", applet->principal);
120120 // FIXME: need to send set-principal signal
121121 return TRUE;
123123
124124
125125 static gboolean
126 ka_gconf_set_prompt_mins(GConfClient* client, Krb5AuthApplet* applet)
127 {
128 if(!ka_gconf_get_int(client, KA_GCONF_KEY_PROMPT_MINS, &applet->pw_prompt_secs)) {
126 ka_gconf_set_prompt_mins (GConfClient* client, Krb5AuthApplet* applet)
127 {
128 if(!ka_gconf_get_int (client, KA_GCONF_KEY_PROMPT_MINS, &applet->pw_prompt_secs)) {
129129 applet->pw_prompt_secs = MINUTES_BEFORE_PROMPTING;
130 }
130 }
131131 applet->pw_prompt_secs *= 60;
132132 KA_DEBUG("Setting prompting timer to %d seconds", applet->pw_prompt_secs);
133133 return TRUE;
135135
136136
137137 static gboolean
138 ka_gconf_set_show_trayicon(GConfClient* client, Krb5AuthApplet* applet)
138 ka_gconf_set_show_trayicon (GConfClient* client, Krb5AuthApplet* applet)
139139 {
140140 if(!ka_gconf_get_bool(client, KA_GCONF_KEY_SHOW_TRAYICON, &applet->show_trayicon)) {
141141 applet->show_trayicon = TRUE;
142 }
142 }
143143 KA_DEBUG("Show trayicon: %s", (applet->show_trayicon ? "yes" : "no" ));
144144 // FIXME: send show trayicon signal
145145 ka_show_tray_icon(applet);
161161 return;
162162 KA_DEBUG("Key %s changed", key);
163163
164 if (g_strcmp0(key, KA_GCONF_KEY_PRINCIPAL) == 0) {
165 ka_gconf_set_principal(client, applet);
166 } else if (g_strcmp0(key, KA_GCONF_KEY_PROMPT_MINS) == 0) {
167 ka_gconf_set_prompt_mins(client, applet);
168 } else if (g_strcmp0(key, KA_GCONF_KEY_SHOW_TRAYICON) == 0) {
169 ka_gconf_set_show_trayicon(client, applet);
164 if (g_strcmp0 (key, KA_GCONF_KEY_PRINCIPAL) == 0) {
165 ka_gconf_set_principal (client, applet);
166 } else if (g_strcmp0 (key, KA_GCONF_KEY_PROMPT_MINS) == 0) {
167 ka_gconf_set_prompt_mins (client, applet);
168 } else if (g_strcmp0 (key, KA_GCONF_KEY_SHOW_TRAYICON) == 0) {
169 ka_gconf_set_show_trayicon (client, applet);
170170 } else
171171 g_warning("Received notification for unknown gconf key %s", key);
172172 return;
180180 GConfClient* client;
181181 gboolean success = FALSE;
182182
183 client = gconf_client_get_default();
184 gconf_client_add_dir(client, KA_GCONF_PATH, GCONF_CLIENT_PRELOAD_ONELEVEL, &error);
183 client = gconf_client_get_default ();
184 gconf_client_add_dir (client, KA_GCONF_PATH, GCONF_CLIENT_PRELOAD_ONELEVEL, &error);
185185 if (error)
186186 goto out;
187187
188 gconf_client_notify_add(client, KA_GCONF_PATH,
189 ka_gconf_key_changed_callback, applet, NULL, &error);
188 gconf_client_notify_add (client, KA_GCONF_PATH,
189 ka_gconf_key_changed_callback, applet, NULL, &error);
190190 if (error)
191191 goto out;
192192
193193 /* setup defaults */
194 ka_gconf_set_principal(client, applet);
195 ka_gconf_set_prompt_mins(client, applet);
196 ka_gconf_set_show_trayicon(client, applet);
194 ka_gconf_set_principal (client, applet);
195 ka_gconf_set_prompt_mins (client, applet);
196 ka_gconf_set_show_trayicon (client, applet);
197197
198198 success = TRUE;
199199 out:
00 /* Krb5 Auth Applet -- Acquire and release kerberos tickets
1 *
1 *
22 * (C) 2008 Guido Guenther <agx@sigxcpu.org>
3 *
3 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
66 * the Free Software Foundation; either version 2 of the License, or
00 /* Krb5 Auth Applet -- Acquire and release kerberos tickets
1 *
1 *
22 * (C) 2008 Guido Guenther <agx@sigxcpu.org>
3 *
3 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
66 * the Free Software Foundation; either version 2 of the License, or
00 /* Krb5 Auth Applet -- Acquire and release kerberos tickets
1 *
1 *
22 * (C) 2008 Guido Guenther <agx@sigxcpu.org>
3 *
3 *
44 * This program is free software; you can redistribute it and/or modify
55 * it under the terms of the GNU General Public License as published by
66 * the Free Software Foundation; either version 2 of the License, or