pkgsrc-WIP-review archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: wip/linphone committed
On Sun, 17 Apr 2005 02:36:24 +0200, Georg Schwarz wrote:
> Hi,
>=20
> I have just committed wip/linphone. This is surely work in progress,
> since there are still a lot of things I am unsure about:
> - I have built it on Linux only, so I would not be surprised if things
> did not go that smoothly on other systems yet... especially with audio
> support, which would probably still have to be tweaked. (and maybe somr=
e
> OSS buildlink includes or something like that?). pkgsrc does not have
> explicit support for ALSA, does it?
Hello,
I tried to build it on NetBSD and I had to correct some multicast issues.
Patch is below.
After that, linking fails because it doesn't find libossaudio. Could plea=
se
some pkgsrc guru look at it and add necessary configure and buildlink mag=
ic?
Thanks.
(The error is: ./.libs/libmediastreamer.a(osscard.o)(.text+0x74): In func=
tion `oss_open':
: undefined reference to `_oss_ioctl')
Explanation of the patch:
NetBSD (and possibly others, at least FreeBSD 5.3 and Solaris 10 accordin=
g
to their manpages) don't have struct ip_mreqn, only struct ip_mreq.
IPV6_ADD_MEMBERSHIP is obsolete and not supported on NetBSD, IPV6_JOIN_GR=
OUP
should be used.
IN6_IS_ADDR_MULTICAST takes a pointer to struct in6_addr, see rfc2553.
Those fixes should be valid for every OS, but I didn't test.
--- oRTP/src/rtpsession.c.orig 2005-03-09 17:34:59.000000000 +0100
+++ oRTP/src/rtpsession.c 2005-07-05 23:58:04.000000000 +0200
@@ -383,10 +383,9 @@
case AF_INET:
if (IN_MULTICAST(ntohl(((struct sockaddr_in *)
res->ai_addr)->si=
n_addr.s_addr)))
{
- struct ip_mreqn mreq;
+ struct ip_mreq mreq;
mreq.imr_multiaddr.s_addr =3D ((struct sockaddr_in *)
res->ai_addr)=
->sin_addr.s_addr;
- mreq.imr_address.s_addr =3D INADDR_ANY;
- mreq.imr_ifindex =3D 0;
+ mreq.imr_interface.s_addr =3D INADDR_ANY;
err =3D setsockopt(session->rtp.socket, IPPROTO_IP,
IP_ADD_MEMBERSH=
IP, &mreq, sizeof(mreq));
if (err < 0)
{
@@ -397,12 +396,12 @@
}
break;
case AF_INET6:
- if (IN6_IS_ADDR_MULTICAST((((struct sockaddr_in6 *)
res->ai_addr=
)->sin6_addr.s6_addr)))
+ if (IN6_IS_ADDR_MULTICAST(&(((struct sockaddr_in6 *)
res->ai_add=
r)->sin6_addr)))
{
struct ipv6_mreq mreq;
mreq.ipv6mr_multiaddr =3D ((struct sockaddr_in6 *)
res->ai_addr)->s=
in6_addr;
mreq.ipv6mr_interface =3D 0;
- err =3D setsockopt(session->rtp.socket, IPPROTO_IPV6,
IPV6_ADD_MEMB=
ERSHIP, &mreq, sizeof(mreq));
+ err =3D setsockopt(session->rtp.socket, IPPROTO_IPV6,
IPV6_JOIN_GRO=
UP, &mreq, sizeof(mreq));
if (err < 0)
{
g_warning ("Fail to join address group: %s.",
getSocketError())=
;
@@ -460,10 +459,9 @@
case AF_INET:
if (IN_MULTICAST(ntohl(((struct sockaddr_in *)
res->ai_addr)->si=
n_addr.s_addr)))
{
- struct ip_mreqn mreq;
+ struct ip_mreq mreq;
mreq.imr_multiaddr.s_addr =3D ((struct sockaddr_in *)
res->ai_addr)=
->sin_addr.s_addr;
- mreq.imr_address.s_addr =3D INADDR_ANY;
- mreq.imr_ifindex =3D 0;
+ mreq.imr_interface.s_addr =3D INADDR_ANY;
err =3D setsockopt(session->rtcp.socket, IPPROTO_IP,
IP_ADD_MEMBERS=
HIP, &mreq, sizeof(mreq));
if (err < 0)
{
@@ -475,12 +473,12 @@
}
break;
case AF_INET6:
- if (IN6_IS_ADDR_MULTICAST((((struct sockaddr_in6 *)
res->ai_addr=
)->sin6_addr.s6_addr)))
+ if (IN6_IS_ADDR_MULTICAST(&(((struct sockaddr_in6 *)
res->ai_add=
r)->sin6_addr)))
{
struct ipv6_mreq mreq;
mreq.ipv6mr_multiaddr =3D ((struct sockaddr_in6 *)
res->ai_addr)->s=
in6_addr;
mreq.ipv6mr_interface =3D 0;
- err =3D setsockopt(session->rtcp.socket,
IPPROTO_IPV6, IPV6_ADD_MEM=
BERSHIP, &mreq, sizeof(mreq));
+ err =3D setsockopt(session->rtcp.socket,
IPPROTO_IPV6, IPV6_JOIN_GR=
OUP, &mreq, sizeof(mreq));
if (err < 0)
{
g_warning ("Fail to join address group: %s.",
getSocketError())=
;
@@ -558,10 +556,9 @@
#ifndef __hpux
if (IN_MULTICAST(ntohl(session->rtp.loc_addr.sin_addr.s_addr)))
{
- struct ip_mreqn mreq;
+ struct ip_mreq mreq;
mreq.imr_multiaddr.s_addr =3D session->rtp.loc_addr.sin_addr.s_addr=
;
- mreq.imr_address.s_addr =3D INADDR_ANY;
- mreq.imr_ifindex =3D 0;
+ mreq.imr_interface.s_addr =3D INADDR_ANY;
err =3D setsockopt(session->rtp.socket, IPPROTO_IP, IP_ADD_MEMBERSH=
IP, &mreq, sizeof(mreq));
if (err =3D=3D 0)
err =3D setsockopt(session->rtcp.socket, IPPROTO_IP, IP_ADD_MEMBE=
RSHIP, &mreq, sizeof(mreq));
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=3D7477&alloc_id=3D16492&op=3Dclic=
k
_______________________________________________
pkgsrc-wip-review mailing list
pkgsrc-wip-review%lists.sourceforge.net@localhost
https://lists.sourceforge.net/lists/listinfo/pkgsrc-wip-review
Home |
Main Index |
Thread Index |
Old Index