1
/* Copyright (c) 2002-2012 Pigeonhole authors, see the included COPYING file
1
/* Copyright (c) 2002-2013 Pigeonhole authors, see the included COPYING file
7
7
* Authors: Stephan Bosch
8
* Specification: draft-ietf-sieve-include-01
9
* Implementation: mostly full, but required ManageSieve behavior is not
8
* Specification: RFC 6609
34
33
#include "ext-include-binary.h"
35
34
#include "ext-include-variables.h"
41
static const struct sieve_operation_def *ext_include_operations[] = {
40
static const struct sieve_operation_def *ext_include_operations[] = {
51
50
/* Forward declaration */
53
52
static bool ext_include_validator_load
55
54
static bool ext_include_generator_load
56
55
(const struct sieve_extension *ext, const struct sieve_codegen_env *cgenv);
57
56
static bool ext_include_interpreter_load
58
(const struct sieve_extension *ext, const struct sieve_runtime_env *renv,
57
(const struct sieve_extension *ext, const struct sieve_runtime_env *renv,
59
58
sieve_size_t *address);
60
59
static bool ext_include_binary_load
61
60
(const struct sieve_extension *ext, struct sieve_binary *binary);
63
62
/* Extension objects */
65
const struct sieve_extension_def include_extension = {
69
ext_include_validator_load,
70
ext_include_generator_load,
71
ext_include_interpreter_load,
72
ext_include_binary_load,
73
ext_include_binary_dump,
74
ext_include_code_dump,
75
SIEVE_EXT_DEFINE_OPERATIONS(ext_include_operations),
76
SIEVE_EXT_DEFINE_NO_OPERANDS
64
const struct sieve_extension_def include_extension = {
68
.load = ext_include_load,
69
.unload = ext_include_unload,
70
.validator_load = ext_include_validator_load,
71
.generator_load = ext_include_generator_load,
72
.interpreter_load = ext_include_interpreter_load,
73
.binary_load = ext_include_binary_load,
74
.binary_dump = ext_include_binary_dump,
75
.code_dump = ext_include_code_dump,
77
SIEVE_EXT_DEFINE_OPERATIONS(ext_include_operations)
79
80
static bool ext_include_validator_load
105
106
static bool ext_include_interpreter_load
106
(const struct sieve_extension *ext, const struct sieve_runtime_env *renv,
107
(const struct sieve_extension *ext, const struct sieve_runtime_env *renv,
107
108
sieve_size_t *address ATTR_UNUSED)
109
110
ext_include_interpreter_context_init(ext, renv->interp);