diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2013-11-24 21:53:43 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2013-11-24 21:53:43 +0000 |
commit | 489dff2b77175db8537b32dab8e637cdea2a02af (patch) | |
tree | a63b3d9b5252dd96eb9f42ef207d8a0cce8eca92 /src/util.c | |
parent | c3882406f1bdae1603aae312af22120cc5c261c0 (diff) | |
download | rspamd-489dff2b77175db8537b32dab8e637cdea2a02af.tar.gz rspamd-489dff2b77175db8537b32dab8e637cdea2a02af.zip |
Use ucl variables.
Diffstat (limited to 'src/util.c')
-rw-r--r-- | src/util.c | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/src/util.c b/src/util.c index 46e99c309..bc2206579 100644 --- a/src/util.c +++ b/src/util.c @@ -2386,181 +2386,6 @@ restart: return p - buf; #endif } - -/* - * Variables: - * $CONFDIR - configuration directory - * $RUNDIR - local states directory - * $DBDIR - databases dir - * $LOGDIR - logs dir - * $PLUGINSDIR - pluggins dir - * $PREFIX - installation prefix - * $VERSION - rspamd version - */ - -#define RSPAMD_CONFDIR_MACRO "CONFDIR" -#define RSPAMD_RUNDIR_MACRO "RUNDIR" -#define RSPAMD_DBDIR_MACRO "DBDIR" -#define RSPAMD_LOGDIR_MACRO "LOGDIR" -#define RSPAMD_PLUGINSDIR_MACRO "PLUGINSDIR" -#define RSPAMD_PREFIX_MACRO "PREFIX" -#define RSPAMD_VERSION_MACRO "VERSION" - -static const gchar * -rspamd_check_path_variable (const gchar *in, gsize *len) -{ - switch (*in) { - case 'C': - if (strncmp (in, RSPAMD_CONFDIR_MACRO, sizeof (RSPAMD_CONFDIR_MACRO) - 1) == 0) { - *len += sizeof (RSPAMD_CONFDIR) - 1; - in += sizeof (RSPAMD_CONFDIR_MACRO) - 1; - } - break; - case 'R': - if (strncmp (in, RSPAMD_RUNDIR_MACRO, sizeof (RSPAMD_RUNDIR_MACRO) - 1) == 0) { - *len += sizeof (RSPAMD_RUNDIR) - 1; - in += sizeof (RSPAMD_RUNDIR_MACRO) - 1; - } - break; - case 'D': - if (strncmp (in, RSPAMD_DBDIR_MACRO, sizeof (RSPAMD_DBDIR_MACRO) - 1) == 0) { - *len += sizeof (RSPAMD_DBDIR) - 1; - in += sizeof (RSPAMD_DBDIR_MACRO) - 1; - } - break; - case 'L': - if (strncmp (in, RSPAMD_LOGDIR_MACRO, sizeof (RSPAMD_LOGDIR_MACRO) - 1) == 0) { - *len += sizeof (RSPAMD_LOGDIR) - 1; - in += sizeof (RSPAMD_LOGDIR_MACRO) - 1; - } - break; - case 'P': - if (strncmp (in, RSPAMD_PREFIX_MACRO, sizeof (RSPAMD_PREFIX_MACRO) - 1) == 0) { - *len += sizeof (RSPAMD_PREFIX) - 1; - in += sizeof (RSPAMD_PREFIX_MACRO) - 1; - } - else if (strncmp (in, RSPAMD_PLUGINSDIR_MACRO, sizeof (RSPAMD_PLUGINSDIR_MACRO) - 1) == 0) { - *len += sizeof (RSPAMD_PLUGINSDIR) - 1; - in += sizeof (RSPAMD_PLUGINSDIR_MACRO) - 1; - } - break; - case 'V': - if (strncmp (in, RSPAMD_VERSION_MACRO, sizeof (RSPAMD_VERSION_MACRO) - 1) == 0) { - *len += sizeof (RVERSION) - 1; - in += sizeof (RSPAMD_VERSION_MACRO) - 1; - } - break; - } - - return in; -} - -static const gchar * -rspamd_expand_path_variable (const gchar *in, gchar **dest) -{ - gchar *d = *dest; - const gchar *v = in + 1; - - *d = *v; - in ++; - - switch (*v) { - case 'C': - if (strncmp (v, RSPAMD_CONFDIR_MACRO, sizeof (RSPAMD_CONFDIR_MACRO) - 1) == 0) { - memcpy (d, RSPAMD_CONFDIR, sizeof (RSPAMD_CONFDIR) - 1); - d += sizeof (RSPAMD_CONFDIR) - 1; - in += sizeof (RSPAMD_CONFDIR_MACRO) - 1; - } - break; - case 'R': - if (strncmp (v, RSPAMD_RUNDIR_MACRO, sizeof (RSPAMD_RUNDIR_MACRO) - 1) == 0) { - memcpy (d, RSPAMD_RUNDIR, sizeof (RSPAMD_RUNDIR) - 1); - d += sizeof (RSPAMD_RUNDIR) - 1; - in += sizeof (RSPAMD_RUNDIR_MACRO) - 1; - } - break; - case 'D': - if (strncmp (v, RSPAMD_DBDIR_MACRO, sizeof (RSPAMD_DBDIR_MACRO) - 1) == 0) { - memcpy (d, RSPAMD_DBDIR, sizeof (RSPAMD_DBDIR) - 1); - d += sizeof (RSPAMD_DBDIR) - 1; - in += sizeof (RSPAMD_DBDIR_MACRO) - 1; - } - break; - case 'L': - if (strncmp (v, RSPAMD_LOGDIR_MACRO, sizeof (RSPAMD_LOGDIR_MACRO) - 1) == 0) { - memcpy (d, RSPAMD_LOGDIR, sizeof (RSPAMD_LOGDIR) - 1); - d += sizeof (RSPAMD_LOGDIR) - 1; - in += sizeof (RSPAMD_LOGDIR_MACRO) - 1; - } - break; - case 'P': - if (strncmp (v, RSPAMD_PREFIX_MACRO, sizeof (RSPAMD_PREFIX_MACRO) - 1) == 0) { - memcpy (d, RSPAMD_PREFIX, sizeof (RSPAMD_PREFIX) - 1); - d += sizeof (RSPAMD_PREFIX) - 1; - in += sizeof (RSPAMD_PREFIX_MACRO) - 1; - } - else if (strncmp (v, RSPAMD_PLUGINSDIR_MACRO, sizeof (RSPAMD_PLUGINSDIR_MACRO) - 1) == 0) { - memcpy (d, RSPAMD_PLUGINSDIR, sizeof (RSPAMD_PLUGINSDIR) - 1); - d += sizeof (RSPAMD_PLUGINSDIR) - 1; - in += sizeof (RSPAMD_PLUGINSDIR_MACRO) - 1; - } - break; - case 'V': - if (strncmp (v, RSPAMD_VERSION_MACRO, sizeof (RSPAMD_VERSION_MACRO) - 1) == 0) { - memcpy (d, RVERSION, sizeof (RVERSION) - 1); - d += sizeof (RVERSION) - 1; - in += sizeof (RSPAMD_VERSION_MACRO) - 1; - } - break; - } - - *dest = d; - return in; -} - -gchar* -rspamd_expand_path (memory_pool_t *pool, const gchar *path) -{ - const gchar *p = path; - gchar *dest, *d; - gsize len = 0, orig_len = 0; - - while (*p != '\0') { - if (*p == '$') { - len ++; - p = rspamd_check_path_variable (p + 1, &len); - } - else { - len ++; - } - orig_len ++; - p ++; - } - - if (len == orig_len) { - return memory_pool_strdup (pool, path); - } - - dest = memory_pool_alloc (pool, len + 1); - p = path; - d = dest; - - while (*p != '\0') { - if (*p == '$') { - p = rspamd_expand_path_variable (p, &d); - } - else { - *d++ = *p++; - } - } - - *d = '\0'; - - msg_debug ("expanded %s to %s", path, dest); - - return dest; -} - /* * vi:ts=4 */ |