HEX
Server: Apache/2
System: Linux nexus-01 4.18.0-553.120.1.el8_10.x86_64 #1 SMP Mon Apr 20 18:04:27 EDT 2026 x86_64
User: aglcoke (1118)
PHP: 8.2.31
Disabled: mail,exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/include/dovecot/sieve/sieve-ext-environment.h
#ifndef SIEVE_EXT_ENVIRONMENT_H
#define SIEVE_EXT_ENVIRONMENT_H

#include "sieve-common.h"

/*
 * Environment extension
 */

/* FIXME: this is not suitable for future plugin support */

extern const struct sieve_extension_def environment_extension;

static inline int
sieve_ext_environment_get_extension(struct sieve_instance *svinst,
				     const struct sieve_extension **ext_r)
{
	return sieve_extension_register(svinst, &environment_extension, FALSE,
					ext_r);
}

static inline int
sieve_ext_environment_require_extension(struct sieve_instance *svinst,
					const struct sieve_extension **ext_r)
{
	return sieve_extension_require(svinst, &environment_extension, TRUE,
				       ext_r);
}

bool sieve_ext_environment_is_active(const struct sieve_extension *env_ext,
				     struct sieve_interpreter *interp);

/*
 * Environment item
 */

struct sieve_environment_item;

struct sieve_environment_item_def {
	const char *name;
	bool prefix;

	const char *value;
	const char *(*get_value)(const struct sieve_runtime_env *renv,
				 const struct sieve_environment_item *item,
				 const char *name);
};

struct sieve_environment_item {
	const struct sieve_environment_item_def *def;
	const struct sieve_extension *ext;
};

void sieve_environment_item_register(
	const struct sieve_extension *env_ext, struct sieve_interpreter *interp,
	const struct sieve_extension *ext,
	const struct sieve_environment_item_def *item_def);
const char *
ext_environment_item_get_value(const struct sieve_extension *env_ext,
			       const struct sieve_runtime_env *renv,
			       const char *name);

#endif