From b4cb51ca63fa2f9019aee0a4d40faf57a1b49c24 Mon Sep 17 00:00:00 2001 From: Sean Bright Date: Wed, 12 Sep 2018 08:18:07 -0400 Subject: [PATCH] res_pjproject: Fix sockaddr conversion routines for non-bundled PJSIP The bundled version of pjproject has a patch for Solaris compatability that changes the definition of various socket structures which we need to account for when compiling against a non-bundled version. ASTERISK-28049 #close Change-Id: Ia1ea47c433fc2d915115193ee889a752373925f0 --- res/res_pjproject.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/res/res_pjproject.c b/res/res_pjproject.c index 0da72b41ab..818e2bad80 100644 --- a/res/res_pjproject.c +++ b/res/res_pjproject.c @@ -488,7 +488,11 @@ int ast_sockaddr_to_pj_sockaddr(const struct ast_sockaddr *addr, pj_sockaddr *pj if (addr->ss.ss_family == AF_INET) { struct sockaddr_in *sin = (struct sockaddr_in *) &addr->ss; pjaddr->ipv4.sin_family = pj_AF_INET(); - pjaddr->ipv4.sin_addr = sin->sin_addr; +#ifdef HAVE_PJPROJECT_BUNDLED + pjaddr->ipv4.sin_addr = sin->sin_addr; +#else + pjaddr->ipv4.sin_addr.s_addr = sin->sin_addr.s_addr; +#endif pjaddr->ipv4.sin_port = sin->sin_port; } else if (addr->ss.ss_family == AF_INET6) { struct sockaddr_in6 *sin = (struct sockaddr_in6 *) &addr->ss; @@ -509,7 +513,11 @@ int ast_sockaddr_from_pj_sockaddr(struct ast_sockaddr *addr, const pj_sockaddr * if (pjaddr->addr.sa_family == pj_AF_INET()) { struct sockaddr_in *sin = (struct sockaddr_in *) &addr->ss; sin->sin_family = AF_INET; - sin->sin_addr = pjaddr->ipv4.sin_addr; +#ifdef HAVE_PJPROJECT_BUNDLED + sin->sin_addr = pjaddr->ipv4.sin_addr; +#else + sin->sin_addr.s_addr = pjaddr->ipv4.sin_addr.s_addr; +#endif sin->sin_port = pjaddr->ipv4.sin_port; addr->len = sizeof(struct sockaddr_in); } else if (pjaddr->addr.sa_family == pj_AF_INET6()) { -- 2.47.2