Squashed 'third_party/rawrtc/re/' changes from f3163ce8b..9384f3a5f

9384f3a5f Merge branch 'meson' into rawrtc-patched
9283ee693 Fix version
d9708ac30 Merge branch 'meson' into rawrtc-patched
f0cd32702 Remove unneeded define
bd224386a Rename library to avoid clashes
66b398f16 Fix comment
fe728e6db Fix 'fallthrough' warnings
f0da48e84 Generate pkg-config file
520a6c4b1 Allow to use as a Meson subproject
06786bb40 Update Meson build files
1f5b2b0f3 Fix Windows dependencies
a812e4ae4 Enhance ifaddrs.h check for Android
bf45d1b85 Enhance resolv.h check for Android
5183ad041 Add minimum Meson version
b2aed7ca6 Add Meson build system support
4681816b6 Merge branch 'master' into rawrtc-patched
7d837903a Merge branch 'tls-set-dh-params' into rawrtc-patched
485ee70f7 Merge branch 'support-fmt-h' into rawrtc-patched
954b25444 Merge branch 'pipe-epoll-fix' into rawrtc-patched
3a376df0c Merge branch 'dtls-socketless' into rawrtc-patched
7b52ff035 Merge branch 'dtls-configurable-headroom' into rawrtc-patched
762f98f51 Merge branch 'master' into rawrtc-patched
4deed71e1 Fix use `long` for `SSL_CTX_set_ecdh_auto` and `SSL_CTX_set_tmp_ecdh` return values
8c9828284 Explicitly use `long` as value for `SSL_CTX_set_ecdh_auto` call
3d990f602 Add the possibility to set Diffie-Hellman parameters Add `tls_set_dh_params_pem` and `tls_set_dh_params_der` function
631c8802b Handle %h prefixed (short) types in formatter functions
9db018131 Raise FD_EXCEPT on EPOLLHUP (fixes closed pipes)
97f455c17 Make headroom of an outgoing DTLS packet configurable
53ee9fab4 Return whether the packet has been handled in `dtls_receive`.
fcb10a0f1 Make it possible to create a DTLS socket without having an UDP socket underneath. Add `dtls_send_h` and `dtls_mtu_h` for DTLS in UDP socketless mode Add `dtls_socketless` and `dtls_receive` function Add `sendh` and `mtuh` fields to `struct dtls_socket`
9d1ba44a9 Merge branch 'dtls-configurable-headroom' into rawrtc-patched
3a6d31425 Make headroom of an outgoing DTLS packet configurable
6c90041a1 Merge branch 'dtls-socketless' into rawrtc-patched
244e02fbe Return whether the packet has been handled in `dtls_receive`.
cf8bceafa Merge branch 'master' into rawrtc-patched
f01cf0c84 Merge branch 'sdp-media-exclude-ldir' into rawrtc-patched
640b305c2 Merge branch 'sdp-media-address' into rawrtc-patched
ab1d110a4 Merge branch 'dtls-socketless' into rawrtc-patched
96110a7b8 Merge branch 'pipe-epoll-fix' into rawrtc-patched
0616c5ed5 Allow to exclude direction attribute
625c78750 Allow 'c='-line in SPD media to be explicitly set to unspecified
e2c464edb Allow 'c='-line in SPD media to be explicitly set to unspecified
57ca16a93 Make it possible to create a DTLS socket without having an UDP socket underneath. Add `dtls_send_h` and `dtls_mtu_h` for DTLS in UDP socketless mode Add `dtls_socketless` and `dtls_receive` function Add `sendh` and `mtuh` fields to `struct dtls_socket`
1c365017a Raise FD_EXCEPT on EPOLLHUP (fixes closed pipes)
585f196d9 Merge branch 'makefile-improvements' into rawrtc-patched
93b3fa3d9 Remove `install-static` target
728577bba Use `PREFIX ?= ...` instead of `ifndef`
3844e14f2 Less code duplication
c12309ad6 Use `PREFIX ?= ...` instead of `ifndef`
35f6d0bfc Less code duplication
6f1f67a56 Merge branch 'sdp-media-exclude-ldir' into rawrtc-patched
8aca84a34 Allow to exclude direction attribute
c70962258 Merge branch 'sdp-media-address' into rawrtc-patched
5bedf3b2c Allow 'c='-line in SPD media to be explicitly set to unspecified
d52e2df85 Merge branch 'support-fmt-h' into rawrtc-patched
ecc1a62f5 Handle %h prefixed (short) types in formatter functions
12ae81dc4 Merge branch 'tls-set-dh-params' into rawrtc-patched
3762eb8d0 Fix use `long` for `SSL_CTX_set_ecdh_auto` and `SSL_CTX_set_tmp_ecdh` return values
0fc077c02 Merge branch 'tls-set-dh-params' into rawrtc-patched
6abcc92ed Explicitly use `long` as value for `SSL_CTX_set_ecdh_auto` call
adbe6a67b Merge branch 'makefile-improvements' into rawrtc-patched
29b5a2b75 Remove `OPENSSL_SYSROOT` (`SYSROOT_ALT` should be sufficient)
df950db68 Merge branch 'makefile-improvements' into rawrtc-patched
0071283e0 Fix add include and libs directory when using `OPENSSL_SYSROOT`
114883ed2 Merge branch 'makefile-improvements' into rawrtc-patched
24ac34c83 Print OpenSSL sysroot on make info
b614d2eac Merge branch 'makefile-improvements' into rawrtc-patched
69da9f16f Add install-static option to Makefile
0ac7a62e2 Merge branch 'tls-set-dh-params' into rawrtc-patched
00a094574 Merge branch 'pipe-epoll-fix' into rawrtc-patched
8bf8b729b Merge branch 'dtls-socketless' into rawrtc-patched
ddc1ab1c9 Add Libs.private to pkg-config file Allow users to specify `PREFIX` in Makefile Allow users to specify the OpenSSL sysroot as `OPENSSL_SYSROOT` in Makefile
f05afb5be Add the possibility to set Diffie-Hellman parameters Add `tls_set_dh_params_pem` and `tls_set_dh_params_der` function
b3beb212e Raise FD_EXCEPT on EPOLLHUP (fixes closed pipes)
d7ee97f18 Make it possible to create a DTLS socket without having an UDP socket underneath. Add `dtls_send_h` and `dtls_mtu_h` for DTLS in UDP socketless mode Add `dtls_socketless` and `dtls_receive` function Add `sendh` and `mtuh` fields to `struct dtls_socket`

Change-Id: I389057b1a1e5685528a8bee9b65c03f3e083ef98
git-subtree-dir: third_party/rawrtc/re
git-subtree-split: 9384f3a5f38a03c871270fda566045b3bf57bbee
diff --git a/include/meson.build b/include/meson.build
new file mode 100644
index 0000000..c9e1b30
--- /dev/null
+++ b/include/meson.build
@@ -0,0 +1,52 @@
+includes = files([
+    're.h',
+    're_aes.h',
+    're_base64.h',
+    're_bfcp.h',
+    're_bitv.h',
+    're_conf.h',
+    're_crc32.h',
+    're_dbg.h',
+    're_dns.h',
+    're_fmt.h',
+    're_hash.h',
+    're_hmac.h',
+    're_httpauth.h',
+    're_http.h',
+    're_ice.h',
+    're_jbuf.h',
+    're_json.h',
+    're_list.h',
+    're_lock.h',
+    're_main.h',
+    're_mbuf.h',
+    're_md5.h',
+    're_mem.h',
+    're_mod.h',
+    're_mqueue.h',
+    're_msg.h',
+    're_natbd.h',
+    're_net.h',
+    're_odict.h',
+    're_rtmp.h',
+    're_rtp.h',
+    're_sa.h',
+    're_sdp.h',
+    're_sha.h',
+    're_sipevent.h',
+    're_sip.h',
+    're_sipreg.h',
+    're_sipsess.h',
+    're_srtp.h',
+    're_stun.h',
+    're_sys.h',
+    're_tcp.h',
+    're_telev.h',
+    're_tls.h',
+    're_tmr.h',
+    're_turn.h',
+    're_types.h',
+    're_udp.h',
+    're_uri.h',
+    're_websock.h',
+])
diff --git a/include/re_sdp.h b/include/re_sdp.h
index f34bab5..457cb4d 100644
--- a/include/re_sdp.h
+++ b/include/re_sdp.h
@@ -99,6 +99,7 @@
 void sdp_media_set_lport_rtcp(struct sdp_media *m, uint16_t port);
 void sdp_media_set_laddr_rtcp(struct sdp_media *m, const struct sa *laddr);
 void sdp_media_set_ldir(struct sdp_media *m, enum sdp_dir dir);
+void sdp_media_ldir_exclude(struct sdp_media *m, bool exclude);
 int  sdp_media_set_lattr(struct sdp_media *m, bool replace,
 			 const char *name, const char *value, ...);
 void sdp_media_del_lattr(struct sdp_media *m, const char *name);
diff --git a/include/re_tls.h b/include/re_tls.h
index 05b3c93..09ad028 100644
--- a/include/re_tls.h
+++ b/include/re_tls.h
@@ -54,6 +54,8 @@
 		     uint8_t *srv_key, size_t srv_key_size);
 const char *tls_cipher_name(const struct tls_conn *tc);
 int tls_set_ciphers(struct tls *tls, const char *cipherv[], size_t count);
+int tls_set_dh_params_pem(struct tls *tls, const char *pem, size_t len);
+int tls_set_dh_params_der(struct tls *tls, const uint8_t *der, size_t len);
 int tls_set_servername(struct tls_conn *tc, const char *servername);
 
 
@@ -66,6 +68,9 @@
 /* UDP (DTLS) */
 
 typedef void (dtls_conn_h)(const struct sa *peer, void *arg);
+typedef int (dtls_send_h)(struct tls_conn *tc, const struct sa *dst,
+		struct mbuf *mb, void *arg);
+typedef size_t (dtls_mtu_h)(struct tls_conn *tc, void *arg);
 typedef void (dtls_estab_h)(void *arg);
 typedef void (dtls_recv_h)(struct mbuf *mb, void *arg);
 typedef void (dtls_close_h)(int err, void *arg);
@@ -75,8 +80,13 @@
 int dtls_listen(struct dtls_sock **sockp, const struct sa *laddr,
 		struct udp_sock *us, uint32_t htsize, int layer,
 		dtls_conn_h *connh, void *arg);
+int dtls_socketless(struct dtls_sock **sockp, uint32_t htsize,
+		dtls_conn_h *connh, dtls_send_h *sendh, dtls_mtu_h *mtuh,
+		void *arg);
 struct udp_sock *dtls_udp_sock(struct dtls_sock *sock);
 void dtls_set_mtu(struct dtls_sock *sock, size_t mtu);
+size_t dtls_headroom(struct dtls_sock *sock);
+void dtls_set_headroom(struct dtls_sock *sock, size_t headroom);
 int dtls_connect(struct tls_conn **ptc, struct tls *tls,
 		 struct dtls_sock *sock, const struct sa *peer,
 		 dtls_estab_h *estabh, dtls_recv_h *recvh,
@@ -86,6 +96,7 @@
 		dtls_estab_h *estabh, dtls_recv_h *recvh,
 		dtls_close_h *closeh, void *arg);
 int dtls_send(struct tls_conn *tc, struct mbuf *mb);
+bool dtls_receive(struct dtls_sock *sock, struct sa *src, struct mbuf *mb);
 void dtls_set_handlers(struct tls_conn *tc, dtls_estab_h *estabh,
 		       dtls_recv_h *recvh, dtls_close_h *closeh, void *arg);
 const struct sa *dtls_peer(const struct tls_conn *tc);