HEX
Server: Apache/2
System: Linux jingle.dotvndns.vn 2.6.32-754.17.1.el6.x86_64 #1 SMP Tue Jul 2 12:42:48 UTC 2019 x86_64
User: chuahuehuong (1863)
PHP: 7.3.16
Disabled: apache_note,apache_setenv,proc_get_status,exec,passthru,proc_nice,proc_terminate,shell_exec,system,ini_restore,syslog,define_syslog_variables,symlink,link,error_log,leak,dbmopen,closelog,stream_socket_server,execl,escapeshellcmd,ini_alter,dl,show_source,posix_getpwuid,posix_geteuid,posix_getegid,posix_getgrgid,open_basedir,safe_mode_include_dir,pcntl_exec,pcntl_fork,pclose,virtual,openlog,popen,escapeshellarg,eval,calo,posix_getpwuid,symlinks,symlink,getpwuid,mail
Upload Files
File: //usr/include/dovecot/mail-storage-hooks.h
#ifndef MAIL_STORAGE_HOOKS_H
#define MAIL_STORAGE_HOOKS_H

struct module;
struct mail_user;
struct mail_storage;
struct mail_namespace;
struct mailbox_list;
struct mailbox;
struct mail;

struct mail_storage_hooks {
	void (*mail_user_created)(struct mail_user *user);
	void (*mail_namespace_storage_added)(struct mail_namespace *ns);
	/* called the first time user's initial namespaces were added */
	void (*mail_namespaces_created)(struct mail_namespace *namespaces);
	/* called every time namespaces are added. most importantly called
	   when shared mailbox accesses trigger creating new namespaces.
	   this is called before mail_namespaces_created() at startup.
	   The namespaces parameter contains all of the current namespaces. */
	void (*mail_namespaces_added)(struct mail_namespace *namespaces);
	void (*mail_storage_created)(struct mail_storage *storage);
	void (*mailbox_list_created)(struct mailbox_list *list);
	void (*mailbox_allocated)(struct mailbox *box);
	void (*mailbox_opened)(struct mailbox *box);
	void (*mail_allocated)(struct mail *mail);
};

void mail_storage_hooks_init(void);
void mail_storage_hooks_deinit(void);

void mail_storage_hooks_add(struct module *module,
			    const struct mail_storage_hooks *hooks);
/* Add hooks to this plugin regardless of whether it exists in user's
   mail_plugins setting. */
void mail_storage_hooks_add_forced(struct module *module,
				   const struct mail_storage_hooks *hooks);
void mail_storage_hooks_remove(const struct mail_storage_hooks *hooks);

void mail_storage_hooks_add_internal(const struct mail_storage_hooks *hooks);
void mail_storage_hooks_remove_internal(const struct mail_storage_hooks *hooks);

void hook_mail_user_created(struct mail_user *user);
void hook_mail_namespace_storage_added(struct mail_namespace *ns);
void hook_mail_namespaces_created(struct mail_namespace *namespaces);
void hook_mail_namespaces_added(struct mail_namespace *namespaces);
void hook_mail_storage_created(struct mail_storage *storage);
void hook_mailbox_list_created(struct mailbox_list *list);
void hook_mailbox_allocated(struct mailbox *box);
void hook_mailbox_opened(struct mailbox *box);
void hook_mail_allocated(struct mail *mail);

#endif