summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Cameron <brian.cameron@sun.com>2007-06-04 03:23:02 +0000
committerBrian Cameron <bcameron@src.gnome.org>2007-06-04 03:23:02 +0000
commitd48bb095a4904dc93247f17f9b3ee1bd85e6d2c7 (patch)
tree4d800cb52df32eb70aff16f3919b65736fed0357
parent5ab6a2eab31bbf34a45326a470bb1d7428cd3d6c (diff)
downloadgdm-d48bb095a4904dc93247f17f9b3ee1bd85e6d2c7.tar.gz
Rework system locale setting so it is done in the main daemon rather than
2007-06-04 Brian Cameron <brian.cameron@sun.com> * daemon/gdm.c, daemon/slave.c: Rework system locale setting so it is done in the main daemon rather than in the slave. * daemon/auth.c: If local server, add loopback properly. Patch for these issues by Takao Fujiwara <Takao.Fujiwara@sun.com>. Fixes bug #108820. * gui/gdmlanguages.c: Minor cleanup. svn path=/trunk/; revision=4949
-rw-r--r--ChangeLog9
-rw-r--r--daemon/auth.c7
-rw-r--r--daemon/gdm.c4
-rw-r--r--daemon/slave.c8
-rw-r--r--gui/gdmlanguages.c3
5 files changed, 22 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 51ae08ea..8122cbe1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2007-06-04 Brian Cameron <brian.cameron@sun.com>
+
+ * daemon/gdm.c, daemon/slave.c: Rework system locale setting so
+ it is done in the main daemon rather than in the slave.
+ * daemon/auth.c: If local server, add loopback properly.
+ Patch for these issues by Takao Fujiwara <Takao.Fujiwara@sun.com>.
+ Fixes bug #108820.
+ * gui/gdmlanguages.c: Minor cleanup.
+
2007-05-14 Brian Cameron <brian.cameron@sun.com>
* docs/C/gdm.xml: Add mdash and percnt entities so that make
diff --git a/daemon/auth.c b/daemon/auth.c
index 0927c288..dfc514db 100644
--- a/daemon/auth.c
+++ b/daemon/auth.c
@@ -344,6 +344,7 @@ static GSList *
get_local_auths (GdmDisplay *d)
{
gboolean is_local = FALSE;
+ const char lo[] = {127,0,0,1};
guint i;
const GList *local_addys = NULL;
gboolean added_lo = FALSE;
@@ -467,11 +468,11 @@ get_local_auths (GdmDisplay *d)
}
}
- /* if local server add loopback */
+ /* If local server, then add loopback */
if (SERVER_IS_LOCAL (d) && ! added_lo && ! d->tcp_disallowed) {
struct sockaddr_storage *lo_ss = NULL;
- /* FIXME: get loobback ss */
- if (! add_auth_entry_for_addr (d, &auths, lo_ss)) {
+ if (! add_auth_entry (d, &auths, NULL, NULL, FamilyInternet,
+ lo, sizeof (struct in_addr))) {
goto get_local_auth_error;
}
}
diff --git a/daemon/gdm.c b/daemon/gdm.c
index d196d5aa..5ff2498a 100644
--- a/daemon/gdm.c
+++ b/daemon/gdm.c
@@ -135,6 +135,7 @@ int slave_fifo_pipe_fd = -1; /* The slavepipe connection */
unsigned char *gdm_global_cookie = NULL;
unsigned char *gdm_global_bcookie = NULL;
+char *gdm_system_locale = NULL;
gboolean gdm_first_login = TRUE;
@@ -1588,6 +1589,9 @@ main (int argc, char *argv[])
main_loop = g_main_loop_new (NULL, FALSE);
+ if (setlocale (LC_CTYPE, NULL) != NULL) {
+ gdm_system_locale = g_strdup (setlocale (LC_CTYPE, NULL));
+ }
/* initial TERM/INT handler */
sig.sa_handler = initial_term_int;
sig.sa_flags = SA_RESTART;
diff --git a/daemon/slave.c b/daemon/slave.c
index 7734dc39..f13c18bf 100644
--- a/daemon/slave.c
+++ b/daemon/slave.c
@@ -162,6 +162,8 @@ extern int slave_fifo_pipe_fd;
/* wait for a GO in the SOP protocol */
extern gboolean gdm_wait_for_go;
+extern char *gdm_system_locale;
+
typedef struct {
pid_t pid;
} GdmWaitPid;
@@ -4357,13 +4359,11 @@ gdm_slave_session_start (void)
case 0:
{
- const char *gdm_system_locale;
const char *lang;
gboolean has_language;
has_language = (language != NULL) && (language[0] != '\0');
- gdm_system_locale = setlocale (LC_CTYPE, NULL);
if ((gdm_system_locale != NULL) && (!has_language)) {
lang = gdm_system_locale;
} else {
@@ -4395,10 +4395,6 @@ gdm_slave_session_start (void)
default:
always_restart_greeter = FALSE;
if (!savelang && language && strcmp (usrlang, language)) {
- const char *gdm_system_locale;
-
- gdm_system_locale = setlocale (LC_CTYPE, NULL);
-
if (gdm_system_locale != NULL) {
g_setenv ("LANG", gdm_system_locale, TRUE);
setlocale (LC_ALL, "");
diff --git a/gui/gdmlanguages.c b/gui/gdmlanguages.c
index 45a27ad0..30b1db75 100644
--- a/gui/gdmlanguages.c
+++ b/gui/gdmlanguages.c
@@ -1100,6 +1100,7 @@ gdm_lang_op_lang (const gchar *args)
printf ("%c%s\n", STX, GDM_RESPONSE_CANCEL);
else
printf ("%c%s\n", STX, language);
+
fflush (stdout);
g_free (language);
}
@@ -1111,6 +1112,7 @@ gdm_lang_op_slang (const gchar *args)
printf ("%cY\n", STX);
else
printf ("%c\n", STX);
+
fflush (stdout);
}
@@ -1119,6 +1121,7 @@ gdm_lang_op_setlang (const gchar *args)
{
if (args)
gdm_lang_set ((char*)args);
+
printf ("%c\n", STX);
fflush (stdout);
}