From 6c78b6ec05a4748f422651d080a03bd359336cb1 Mon Sep 17 00:00:00 2001
From: Dmitry Simonenko <pmwkaa@gmail.com>
Date: Mon, 8 Apr 2013 16:34:02 +0400
Subject: [PATCH] freebsd-fix: EAI_ADDRFAMILY is deprecated on FreeBSD.

---
 src/coeio.m | 9 ++++++++-
 src/sio.m   | 6 ++++--
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/coeio.m b/src/coeio.m
index 95247eedae..f6f34b8a81 100644
--- a/src/coeio.m
+++ b/src/coeio.m
@@ -228,7 +228,14 @@ getaddrinfo_cb(va_list ap)
 	 *
 	 * See for details: https://bugs.launchpad.net/tarantool/+bug/1160877
 	 */
-	if (rc == EAI_ADDRFAMILY || rc == EAI_BADFLAGS) {
+
+	/* EAI_ADDRFAMILY is deprecated on FreeBSD */
+#ifdef EAI_ADDRFAMILY
+	int is_rc = EAI_BADFLAGS|EAI_ADDRFAMILY;
+#else
+	int is_rc = EAI_BADFLAGS;
+#endif
+	if (rc == is_rc) {
 		hints->ai_flags &= ~AI_ADDRCONFIG;
 		rc = getaddrinfo(host, port, hints, res);
 	}
diff --git a/src/sio.m b/src/sio.m
index abe1f933ba..4118db8d2e 100644
--- a/src/sio.m
+++ b/src/sio.m
@@ -271,7 +271,8 @@ ssize_t
 sio_sendto(int fd, const void *buf, size_t len, int flags,
 	   const struct sockaddr_in *dest_addr, socklen_t addrlen)
 {
-	ssize_t n = sendto(fd, buf, len, flags, dest_addr, addrlen);
+	ssize_t n = sendto(fd, buf, len, flags, (struct sockaddr*)dest_addr,
+	                   addrlen);
 	if (n < 0 && errno != EAGAIN &&
 	    errno != EWOULDBLOCK && errno != EINTR)
 			tnt_raise(SocketError, :fd in:"sendto(%zd)", len);
@@ -283,7 +284,8 @@ ssize_t
 sio_recvfrom(int fd, void *buf, size_t len, int flags,
 	     struct sockaddr_in *src_addr, socklen_t *addrlen)
 {
-	ssize_t n = recvfrom(fd, buf, len, flags, src_addr, addrlen);
+	ssize_t n = recvfrom(fd, buf, len, flags, (struct sockaddr*)src_addr,
+	                     addrlen);
 	if (n < 0 && errno != EAGAIN &&
 	    errno != EWOULDBLOCK && errno != EINTR)
 			tnt_raise(SocketError, :fd in:"recvfrom(%zd)", len);
-- 
GitLab