aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-09-24 15:30:04 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-09-24 15:30:04 +0100
commit503f5ae9f8df69485378c55bd952b2ebe593220e (patch)
tree05bccb8775f6e04a1b8f92a249027b082597c5bb /src
parent8d9bd52f88cfbe82d7f5e10d0b86b9c2830a939b (diff)
downloadrspamd-503f5ae9f8df69485378c55bd952b2ebe593220e.tar.gz
rspamd-503f5ae9f8df69485378c55bd952b2ebe593220e.zip
Correctly set locale before start.
Diffstat (limited to 'src')
-rw-r--r--src/libutil/util.c20
-rw-r--r--src/rspamd.c14
2 files changed, 19 insertions, 15 deletions
diff --git a/src/libutil/util.c b/src/libutil/util.c
index 496bd0298..11e3248ac 100644
--- a/src/libutil/util.c
+++ b/src/libutil/util.c
@@ -46,6 +46,9 @@
#ifdef HAVE_READPASSPHRASE_H
#include <readpassphrase.h>
#endif
+#ifdef HAVE_LOCALE_H
+#include <locale.h>
+#endif
#ifdef __APPLE__
#include <mach/mach_time.h>
@@ -1920,12 +1923,17 @@ rspamd_init_libs (void)
ottery_init (NULL);
rspamd_cryptobox_init ();
-#ifdef HAVE_SETLOCALE
- /* Set locale setting to C locale to avoid problems in future */
- setlocale (LC_ALL, "C");
- setlocale (LC_CTYPE, "C");
- setlocale (LC_MESSAGES, "C");
- setlocale (LC_TIME, "C");
+#ifdef HAVE_LOCALE_H
+ if (getenv ("LANG") == NULL) {
+ setlocale (LC_ALL, "C");
+ setlocale (LC_CTYPE, "C");
+ setlocale (LC_MESSAGES, "C");
+ setlocale (LC_TIME, "C");
+ }
+ else {
+ /* Just set the default locale */
+ setlocale (LC_ALL, "");
+ }
#endif
#ifdef HAVE_OPENSSL
diff --git a/src/rspamd.c b/src/rspamd.c
index 48874cffe..bc13f6e47 100644
--- a/src/rspamd.c
+++ b/src/rspamd.c
@@ -42,10 +42,6 @@
#include <openssl/rsa.h>
#include <openssl/pem.h>
#endif
-#ifdef HAVE_LOCALE_H
-#include <locale.h>
-#define HAVE_SETLOCALE 1
-#endif
#define msg_err_main(...) rspamd_default_log_function (G_LOG_LEVEL_CRITICAL, \
rspamd_main->server_pool->tag.tagname, rspamd_main->server_pool->tag.uid, \
@@ -101,7 +97,7 @@ static gboolean gen_keypair = FALSE;
static gboolean encrypt_password = FALSE;
/* List of workers that are pending to start */
static GList *workers_pending = NULL;
-static GHashTable *vars = NULL;
+static GHashTable *ucl_vars = NULL;
#ifdef HAVE_SA_SIGINFO
static siginfo_t static_sg[64];
@@ -805,7 +801,7 @@ load_rspamd_config (struct rspamd_config *cfg, gboolean init_modules)
cfg->compiled_workers = workers;
if (!rspamd_config_read (cfg, cfg->cfg_name, NULL,
- config_logger, rspamd_main, vars)) {
+ config_logger, rspamd_main, ucl_vars)) {
return FALSE;
}
@@ -1117,12 +1113,12 @@ main (gint argc, gchar **argv, gchar **env)
v = g_strdup (t + 1);
*t = '\0';
- if (vars == NULL) {
- vars = g_hash_table_new_full (rspamd_strcase_hash,
+ if (ucl_vars == NULL) {
+ ucl_vars = g_hash_table_new_full (rspamd_strcase_hash,
rspamd_strcase_equal, g_free, g_free);
}
- g_hash_table_insert (vars, k, v);
+ g_hash_table_insert (ucl_vars, k, v);
}
}
}