changeset 22:587437b62ed5

implement twrtp_endp_set_remote_ipv4()
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 07 Jul 2024 04:33:55 +0000
parents 2032201bd034
children 9e477a4b485a
files include/endp.h src/Makefile src/set_remote.c
diffstat 3 files changed, 32 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/include/endp.h	Sun Jul 07 04:17:18 2024 +0000
+++ b/include/endp.h	Sun Jul 07 04:33:55 2024 +0000
@@ -61,3 +61,6 @@
 int twrtp_endp_register_fds(struct twrtp_endp *endp);
 int twrtp_endp_bind_ip_port(struct twrtp_endp *endp, const char *ip,
 			    uint16_t port);
+
+void twrtp_endp_set_remote_ipv4(struct twrtp_endp *endp,
+				const struct in_addr *ip, uint16_t port);
--- a/src/Makefile	Sun Jul 07 04:17:18 2024 +0000
+++ b/src/Makefile	Sun Jul 07 04:33:55 2024 +0000
@@ -1,5 +1,5 @@
-OBJS=	bind_fdpair.o endp_bind.o endp_create.o endp_register.o twjit.o \
-	twjit_in.o twjit_out.o twjit_vty.o
+OBJS=	bind_fdpair.o endp_bind.o endp_create.o endp_register.o set_remote.o \
+	twjit.o twjit_in.o twjit_out.o twjit_vty.o
 LIB=	libtwrtp.a
 
 include ../config.defs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/set_remote.c	Sun Jul 07 04:33:55 2024 +0000
@@ -0,0 +1,27 @@
+/*
+ * Here we implement functions for setting the remote end on themwi_endp,
+ * initially only IPv4, then possibly IPv6 in the future.
+ */
+
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <stdint.h>
+#include <stdbool.h>
+#include <string.h>
+
+#include <themwi/rtp/endp.h>
+
+void twrtp_endp_set_remote_ipv4(struct twrtp_endp *endp,
+				const struct in_addr *ip, uint16_t port)
+{
+	endp->rtp_remote.u.sin.sin_family = AF_INET;
+	memcpy(&endp->rtp_remote.u.sin.sin_addr, ip, sizeof(struct in_addr));
+	endp->rtp_remote.u.sin.sin_port = htons(port);
+
+	endp->rtcp_remote.u.sin.sin_family = AF_INET;
+	memcpy(&endp->rtcp_remote.u.sin.sin_addr, ip, sizeof(struct in_addr));
+	endp->rtcp_remote.u.sin.sin_port = htons(port + 1);
+
+	endp->remote_set = true;
+}