diff options
author | Brian Cameron <brian.cameron@sun.com> | 2007-06-04 03:23:02 +0000 |
---|---|---|
committer | Brian Cameron <bcameron@src.gnome.org> | 2007-06-04 03:23:02 +0000 |
commit | d48bb095a4904dc93247f17f9b3ee1bd85e6d2c7 (patch) | |
tree | 4d800cb52df32eb70aff16f3919b65736fed0357 | |
parent | 5ab6a2eab31bbf34a45326a470bb1d7428cd3d6c (diff) | |
download | gdm-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-- | ChangeLog | 9 | ||||
-rw-r--r-- | daemon/auth.c | 7 | ||||
-rw-r--r-- | daemon/gdm.c | 4 | ||||
-rw-r--r-- | daemon/slave.c | 8 | ||||
-rw-r--r-- | gui/gdmlanguages.c | 3 |
5 files changed, 22 insertions, 9 deletions
@@ -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); } |