From: Ben Kaduk Date: Thu, 5 Jul 2012 18:56:50 +0000 (-0400) Subject: Enable all localizations in main functions X-Git-Tag: krb5-1.11-alpha1~445 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=75c7c600b49a7f1d5cf95260fc073cb4ba5929cd;p=thirdparty%2Fkrb5.git 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 --- diff --git a/src/clients/kdestroy/kdestroy.c b/src/clients/kdestroy/kdestroy.c index 176f6e2e39..2d13cd996f 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 1bf7564a12..b24c32abf3 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 ce86597ada..402858e464 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 7aed0f1ac8..4fc773e6b5 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 42cc9d6644..6c721d2886 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 6a58d01f60..9b4f2050d4 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 f86c215f04..bf884d1ecf 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 df9c080a05..e4d8d6c515 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 c1106b156b..a969a46337 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 6859144cae..0976a8ad44 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 de1578b569..11d018a503 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 b119dd53ad..4c8bf883dd 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 6c81083fed..6fb458d0ff 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 7f2bc00d68..a8c55f3d95 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 14304c4fb5..c3ac3a8034 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 e8aac1e8eb..b97604abc2 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 192ac6da9f..c906bf1090 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 aef96b13f3..ba6fa187fa 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 c5669bef29..b5f6d15100 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