X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=ortp_send.c;h=b084bb68ac4b89b3a3921c5d002d00444ba14cb3;hp=9d244225d39f557fc1a7132b0173e2d8b0269c16;hb=95ef8f79c9ae684e07568653b0c68ea669188e9f;hpb=8b2c02c8d6255583982e767374d39375b3380c4d diff --git a/ortp_send.c b/ortp_send.c index 9d244225..b084bb68 100644 --- a/ortp_send.c +++ b/ortp_send.c @@ -32,8 +32,6 @@ #define TARGET_ADDR(oc) inet_ntoa((oc)->addr) /** \endcond */ -extern struct gengetopt_args_info conf; - /** describes one entry in the list of targets for the ortp sender */ struct ortp_target { /** address info */ @@ -89,6 +87,20 @@ static void ortp_send_buf(char *buf, int len, long unsigned chunks_sent) } } +static int set_multicast(RtpSession *s) +{ + unsigned char loop = 1; + int ret; + + ret = setsockopt(s->rtp.socket, + IPPROTO_IP, IP_MULTICAST_LOOP, &loop, sizeof(loop)); + if (ret < 0) { + PARA_ERROR_LOG("IP_MULTICAST_LOOP error %d\n", ret); + + } + return 1; +} + static void ortp_init_session(struct ortp_target *ot) { RtpSession *s; @@ -110,7 +122,9 @@ static void ortp_init_session(struct ortp_target *ot) if (ret < 0) { rtp_session_destroy(ot->session); ot->session = NULL; + return; } + set_multicast(s); } /* called by afs */