Changeset View
Changeset View
Standalone View
Standalone View
head/sys/kern/sys_socket.c
Show First 20 Lines • Show All 598 Lines • ▼ Show 20 Lines | #ifdef MAC | ||||
error = mac_socket_check_receive(fp->f_cred, so); | error = mac_socket_check_receive(fp->f_cred, so); | ||||
if (error == 0) | if (error == 0) | ||||
#endif | #endif | ||||
error = soreceive(so, NULL, &uio, NULL, NULL, &flags); | error = soreceive(so, NULL, &uio, NULL, NULL, &flags); | ||||
if (td->td_ru.ru_msgrcv != ru_before) | if (td->td_ru.ru_msgrcv != ru_before) | ||||
job->msgrcv = 1; | job->msgrcv = 1; | ||||
} else { | } else { | ||||
if (!TAILQ_EMPTY(&sb->sb_aiojobq)) | |||||
flags |= MSG_MORETOCOME; | |||||
uio.uio_rw = UIO_WRITE; | uio.uio_rw = UIO_WRITE; | ||||
ru_before = td->td_ru.ru_msgsnd; | ru_before = td->td_ru.ru_msgsnd; | ||||
#ifdef MAC | #ifdef MAC | ||||
error = mac_socket_check_send(fp->f_cred, so); | error = mac_socket_check_send(fp->f_cred, so); | ||||
if (error == 0) | if (error == 0) | ||||
#endif | #endif | ||||
error = sosend(so, NULL, &uio, NULL, NULL, flags, td); | error = sosend(so, NULL, &uio, NULL, NULL, flags, td); | ||||
if (td->td_ru.ru_msgsnd != ru_before) | if (td->td_ru.ru_msgsnd != ru_before) | ||||
▲ Show 20 Lines • Show All 188 Lines • Show Last 20 Lines |