summaryrefslogtreecommitdiffstats
path: root/src/util.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2013-11-24 21:53:43 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2013-11-24 21:53:43 +0000
commit489dff2b77175db8537b32dab8e637cdea2a02af (patch)
treea63b3d9b5252dd96eb9f42ef207d8a0cce8eca92 /src/util.c
parentc3882406f1bdae1603aae312af22120cc5c261c0 (diff)
downloadrspamd-489dff2b77175db8537b32dab8e637cdea2a02af.tar.gz
rspamd-489dff2b77175db8537b32dab8e637cdea2a02af.zip
Use ucl variables.
Diffstat (limited to 'src/util.c')
-rw-r--r--src/util.c175
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
*/