FreeCalypso > hg > themwi-rtp-lib
annotate src/set_remote.c @ 38:781f491f20dd
set sensible osmo_io msgb alloc sizes for RTP & RTCP Rx
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Thu, 19 Dec 2024 01:10:08 +0000 |
| parents | 8f1700a42ca5 |
| children |
| rev | line source |
|---|---|
|
22
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * Here we implement functions for setting the remote end on themwi_endp, |
|
37
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
3 * both IPv4 and IPv6. |
|
22
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 */ |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 #include <sys/socket.h> |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include <netinet/in.h> |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #include <arpa/inet.h> |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 #include <stdint.h> |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include <stdbool.h> |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 #include <string.h> |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 #include <themwi/rtp/endp.h> |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 void twrtp_endp_set_remote_ipv4(struct twrtp_endp *endp, |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 const struct in_addr *ip, uint16_t port) |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 { |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 endp->rtp_remote.u.sin.sin_family = AF_INET; |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 memcpy(&endp->rtp_remote.u.sin.sin_addr, ip, sizeof(struct in_addr)); |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 endp->rtp_remote.u.sin.sin_port = htons(port); |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 endp->rtcp_remote.u.sin.sin_family = AF_INET; |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 memcpy(&endp->rtcp_remote.u.sin.sin_addr, ip, sizeof(struct in_addr)); |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 endp->rtcp_remote.u.sin.sin_port = htons(port + 1); |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 endp->remote_set = true; |
|
587437b62ed5
implement twrtp_endp_set_remote_ipv4()
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 } |
|
37
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
28 |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
29 void twrtp_endp_set_remote_ipv6(struct twrtp_endp *endp, |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
30 const struct in6_addr *ip6, uint16_t port) |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
31 { |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
32 endp->rtp_remote.u.sin6.sin6_family = AF_INET6; |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
33 memcpy(&endp->rtp_remote.u.sin6.sin6_addr, ip6, |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
34 sizeof(struct in6_addr)); |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
35 endp->rtp_remote.u.sin6.sin6_port = htons(port); |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
36 |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
37 endp->rtcp_remote.u.sin6.sin6_family = AF_INET6; |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
38 memcpy(&endp->rtcp_remote.u.sin6.sin6_addr, ip6, |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
39 sizeof(struct in6_addr)); |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
40 endp->rtcp_remote.u.sin6.sin6_port = htons(port + 1); |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
41 |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
42 endp->remote_set = true; |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
43 } |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
44 |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
45 void twrtp_endp_set_remote_sin(struct twrtp_endp *endp, |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
46 const struct sockaddr_in *sin) |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
47 { |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
48 twrtp_endp_set_remote_ipv4(endp, &sin->sin_addr, ntohs(sin->sin_port)); |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
49 } |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
50 |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
51 void twrtp_endp_set_remote_sin6(struct twrtp_endp *endp, |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
52 const struct sockaddr_in6 *sin6) |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
53 { |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
54 twrtp_endp_set_remote_ipv6(endp, &sin6->sin6_addr, |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
55 ntohs(sin6->sin6_port)); |
|
8f1700a42ca5
set_remote: add functions for IPv6 and for sockaddr_{in,in6}
Mychaela Falconia <falcon@freecalypso.org>
parents:
22
diff
changeset
|
56 } |
