Print this page
*** 22,32 ****
/*
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
*/
/*
! * Copyright (c) 2015, Joyent, Inc. All rights reserved.
*/
#include <sys/types.h>
#include <sys/param.h>
#include <sys/systm.h>
--- 22,32 ----
/*
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
*/
/*
! * Copyright (c) 2014, Joyent, Inc. All rights reserved.
*/
#include <sys/types.h>
#include <sys/param.h>
#include <sys/systm.h>
*** 1322,1351 ****
goto space_check;
}
}
}
- mutex_enter(&so->so_lock);
- if (so->so_krecv_cb != NULL) {
- boolean_t cont;
- so_krecv_f func = so->so_krecv_cb;
- void *arg = so->so_krecv_arg;
-
- mutex_exit(&so->so_lock);
- cont = func(so, mp, msg_size, flags & MSG_OOB, arg);
- mutex_enter(&so->so_lock);
- if (cont == B_TRUE) {
- space_left = so->so_rcvbuf;
- } else {
- so->so_rcv_queued = so->so_rcvlowat;
- *errorp = ENOSPC;
- space_left = -1;
- }
- goto done_unlock;
- }
- mutex_exit(&so->so_lock);
-
if (flags & MSG_OOB) {
so_queue_oob(so, mp, msg_size);
mutex_enter(&so->so_lock);
goto space_check;
}
--- 1322,1331 ----
*** 1620,1636 ****
(so->so_mode & SM_CONNREQUIRED)) {
SO_UNBLOCK_FALLBACK(so);
return (ENOTCONN);
}
- mutex_enter(&so->so_lock);
- if (so->so_krecv_cb != NULL) {
- mutex_exit(&so->so_lock);
- return (EOPNOTSUPP);
- }
- mutex_exit(&so->so_lock);
-
if (msg->msg_flags & MSG_PEEK)
msg->msg_flags &= ~MSG_WAITALL;
if (so->so_mode & SM_ATOMIC)
msg->msg_flags |= MSG_TRUNC;
--- 1600,1609 ----