From: Sean Bright Date: Wed, 12 Sep 2018 12:18:07 +0000 (-0400) Subject: res_pjproject: Fix sockaddr conversion routines for non-bundled PJSIP X-Git-Tag: 13.24.0-rc1~115^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=931b68d3e68a4a17e92755b03d978b9172cc1c0f;p=thirdparty%2Fasterisk.git 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 --- diff --git a/res/res_pjproject.c b/res/res_pjproject.c index ec5e4b61c7..ec9927949f 100644 --- a/res/res_pjproject.c +++ b/res/res_pjproject.c @@ -490,7 +490,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; @@ -511,7 +515,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()) {