| Server IP : 88.99.149.37 / Your IP : 216.73.216.141 Web Server : nginx/1.31.2 System : Linux server-88-99-149-37 6.12.0-124.56.5.el10_1.x86_64 #1 SMP PREEMPT_DYNAMIC Fri May 15 06:12:08 EDT 2026 x86_64 User : muralimurth ( 1015) PHP Version : 8.4.23 Disable Function : 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 MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /proc/thread-self/root/usr/include/dovecot/ |
Upload File : |
#ifndef LOGIN_PROXY_STATE_H
#define LOGIN_PROXY_STATE_H
#include <sys/time.h>
struct login_proxy_record {
struct ip_addr ip;
in_port_t port;
/* These are used to spread client-visible disconnects over longer
periods of time to avoid reconnect spikes when a server dies.
If num_disconnects_since_ts=0 when server disconnects us, it's
increased and disconnect_timestamp is updated. Afterwards it's
increased for each new disconnection. num_disconnects_since_ts gets
reset back to zero whenever a) last_success gets updated or b)
num_delayed_client_disconnects drops to 0. */
struct timeval disconnect_timestamp;
unsigned int num_disconnects_since_ts;
unsigned int num_delayed_client_disconnects;
/* these are tracking connect()s, not necessarily logins: */
unsigned int num_waiting_connections;
/* number of connections we're proxying now (post-login) */
unsigned int num_proxying_connections;
struct timeval last_failure;
struct timeval last_success;
};
struct login_proxy_state *login_proxy_state_init(const char *notify_path);
void login_proxy_state_deinit(struct login_proxy_state **state);
struct login_proxy_record *
login_proxy_state_get(struct login_proxy_state *state,
const struct ip_addr *ip, in_port_t port);
void login_proxy_state_notify(struct login_proxy_state *state,
const char *user);
#endif