diff options
| author | 2020-01-08 16:27:40 +0000 | |
|---|---|---|
| committer | 2020-01-08 16:27:40 +0000 | |
| commit | 36b1b8b4dfaf3411193c17c2462937014292f2df (patch) | |
| tree | 81f30bc60ac32c23151dd9b7753c67c177381297 /sys/kern/sys_socket.c | |
| parent | Convert infinite sleeps to tsleep_nsec(9). (diff) | |
| download | wireguard-openbsd-36b1b8b4dfaf3411193c17c2462937014292f2df.tar.xz wireguard-openbsd-36b1b8b4dfaf3411193c17c2462937014292f2df.zip | |
Unify handling of ioctls FIOSETOWN/SIOCSPGRP/TIOCSPGRP and
FIOGETOWN/SIOCGPGRP/TIOCGPGRP. Do this by determining the meaning of
the ID parameter inside the sigio code. Also add cases for FIOSETOWN
and FIOGETOWN where there have been TIOCSPGRP and TIOCGPGRP before.
These changes allow removing the ID translation from sys_fcntl() and
sys_ioctl().
Idea from NetBSD
OK mpi@, claudio@
Diffstat (limited to 'sys/kern/sys_socket.c')
| -rw-r--r-- | sys/kern/sys_socket.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/sys/kern/sys_socket.c b/sys/kern/sys_socket.c index a8eab48eeb0..55ec42ea8d0 100644 --- a/sys/kern/sys_socket.c +++ b/sys/kern/sys_socket.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sys_socket.c,v 1.43 2020/01/05 13:46:02 visa Exp $ */ +/* $OpenBSD: sys_socket.c,v 1.44 2020/01/08 16:27:41 visa Exp $ */ /* $NetBSD: sys_socket.c,v 1.13 1995/08/12 23:59:09 mycroft Exp $ */ /* @@ -111,18 +111,16 @@ soo_ioctl(struct file *fp, u_long cmd, caddr_t data, struct proc *p) *(int *)data = so->so_rcv.sb_datacc; break; - case TIOCSPGRP: - /* FALLTHROUGH */ + case FIOSETOWN: case SIOCSPGRP: - error = sigio_setown(&so->so_sigio, *(int *)data); - break; - - case TIOCGPGRP: - *(int *)data = -sigio_getown(&so->so_sigio); + case TIOCSPGRP: + error = sigio_setown(&so->so_sigio, cmd, data); break; + case FIOGETOWN: case SIOCGPGRP: - *(int *)data = sigio_getown(&so->so_sigio); + case TIOCGPGRP: + sigio_getown(&so->so_sigio, cmd, data); break; case SIOCATMARK: |
