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/lmtp-recipient.h
#ifndef LMTP_RECIPIENT_H
#define LMTP_RECIPIENT_H

struct smtp_address;
struct smtp_server_cmd_ctx;
struct smtp_server_cmd_rcpt;
struct smtp_server_recipient;
union lmtp_recipient_module_context;
struct client;

enum lmtp_recipient_state {
	LMTP_RECIPIENT_STATE_ATTEMPT_PROXY = 0,
	LMTP_RECIPIENT_STATE_ATTEMPT_LOCAL,
	LMTP_RECIPIENT_STATE_LAST,
};

enum lmtp_recipient_type {
	LMTP_RECIPIENT_TYPE_LOCAL,
	LMTP_RECIPIENT_TYPE_PROXY,
};

struct lmtp_recipient {
	struct client *client;
	struct smtp_server_recipient *rcpt;

	const char *username, *detail;
	char delim;

	enum lmtp_recipient_type type;

	enum lmtp_recipient_state state;
	struct timeout *to_continue;
	void *backend_context;

	const char *session_id;
	const char *const *forward_fields;

	/* Module-specific contexts. */
	ARRAY(union lmtp_recipient_module_context *) module_contexts;
};

struct lmtp_recipient_module_register {
	unsigned int id;
};

union lmtp_recipient_module_context {
	struct lmtp_recipient_module_register *reg;
};
extern struct lmtp_recipient_module_register lmtp_recipient_module_register;

struct lmtp_recipient *
lmtp_recipient_create(struct client *client,
		      struct smtp_server_transaction *trans,
		      struct smtp_server_recipient *rcpt);

struct lmtp_recipient *
lmtp_recipient_find_duplicate(struct lmtp_recipient *lrcpt,
			      struct smtp_server_transaction *trans);

int lmtp_rcpt_start(struct lmtp_recipient *lrcpt);
int lmtp_rcpt_continue(struct lmtp_recipient *lrcpt);

#endif