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