krb5 commit: Enable all localizations in main functions
Benjamin Kaduk
kaduk at MIT.EDU
Fri Jul 6 14:07:45 EDT 2012
https://github.com/krb5/krb5/commit/75c7c600b49a7f1d5cf95260fc073cb4ba5929cd
commit 75c7c600b49a7f1d5cf95260fc073cb4ba5929cd
Author: Ben Kaduk <kaduk at mit.edu>
Date: Thu Jul 5 14:56:50 2012 -0400
Enable all localizations in main functions
Bite the bullet and pass LC_ALL to setlocale() instead of just
LC_MESSAGES. Calls to setlocale() itself were introduced in
fabbf9e443459e8c0161c84563690ed70c7f6a61 for ticket 6918, but
only for LC_MESSAGES since only localized strings were needed
and that was the most conservative option.
However, klist, kadmin, and kinit (and perhaps others) would benefit
from localized formats for times (i.e., LC_TIME). If potentially
localized data is being sent on the wire, that is a bug that should
be fixed. No such bugs are found with the current test suite, so we
are comfortable enabling LC_ALL at this time.
ticket: 7192
src/clients/kdestroy/kdestroy.c | 2 +-
src/clients/kinit/kinit.c | 2 +-
src/clients/klist/klist.c | 2 +-
src/clients/kpasswd/kpasswd.c | 2 +-
src/clients/kswitch/kswitch.c | 2 +-
src/clients/kvno/kvno.c | 2 +-
src/kadmin/cli/ss_wrapper.c | 2 +-
src/kadmin/dbutil/kdb5_util.c | 2 +-
src/kadmin/ktutil/ktutil.c | 2 +-
src/kadmin/server/ovsec_kadmd.c | 2 +-
src/kadmin/testing/scripts/env-setup.shin | 5 +++--
src/kdc/main.c | 2 +-
src/plugins/kdb/ldap/ldap_util/kdb5_ldap_util.c | 2 +-
src/slave/kprop.c | 2 +-
src/slave/kpropd.c | 2 +-
src/slave/kproplog.c | 2 +-
src/tests/dejagnu/config/default.exp | 7 ++++---
src/tests/misc/test_chpw_message.c | 2 +-
src/util/k5test.py | 5 +++--
19 files changed, 26 insertions(+), 23 deletions(-)
diff --git a/src/clients/kdestroy/kdestroy.c b/src/clients/kdestroy/kdestroy.c
index 176f6e2..2d13cd9 100644
--- a/src/clients/kdestroy/kdestroy.c
+++ b/src/clients/kdestroy/kdestroy.c
@@ -81,7 +81,7 @@ main(argc, argv)
int quiet = 0;
int all = 0;
- setlocale(LC_MESSAGES, "");
+ setlocale(LC_ALL, "");
progname = GET_PROGNAME(argv[0]);
while ((c = getopt(argc, argv, "54Aqc:")) != -1) {
diff --git a/src/clients/kinit/kinit.c b/src/clients/kinit/kinit.c
index 1bf7564..b24c32a 100644
--- a/src/clients/kinit/kinit.c
+++ b/src/clients/kinit/kinit.c
@@ -820,7 +820,7 @@ main(argc, argv)
struct k5_data k5;
int authed_k5 = 0;
- setlocale(LC_MESSAGES, "");
+ setlocale(LC_ALL, "");
progname = GET_PROGNAME(argv[0]);
/* Ensure we can be driven from a pipe */
diff --git a/src/clients/klist/klist.c b/src/clients/klist/klist.c
index ce86597..402858e 100644
--- a/src/clients/klist/klist.c
+++ b/src/clients/klist/klist.c
@@ -118,7 +118,7 @@ main(argc, argv)
char *name;
int mode;
- setlocale(LC_MESSAGES, "");
+ setlocale(LC_ALL, "");
progname = GET_PROGNAME(argv[0]);
name = NULL;
diff --git a/src/clients/kpasswd/kpasswd.c b/src/clients/kpasswd/kpasswd.c
index 7aed0f1..4fc773e 100644
--- a/src/clients/kpasswd/kpasswd.c
+++ b/src/clients/kpasswd/kpasswd.c
@@ -60,7 +60,7 @@ int main(int argc, char *argv[])
int result_code;
krb5_data result_code_string, result_string;
- setlocale(LC_MESSAGES, "");
+ setlocale(LC_ALL, "");
if (argc > 2) {
fprintf(stderr, _("usage: %s [principal]\n"), argv[0]);
exit(1);
diff --git a/src/clients/kswitch/kswitch.c b/src/clients/kswitch/kswitch.c
index 42cc9d6..6c721d2 100644
--- a/src/clients/kswitch/kswitch.c
+++ b/src/clients/kswitch/kswitch.c
@@ -57,7 +57,7 @@ main(int argc, char **argv)
const char *cache_name = NULL, *princ_name = NULL;
krb5_boolean errflag = FALSE;
- setlocale(LC_MESSAGES, "");
+ setlocale(LC_ALL, "");
progname = GET_PROGNAME(argv[0]);
while ((c = getopt(argc, argv, "c:p:")) != -1) {
diff --git a/src/clients/kvno/kvno.c b/src/clients/kvno/kvno.c
index 6a58d01..9b4f205 100644
--- a/src/clients/kvno/kvno.c
+++ b/src/clients/kvno/kvno.c
@@ -68,7 +68,7 @@ int main(int argc, char *argv[])
char *sname = NULL, *for_user = NULL;
int canon = 0, unknown = 0, proxy = 0;
- setlocale(LC_MESSAGES, "");
+ setlocale(LC_ALL, "");
set_com_err_hook (extended_com_err_fn);
prog = strrchr(argv[0], '/');
diff --git a/src/kadmin/cli/ss_wrapper.c b/src/kadmin/cli/ss_wrapper.c
index f86c215..bf884d1 100644
--- a/src/kadmin/cli/ss_wrapper.c
+++ b/src/kadmin/cli/ss_wrapper.c
@@ -39,7 +39,7 @@ main(int argc, char *argv[])
krb5_error_code retval;
int sci_idx, code = 0;
- setlocale(LC_MESSAGES, "");
+ setlocale(LC_ALL, "");
whoami = ((whoami = strrchr(argv[0], '/')) ? whoami+1 : argv[0]);
request = kadmin_startup(argc, argv);
diff --git a/src/kadmin/dbutil/kdb5_util.c b/src/kadmin/dbutil/kdb5_util.c
index df9c080..e4d8d6c 100644
--- a/src/kadmin/dbutil/kdb5_util.c
+++ b/src/kadmin/dbutil/kdb5_util.c
@@ -197,7 +197,7 @@ int main(argc, argv)
int cmd_argc;
krb5_error_code retval;
- setlocale(LC_MESSAGES, "");
+ setlocale(LC_ALL, "");
set_com_err_hook(extended_com_err_fn);
/*
diff --git a/src/kadmin/ktutil/ktutil.c b/src/kadmin/ktutil/ktutil.c
index c1106b1..a969a46 100644
--- a/src/kadmin/ktutil/ktutil.c
+++ b/src/kadmin/ktutil/ktutil.c
@@ -45,7 +45,7 @@ int main(argc, argv)
krb5_error_code retval;
int sci_idx;
- setlocale(LC_MESSAGES, "");
+ setlocale(LC_ALL, "");
retval = krb5_init_context(&kcontext);
if (retval) {
com_err(argv[0], retval, _("while initializing krb5"));
diff --git a/src/kadmin/server/ovsec_kadmd.c b/src/kadmin/server/ovsec_kadmd.c
index 6859144..0976a8a 100644
--- a/src/kadmin/server/ovsec_kadmd.c
+++ b/src/kadmin/server/ovsec_kadmd.c
@@ -226,7 +226,7 @@ int main(int argc, char *argv[])
verto_ctx *ctx;
- setlocale(LC_MESSAGES, "");
+ setlocale(LC_ALL, "");
setvbuf(stderr, NULL, _IONBF, 0);
/* This is OID value the Krb5_Name NameType */
diff --git a/src/kadmin/testing/scripts/env-setup.shin b/src/kadmin/testing/scripts/env-setup.shin
index de1578b..11d018a 100755
--- a/src/kadmin/testing/scripts/env-setup.shin
+++ b/src/kadmin/testing/scripts/env-setup.shin
@@ -81,8 +81,9 @@ KRB5_KTNAME=$K5ROOT/ovsec_adm.srvtab; export KRB5_KTNAME
KRB5_CLIENT_KTNAME=$K5ROOT/client_keytab; export KRB5_CLIENT_KTNAME
KRB5CCNAME=$K5ROOT/krb5cc_unit-test; export KRB5CCNAME
-# Make sure we don't get confused by translated messages.
-LC_MESSAGES=C; export LC_MESSAGES
+# Make sure we don't get confused by translated messages
+# or localized times.
+LC_ALL=C; export LC_ALL
if [ "$TEST_SERVER" != "" ]; then
MAKE_KEYTAB="$MAKE_KEYTAB -server $TEST_SERVER"
diff --git a/src/kdc/main.c b/src/kdc/main.c
index b119dd5..4c8bf88 100644
--- a/src/kdc/main.c
+++ b/src/kdc/main.c
@@ -974,7 +974,7 @@ int main(int argc, char **argv)
int errout = 0;
int i;
- setlocale(LC_MESSAGES, "");
+ setlocale(LC_ALL, "");
if (strrchr(argv[0], '/'))
argv[0] = strrchr(argv[0], '/')+1;
diff --git a/src/plugins/kdb/ldap/ldap_util/kdb5_ldap_util.c b/src/plugins/kdb/ldap/ldap_util/kdb5_ldap_util.c
index 6c81083..6fb458d 100644
--- a/src/plugins/kdb/ldap/ldap_util/kdb5_ldap_util.c
+++ b/src/plugins/kdb/ldap/ldap_util/kdb5_ldap_util.c
@@ -261,7 +261,7 @@ main(int argc, char *argv[])
/*
* Ensure that "progname" is set before calling com_err.
*/
- setlocale(LC_MESSAGES, "");
+ setlocale(LC_ALL, "");
progname = (strrchr(argv[0], '/') ? strrchr(argv[0], '/')+1 : argv[0]);
retval = kadm5_init_krb5_context(&util_context);
diff --git a/src/slave/kprop.c b/src/slave/kprop.c
index 7f2bc00..a8c55f3 100644
--- a/src/slave/kprop.c
+++ b/src/slave/kprop.c
@@ -97,7 +97,7 @@ main(argc, argv)
krb5_creds *my_creds;
krb5_auth_context auth_context;
- setlocale(LC_MESSAGES, "");
+ setlocale(LC_ALL, "");
retval = krb5_init_context(&context);
if (retval) {
com_err(argv[0], retval, _("while initializing krb5"));
diff --git a/src/slave/kpropd.c b/src/slave/kpropd.c
index 14304c4..c3ac3a8 100644
--- a/src/slave/kpropd.c
+++ b/src/slave/kpropd.c
@@ -191,7 +191,7 @@ main(argc, argv)
int ret = 0;
kdb_log_context *log_ctx;
- setlocale(LC_MESSAGES, "");
+ setlocale(LC_ALL, "");
PRS(argv);
log_ctx = kpropd_context->kdblog_context;
diff --git a/src/slave/kproplog.c b/src/slave/kproplog.c
index e8aac1e..b97604a 100644
--- a/src/slave/kproplog.c
+++ b/src/slave/kproplog.c
@@ -495,7 +495,7 @@ main(int argc, char **argv)
kdb_hlog_t *ulog = NULL;
char **db_args = NULL; /* XXX */
- setlocale(LC_MESSAGES, "");
+ setlocale(LC_ALL, "");
#if !defined(TEXT_DOMAIN)
#define TEXT_DOMAIN "SYS_TEST"
diff --git a/src/tests/dejagnu/config/default.exp b/src/tests/dejagnu/config/default.exp
index 192ac6d..c906bf1 100644
--- a/src/tests/dejagnu/config/default.exp
+++ b/src/tests/dejagnu/config/default.exp
@@ -643,9 +643,10 @@ foreach i $runvarlist {
verbose "savelist $envvars_tosave"
lappend krb5_init_vars $i
}
- # Make sure we don't get confused by translated messages.
- lappend envvars_tosave "LC_MESSAGES"
- lappend krb5_init_vars "LC_MESSAGES=C"
+ # Make sure we don't get confused by translated messages
+ # or localized times.
+ lappend envvars_tosave "LC_ALL"
+ lappend krb5_init_vars "LC_ALL=C"
}
set envstackp 0
envstack_push
diff --git a/src/tests/misc/test_chpw_message.c b/src/tests/misc/test_chpw_message.c
index aef96b1..ba6fa18 100644
--- a/src/tests/misc/test_chpw_message.c
+++ b/src/tests/misc/test_chpw_message.c
@@ -116,7 +116,7 @@ main(void)
krb5_context context;
char *msg;
- setlocale(LC_MESSAGES, "C");
+ setlocale(LC_ALL, "C");
check(krb5_init_context(&context));
diff --git a/src/util/k5test.py b/src/util/k5test.py
index c5669be..b5f6d15 100644
--- a/src/util/k5test.py
+++ b/src/util/k5test.py
@@ -518,8 +518,9 @@ def _build_env():
env[k] = os.path.join(buildtop, v)
else:
env[k] = v
- # Make sure we don't get confused by translated messages.
- env['LC_MESSAGES'] = 'C'
+ # Make sure we don't get confused by translated messages
+ # or localized times.
+ env['LC_ALL'] = 'C'
return env
More information about the cvs-krb5
mailing list