summaryrefslogtreecommitdiff
path: root/src/exim_monitor
diff options
context:
space:
mode:
authorPhilip Hazel <ph10@hermes.cam.ac.uk>2006-09-19 11:28:44 +0000
committerPhilip Hazel <ph10@hermes.cam.ac.uk>2006-09-19 11:28:44 +0000
commit38a0a95ff69327042421b9ee6982e386175f141b (patch)
tree30f841f97c161410d550780e3fa3aa47e6afe5b8 /src/exim_monitor
parentd45b1de81aa47cef4ca098a4b2725d855b154162 (diff)
Apply Jakob Hirsch's patch for arbitrary ACL variable names, tidied up
just a little bit.
Diffstat (limited to 'src/exim_monitor')
-rw-r--r--src/exim_monitor/em_globals.c7
-rw-r--r--src/exim_monitor/em_queue.c25
2 files changed, 27 insertions, 5 deletions
diff --git a/src/exim_monitor/em_globals.c b/src/exim_monitor/em_globals.c
index 621d8b207..361ac4e78 100644
--- a/src/exim_monitor/em_globals.c
+++ b/src/exim_monitor/em_globals.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/exim_monitor/em_globals.c,v 1.9 2006/02/07 11:18:59 ph10 Exp $ */
+/* $Cambridge: exim/src/exim_monitor/em_globals.c,v 1.10 2006/09/19 11:28:45 ph10 Exp $ */
/*************************************************
* Exim Monitor *
@@ -117,9 +117,8 @@ that fires up the monitor fishes the value out by using -bP anyway. */
#define SPOOL_DIRECTORY ""
#endif
-
-uschar *acl_var[ACL_CVARS + ACL_MVARS];
-
+tree_node *acl_var_c = NULL;
+tree_node *acl_var_m = NULL;
uschar *active_hostname = NULL;
BOOL allow_unqualified_recipient = FALSE;
BOOL allow_unqualified_sender = FALSE;
diff --git a/src/exim_monitor/em_queue.c b/src/exim_monitor/em_queue.c
index ec54116a0..212b15136 100644
--- a/src/exim_monitor/em_queue.c
+++ b/src/exim_monitor/em_queue.c
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/exim_monitor/em_queue.c,v 1.4 2006/02/14 14:26:15 ph10 Exp $ */
+/* $Cambridge: exim/src/exim_monitor/em_queue.c,v 1.5 2006/09/19 11:28:45 ph10 Exp $ */
/*************************************************
* Exim Monitor *
@@ -125,6 +125,29 @@ store_free(p);
/*************************************************
+* Set up an ACL variable *
+*************************************************/
+
+/* The spool_read_header() function calls acl_var_create() when it reads in an
+ACL variable. We know that in this case, the variable will be new, not re-used,
+so this is a cut-down version, to save including the whole acl.c module (which
+would need conditional compilation to cut most of it out). */
+
+tree_node *
+acl_var_create(uschar *name)
+{
+tree_node *node, **root;
+root = (name[0] == 'c')? &acl_var_c : &acl_var_m;
+node = store_get(sizeof(tree_node) + Ustrlen(name));
+Ustrcpy(node->name, name);
+node->data.ptr = NULL;
+(void)tree_insertnode(root, node);
+return node;
+}
+
+
+
+/*************************************************
* Set up new queue item *
*************************************************/