Page MenuHomeFreeBSD

D8955.id23348.diff
No OneTemporary

D8955.id23348.diff

Index: sys/kern/sys_socket.c
===================================================================
--- sys/kern/sys_socket.c
+++ sys/kern/sys_socket.c
@@ -604,6 +604,8 @@
if (td->td_ru.ru_msgrcv != ru_before)
job->msgrcv = 1;
} else {
+ if (!TAILQ_EMPTY(&sb->sb_aiojobq))
+ flags |= MSG_MORETOCOME;
uio.uio_rw = UIO_WRITE;
ru_before = td->td_ru.ru_msgsnd;
#ifdef MAC
Index: sys/kern/uipc_socket.c
===================================================================
--- sys/kern/uipc_socket.c
+++ sys/kern/uipc_socket.c
@@ -1182,6 +1182,7 @@
(resid <= 0)) ?
PRUS_EOF :
/* If there is more to send set PRUS_MORETOCOME */
+ (flags & MSG_MORETOCOME) ||
(resid > 0 && space > 0) ? PRUS_MORETOCOME : 0,
top, addr, control, td);
if (dontroute) {
@@ -1368,6 +1369,7 @@
(resid <= 0)) ?
PRUS_EOF :
/* If there is more to send set PRUS_MORETOCOME. */
+ (flags & MSG_MORETOCOME) ||
(resid > 0 && space > 0) ? PRUS_MORETOCOME : 0,
top, addr, control, td);
if (dontroute) {
Index: sys/sys/socket.h
===================================================================
--- sys/sys/socket.h
+++ sys/sys/socket.h
@@ -435,6 +435,7 @@
#endif
#ifdef _KERNEL
#define MSG_SOCALLBCK 0x10000 /* for use by socket callbacks - soreceive (TCP) */
+#define MSG_MORETOCOME 0x20000 /* additional data pending */
#endif
/*

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 10, 12:52 AM (19 h, 7 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31183499
Default Alt Text
D8955.id23348.diff (1 KB)

Event Timeline