65 #include <sys/socket.h>
87 #define STR(x) vstring_str(x)
88 #define LEN(x) VSTRING_LEN(x)
94 const char *myname =
"smtpd_peer_from_haproxy";
99 const char *proxy_err;
117 #define ENABLE_DEADLINE 1
122 msg_panic(
"%s: unhandled I/O error %d", myname, io_err);
124 msg_warn(
"haproxy read: unexpected EOF");
127 msg_warn(
"haproxy read: timeout error");
136 &smtp_client_addr, &smtp_client_port,
137 &smtp_server_addr, &smtp_server_port)) != 0) {
140 msg_warn(
"haproxy read: %s: %s", proxy_err,
STR(escape_buf));
145 if (strrchr(state->
addr,
':') != 0) {
int smtpd_peer_from_haproxy(SMTPD_STATE *state)
char * mystrdup(const char *str)
NORETURN msg_panic(const char *fmt,...)
VSTRING * escape(VSTRING *, const char *, ssize_t)
int smtp_get(VSTRING *vp, VSTREAM *stream, ssize_t bound, int flags)
#define vstream_setjmp(stream)
const char * haproxy_srvr_parse(const char *str, MAI_HOSTADDR_STR *smtp_client_addr, MAI_SERVPORT_STR *smtp_client_port, MAI_HOSTADDR_STR *smtp_server_addr, MAI_SERVPORT_STR *smtp_server_port)
char buf[MAI_HOSTADDR_STRSIZE]
#define VSTREAM_CTL_BUFSIZE
void msg_warn(const char *fmt,...)
void smtp_stream_setup(VSTREAM *stream, int maxtime, int enable_deadline)
VSTRING * vstring_alloc(ssize_t len)
char * concatenate(const char *arg0,...)
VSTRING * vstring_free(VSTRING *vp)
int var_smtpd_uproxy_tmout
char buf[MAI_SERVPORT_STRSIZE]
void vstream_control(VSTREAM *stream, int name,...)
#define SMTP_GET_FLAG_NONE