dovecot-2.2-pigeonhole: lib-sieve: Added method to script object...

pigeonhole at rename-it.nl pigeonhole at rename-it.nl
Wed Dec 25 22:51:29 EET 2013


details:   http://hg.rename-it.nl/dovecot-2.2-pigeonhole/rev/cafc7f640c97
changeset: 1827:cafc7f640c97
user:      Stephan Bosch <stephan at rename-it.nl>
date:      Wed Dec 25 21:40:19 2013 +0100
description:
lib-sieve: Added method to script object for obtaining the directory where the script binary is stored.

diffstat:

 src/lib-sieve/sieve-script-dict.c    |   1 +
 src/lib-sieve/sieve-script-file.c    |   9 +++++++++
 src/lib-sieve/sieve-script-private.h |   2 ++
 src/lib-sieve/sieve-script.c         |  14 ++++++++++++++
 src/lib-sieve/sieve-script.h         |   3 +++
 5 files changed, 29 insertions(+), 0 deletions(-)

diffs (86 lines):

diff -r c3d99cdd49f1 -r cafc7f640c97 src/lib-sieve/sieve-script-dict.c
--- a/src/lib-sieve/sieve-script-dict.c	Wed Dec 25 21:36:55 2013 +0100
+++ b/src/lib-sieve/sieve-script-dict.c	Wed Dec 25 21:40:19 2013 +0100
@@ -289,6 +289,7 @@
 		sieve_dict_script_binary_write_metadata,
 		sieve_dict_script_binary_load,
 		sieve_dict_script_binary_save,
+		NULL,
 
 		NULL,
 		sieve_dict_script_equals
diff -r c3d99cdd49f1 -r cafc7f640c97 src/lib-sieve/sieve-script-file.c
--- a/src/lib-sieve/sieve-script-file.c	Wed Dec 25 21:36:55 2013 +0100
+++ b/src/lib-sieve/sieve-script-file.c	Wed Dec 25 21:40:19 2013 +0100
@@ -354,6 +354,14 @@
 		script->st.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO), error_r);
 }
 
+static const char *sieve_file_script_binary_get_directory
+(struct sieve_script *_script)
+{
+	struct sieve_file_script *script = (struct sieve_file_script *)_script;
+	
+	return script->	dirpath;
+}
+
 const struct sieve_script sieve_file_script = {
 	.driver_name = SIEVE_FILE_SCRIPT_DRIVER_NAME,
 	.v = {
@@ -368,6 +376,7 @@
 		NULL,
 		sieve_file_script_binary_load,
 		sieve_file_script_binary_save,
+		sieve_file_script_binary_get_directory,
 
 		sieve_file_script_get_size,
 
diff -r c3d99cdd49f1 -r cafc7f640c97 src/lib-sieve/sieve-script-private.h
--- a/src/lib-sieve/sieve-script-private.h	Wed Dec 25 21:36:55 2013 +0100
+++ b/src/lib-sieve/sieve-script-private.h	Wed Dec 25 21:40:19 2013 +0100
@@ -32,6 +32,8 @@
 	int (*binary_save)
 		(struct sieve_script *script, struct sieve_binary *sbin,
 			bool update, enum sieve_error *error_r);
+	const char *(*binary_get_directory)
+		(struct sieve_script *script);
 
 	int (*get_size)
 		(const struct sieve_script *script, uoff_t *size_r);
diff -r c3d99cdd49f1 -r cafc7f640c97 src/lib-sieve/sieve-script.c
--- a/src/lib-sieve/sieve-script.c	Wed Dec 25 21:36:55 2013 +0100
+++ b/src/lib-sieve/sieve-script.c	Wed Dec 25 21:40:19 2013 +0100
@@ -542,6 +542,20 @@
 	return script->v.binary_save(script, sbin, update, error_r);
 }
 
+const char *sieve_script_binary_get_directory
+(struct sieve_script *script)
+{
+	if ( script->bin_dir != NULL &&
+		sieve_script_setup_bindir(script, 0700) >= 0 ) {
+		return script->bin_dir;
+	}
+
+	if ( script->v.binary_get_directory == NULL )
+		return NULL;
+
+	return script->v.binary_get_directory(script);
+}
+
 int sieve_script_setup_bindir
 (struct sieve_script *script, mode_t mode)
 {
diff -r c3d99cdd49f1 -r cafc7f640c97 src/lib-sieve/sieve-script.h
--- a/src/lib-sieve/sieve-script.h	Wed Dec 25 21:36:55 2013 +0100
+++ b/src/lib-sieve/sieve-script.h	Wed Dec 25 21:40:19 2013 +0100
@@ -68,6 +68,9 @@
 	(struct sieve_script *script, struct sieve_binary *sbin, bool update,
 		enum sieve_error *error_r);
 
+const char *sieve_script_binary_get_directory
+	(struct sieve_script *script);
+
 /*
  * Stream management
  */


More information about the dovecot-cvs mailing list