HEX
Server: Apache/2
System: Linux ctr1224126.novalocal 4.9.241-37.el7.x86_64 #1 SMP Mon Nov 2 13:55:04 UTC 2020 x86_64
User: gokitchen (1017)
PHP: 8.0.30
Disabled: 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-address.h
#ifndef SIEVE_ADDRESS_H
#define SIEVE_ADDRESS_H

#include "lib.h"
#include "strfuncs.h"
#include "smtp-address.h"

#include "sieve-common.h"
#include "sieve-stringlist.h"

/*
 * Address list API
 */

struct sieve_address_list {
	struct sieve_stringlist strlist;

	int (*next_item)(struct sieve_address_list *_addrlist,
			 struct smtp_address *addr_r, string_t **unparsed_r);
};

static inline int
sieve_address_list_next_item(struct sieve_address_list *addrlist,
			     struct smtp_address *addr_r, string_t **unparsed_r)
{
	return addrlist->next_item(addrlist, addr_r, unparsed_r);
}

static inline void
sieve_address_list_reset(struct sieve_address_list *addrlist)
{
	sieve_stringlist_reset(&addrlist->strlist);
}

static inline int
sieve_address_list_get_length(struct sieve_address_list *addrlist)
{
	return sieve_stringlist_get_length(&addrlist->strlist);
}

static inline void
sieve_address_list_set_trace(struct sieve_address_list *addrlist, bool trace)
{
	sieve_stringlist_set_trace(&addrlist->strlist, trace);
}

/*
 * Header address list
 */

struct sieve_address_list *
sieve_header_address_list_create(const struct sieve_runtime_env *renv,
				 struct sieve_stringlist *field_values);

/*
 * Sieve address parsing/validatin
 */

const struct smtp_address *
sieve_address_parse(const char *address, const char **error_r);
const struct smtp_address *
sieve_address_parse_str(string_t *address, const char **error_r);

bool sieve_address_validate(const char *address, const char **error_r);
bool sieve_address_validate_str(string_t *address, const char **error_r);

#endif