pkgsrc-WIP-review archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: wip/linphone committed
Hi,
Thanks a lot for the patch; it's gonna be merged into the cvs soon.
Simon
Le Jeudi 7 Juillet 2005 16:03, Pavel Cahyna a écrit :
> On Sun, 17 Apr 2005 02:36:24 +0200, Georg Schwarz wrote:
> > Hi,
> >
> > 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 somre
> > 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 please
> some pkgsrc guru look at it and add necessary configure and buildlink
> magic? Thanks.
>
> (The error is: ./.libs/libmediastreamer.a(osscard.o)(.text+0x74): In
function `oss_open':
> : undefined reference to `_oss_ioctl')
>
> Explanation of the patch:
>
> NetBSD (and possibly others, at least FreeBSD 5.3 and Solaris 10 according
> 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_GROUP 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)->sin_addr.s_addr))) {
> - struct ip_mreqn mreq;
> + struct ip_mreq mreq;
> mreq.imr_multiaddr.s_addr = ((struct sockaddr_in *)
> res->ai_addr)->sin_addr.s_addr; -
> mreq.imr_address.s_addr = INADDR_ANY;
> - mreq.imr_ifindex = 0;
> + mreq.imr_interface.s_addr = INADDR_ANY;
> err = setsockopt(session->rtp.socket, IPPROTO_IP,
> IP_ADD_MEMBERSHIP,
> &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_addr)->sin6_addr))) {
> struct ipv6_mreq mreq;
> mreq.ipv6mr_multiaddr = ((struct sockaddr_in6 *)
> res->ai_addr)->sin6_addr; mreq.ipv6mr_interface = 0;
> - err = setsockopt(session->rtp.socket, IPPROTO_IPV6,
> IPV6_ADD_MEMBERSHIP, &mreq, sizeof(mreq)); + err =
> setsockopt(session->rtp.socket, IPPROTO_IPV6, IPV6_JOIN_GROUP, &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)->sin_addr.s_addr))) {
> - struct ip_mreqn mreq;
> + struct ip_mreq mreq;
> mreq.imr_multiaddr.s_addr = ((struct sockaddr_in *)
> res->ai_addr)->sin_addr.s_addr; -
> mreq.imr_address.s_addr = INADDR_ANY;
> - mreq.imr_ifindex = 0;
> + mreq.imr_interface.s_addr = INADDR_ANY;
> err = setsockopt(session->rtcp.socket, IPPROTO_IP,
> IP_ADD_MEMBERSHIP,
> &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_addr)->sin6_addr))) {
> struct ipv6_mreq mreq;
> mreq.ipv6mr_multiaddr = ((struct sockaddr_in6 *)
> res->ai_addr)->sin6_addr; mreq.ipv6mr_interface = 0;
> - err = setsockopt(session->rtcp.socket, IPPROTO_IPV6,
> IPV6_ADD_MEMBERSHIP, &mreq, sizeof(mreq)); + err =
> setsockopt(session->rtcp.socket, IPPROTO_IPV6, IPV6_JOIN_GROUP, &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 = session->rtp.loc_addr.sin_addr.s_addr;
> - mreq.imr_address.s_addr = INADDR_ANY;
> - mreq.imr_ifindex = 0;
> + mreq.imr_interface.s_addr = INADDR_ANY;
> err = setsockopt(session->rtp.socket, IPPROTO_IP, IP_ADD_MEMBERSHIP,
> &mreq, sizeof(mreq)); if (err == 0)
> err = setsockopt(session->rtcp.socket, IPPROTO_IP,
> IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq));
-------------------------------------------------------
This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening
July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual
core and dual graphics technology at this free one hour event hosted by HP,
AMD, and NVIDIA. To register visit http://www.hp.com/go/dualwebinar
_______________________________________________
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