Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/uipc_socket.c
Show First 20 Lines • Show All 123 Lines • ▼ Show 20 Lines | |||||
#include <sys/file.h> /* for struct knote */ | #include <sys/file.h> /* for struct knote */ | ||||
#include <sys/hhook.h> | #include <sys/hhook.h> | ||||
#include <sys/kernel.h> | #include <sys/kernel.h> | ||||
#include <sys/khelp.h> | #include <sys/khelp.h> | ||||
#include <sys/ktls.h> | #include <sys/ktls.h> | ||||
#include <sys/event.h> | #include <sys/event.h> | ||||
#include <sys/eventhandler.h> | #include <sys/eventhandler.h> | ||||
#include <sys/poll.h> | #include <sys/poll.h> | ||||
#include <sys/priv.h> | |||||
#include <sys/proc.h> | #include <sys/proc.h> | ||||
#include <sys/protosw.h> | #include <sys/protosw.h> | ||||
#include <sys/sbuf.h> | #include <sys/sbuf.h> | ||||
#include <sys/socket.h> | #include <sys/socket.h> | ||||
#include <sys/socketvar.h> | #include <sys/socketvar.h> | ||||
#include <sys/resourcevar.h> | #include <sys/resourcevar.h> | ||||
#include <net/route.h> | #include <net/route.h> | ||||
#include <sys/signalvar.h> | #include <sys/signalvar.h> | ||||
▲ Show 20 Lines • Show All 2,953 Lines • ▼ Show 20 Lines | case SO_USER_COOKIE: | ||||
sizeof val32); | sizeof val32); | ||||
if (error) | if (error) | ||||
goto bad; | goto bad; | ||||
so->so_user_cookie = val32; | so->so_user_cookie = val32; | ||||
break; | break; | ||||
case SO_SNDBUF: | case SO_SNDBUF: | ||||
case SO_RCVBUF: | case SO_RCVBUF: | ||||
case SO_RCVBUFFORCE: | |||||
case SO_SNDLOWAT: | case SO_SNDLOWAT: | ||||
case SO_RCVLOWAT: | case SO_RCVLOWAT: | ||||
error = sooptcopyin(sopt, &optval, sizeof optval, | error = sooptcopyin(sopt, &optval, sizeof optval, | ||||
sizeof optval); | sizeof optval); | ||||
if (error) | if (error) | ||||
goto bad; | goto bad; | ||||
/* | /* | ||||
* Values < 1 make no sense for any of these options, | * Values < 1 make no sense for any of these options, | ||||
* so disallow them. | * so disallow them. | ||||
*/ | */ | ||||
if (optval < 1) { | if (optval < 1) { | ||||
error = EINVAL; | error = EINVAL; | ||||
goto bad; | |||||
} | |||||
if (sopt->sopt_name == SO_RCVBUFFORCE) { | |||||
if (sopt->sopt_td != NULL) | |||||
error = priv_check(sopt->sopt_td, | |||||
PRIV_NETINET_RCVBUFFORCE); | |||||
if (error != 0) | |||||
goto bad; | goto bad; | ||||
} | } | ||||
error = sbsetopt(so, sopt->sopt_name, optval); | error = sbsetopt(so, sopt->sopt_name, optval); | ||||
break; | break; | ||||
case SO_SNDTIMEO: | case SO_SNDTIMEO: | ||||
case SO_RCVTIMEO: | case SO_RCVTIMEO: | ||||
#ifdef COMPAT_FREEBSD32 | #ifdef COMPAT_FREEBSD32 | ||||
▲ Show 20 Lines • Show All 1,197 Lines • Show Last 20 Lines |