64 #ifdef STRCASECMP_IN_STRINGS_H
89 static int psc_sockaddr_to_hostaddr(
struct sockaddr *addr_storage,
98 addr_buf, port_buf, socktype)) == 0
101 memmove(addr_buf->
buf, addr_buf->
buf + 7,
102 sizeof(addr_buf->
buf) - 7);
108 static void psc_endpt_local_lookup(
VSTREAM *smtp_client_stream,
111 struct sockaddr_storage addr_storage;
123 if (getpeername(
vstream_fileno(smtp_client_stream), (
struct sockaddr *)
124 &addr_storage, &addr_storage_len) < 0) {
125 msg_warn(
"getpeername: %m -- dropping this connection");
133 else if ((aierr = psc_sockaddr_to_hostaddr(
134 (
struct sockaddr *) &addr_storage,
135 addr_storage_len, &smtp_client_addr,
136 &smtp_client_port, SOCK_STREAM)) != 0) {
137 msg_warn(
"cannot convert client address/port to string: %s"
138 " -- dropping this connection",
147 (
struct sockaddr *) &addr_storage,
148 &addr_storage_len) < 0) {
149 msg_warn(
"getsockname: %m -- dropping this connection");
157 else if ((aierr = psc_sockaddr_to_hostaddr(
158 (
struct sockaddr *) &addr_storage,
159 addr_storage_len, &smtp_server_addr,
160 &smtp_server_port, SOCK_STREAM)) != 0) {
161 msg_warn(
"cannot convert server address/port to string: %s"
162 " -- dropping this connection",
168 lookup_done(status, smtp_client_stream,
169 &smtp_client_addr, &smtp_client_port,
170 &smtp_server_addr, &smtp_server_port);
197 for (pp = psc_endpt_lookup_info; ; pp++) {
#define HAPROXY_PROTO_NAME
#define inet_proto_info()
void(* PSC_ENDPT_LOOKUP_FN)(int, VSTREAM *, MAI_HOSTADDR_STR *, MAI_SERVPORT_STR *, MAI_HOSTADDR_STR *, MAI_SERVPORT_STR *)
void psc_endpt_lookup(VSTREAM *smtp_client_stream, PSC_ENDPT_LOOKUP_FN notify)
int strncasecmp(const char *s1, const char *s2, size_t n)
int sockaddr_to_hostaddr(const struct sockaddr *sa, SOCKADDR_SIZE salen, MAI_HOSTADDR_STR *hostaddr, MAI_SERVPORT_STR *portnum, int unused_socktype)
char buf[MAI_HOSTADDR_STRSIZE]
void psc_endpt_haproxy_lookup(VSTREAM *stream, PSC_ENDPT_LOOKUP_FN notify)
void msg_warn(const char *fmt,...)
unsigned char * sa_family_list
NORETURN msg_fatal(const char *fmt,...)
#define VAR_PSC_UPROXY_PROTO
char * var_psc_uproxy_proto
#define vstream_fileno(vp)
void(* endpt_lookup)(VSTREAM *, PSC_ENDPT_LOOKUP_FN)
#define NOPROXY_PROTO_NAME