static int stream_sock_alloc(struct stream *s, int af) { struct sa laddr; int tos, err; if (!s) return EINVAL; /* we listen on all interfaces */ sa_init(&laddr, af); err = rtp_listen(&s->rtp, IPPROTO_UDP, &laddr, s->cfg.rtp_ports.min, s->cfg.rtp_ports.max, s->rtcp, rtp_recv, rtcp_handler, s); if (err) { warning("stream: rtp_listen failed: af=%s ports=%u-%u" " (%m)\n", net_af2name(af), s->cfg.rtp_ports.min, s->cfg.rtp_ports.max, err); return err; } tos = s->cfg.rtp_tos; (void)udp_setsockopt(rtp_sock(s->rtp), IPPROTO_IP, IP_TOS, &tos, sizeof(tos)); (void)udp_setsockopt(rtcp_sock(s->rtp), IPPROTO_IP, IP_TOS, &tos, sizeof(tos)); udp_rxsz_set(rtp_sock(s->rtp), RTP_RECV_SIZE); return 0; }
static int stream_sock_alloc(struct stream *s, int af) { struct sa laddr; int tos, err; if (!s) return EINVAL; /* we listen on all interfaces */ sa_init(&laddr, sa_af(net_laddr_af(af))); err = rtp_listen(&s->rtp, IPPROTO_UDP, &laddr, config.avt.rtp_ports.min, config.avt.rtp_ports.max, s->rtcp, rtp_recv, rtcp_handler, s); if (err) return err; tos = config.avt.rtp_tos; (void)udp_setsockopt(rtp_sock(s->rtp), IPPROTO_IP, IP_TOS, &tos, sizeof(tos)); (void)udp_setsockopt(rtcp_sock(s->rtp), IPPROTO_IP, IP_TOS, &tos, sizeof(tos)); udp_rxsz_set(rtp_sock(s->rtp), RTP_RECV_SIZE); return 0; }