summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRick Macklem <rmacklem@FreeBSD.org>2022-05-14 12:56:50 -0700
committerSebastian Huber <sebastian.huber@embedded-brains.de>2022-07-07 14:23:25 +0200
commite86ac20e9f49755ef19d3505230115383def62e3 (patch)
tree2f444b3dd381890a607e5082b46003fc9a9112d4
parentWiden ifnet_detach_sxlock coverage (diff)
downloadrtems-libbsd-e86ac20e9f49755ef19d3505230115383def62e3.tar.bz2
uipc_socket.c: Modify MSG_TLSAPPDATA to only do Alert Records
Without this patch, the MSG_TLSAPPDATA flag would cause soreceive_generic() to return ENXIO for any non-application data record in a TLS receive stream. This works ok for TLS1.2, since Alert records appear to be the only non-application data records received. However, for TLS1.3, there can be post-handshake handshake records, such as NewSessionKey sent to the client from the server. These handshake records cannot be handled by the upcall which does an SSL_read() with length == 0. It appears that the client can simply throw away these NewSessionKey records, but to do so, it needs to receive them within the kernel. This patch modifies the semantics of MSG_TLSAPPDATA slightly, so that it only applies to Alert records and not Handshake records. It is needed to allow the krpc to work with KTLS1.3. Reviewed by: hselasky MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D35170
-rw-r--r--rtemsbsd/include/machine/_kernel_socket.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/rtemsbsd/include/machine/_kernel_socket.h b/rtemsbsd/include/machine/_kernel_socket.h
index dba4694f..3acee460 100644
--- a/rtemsbsd/include/machine/_kernel_socket.h
+++ b/rtemsbsd/include/machine/_kernel_socket.h
@@ -46,7 +46,7 @@
#define MSG_SOCALLBCK 0x00010000 /* for use by socket callbacks - soreceive (TCP) */
#define MSG_MORETOCOME 0x00100000 /* additional data pending */
-#define MSG_TLSAPPDATA 0x00200000 /* only soreceive() app. data (TLS) */
+#define MSG_TLSAPPDATA 0x00200000 /* do not soreceive() alert rec. (TLS) */
#define CMSG_ALIGN(n) _ALIGN(n)