From a87632e2eff2ab411e5a603d3446a481770315d0 Mon Sep 17 00:00:00 2001
From: Stephan Bosch <stephan@rename-it.nl>
Date: Sun, 12 Apr 2009 14:10:40 +0200
Subject: [PATCH] Environment: activated host environment item.

---
 src/lib-sieve/plugins/environment/ext-environment-common.c | 7 ++++++-
 src/lib-sieve/plugins/environment/sieve-ext-environment.h  | 2 ++
 src/testsuite/testsuite.c                                  | 3 ++-
 tests/extensions/environment/basic.svtest                  | 5 +++++
 4 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/lib-sieve/plugins/environment/ext-environment-common.c b/src/lib-sieve/plugins/environment/ext-environment-common.c
index 367c64e1e..eed230f30 100644
--- a/src/lib-sieve/plugins/environment/ext-environment-common.c
+++ b/src/lib-sieve/plugins/environment/ext-environment-common.c
@@ -98,10 +98,15 @@ const struct sieve_environment_item domain_env_item = {
  *   executing.
  */
 
+const char *envit_host_get_value(const struct sieve_script_env *senv)
+{
+	return senv->hostname;
+}
+
 const struct sieve_environment_item host_env_item = {
 	"host",
 	NULL,
-	NULL,
+	envit_host_get_value,
 };
 
 /* "location":
diff --git a/src/lib-sieve/plugins/environment/sieve-ext-environment.h b/src/lib-sieve/plugins/environment/sieve-ext-environment.h
index 9bd4cc8de..19060dd45 100644
--- a/src/lib-sieve/plugins/environment/sieve-ext-environment.h
+++ b/src/lib-sieve/plugins/environment/sieve-ext-environment.h
@@ -1,6 +1,8 @@
 #ifndef __SIEVE_EXT_ENVIRONMENT_H
 #define __SIEVE_EXT_ENVIRONMENT_H
 
+#include "sieve-common.h"
+
 struct sieve_environment_item {
 	const char *name;
 	
diff --git a/src/testsuite/testsuite.c b/src/testsuite/testsuite.c
index 17b8a04a0..933399fe1 100644
--- a/src/testsuite/testsuite.c
+++ b/src/testsuite/testsuite.c
@@ -171,9 +171,10 @@ int main(int argc, char **argv)
 
 		memset(&scriptenv, 0, sizeof(scriptenv));
 		scriptenv.default_mailbox = "INBOX";
+		scriptenv.hostname = "testsuite.example.com";
 		scriptenv.username = user;
 		scriptenv.smtp_open = testsuite_smtp_open;
-        scriptenv.smtp_close = testsuite_smtp_close;
+		scriptenv.smtp_close = testsuite_smtp_close;
 		scriptenv.trace_stream = ( trace ? o_stream_create_fd(1, 0, FALSE) : NULL );
 
 		/* Run the test */
diff --git a/tests/extensions/environment/basic.svtest b/tests/extensions/environment/basic.svtest
index ed884d511..cb6094587 100644
--- a/tests/extensions/environment/basic.svtest
+++ b/tests/extensions/environment/basic.svtest
@@ -19,3 +19,8 @@ test "Name" {
 	}
 }
 
+test "Host" {
+	if not environment "host" "testsuite.example.com" {
+		test_fail "wrong testsuite hostname";
+	}
+}
-- 
GitLab