summaryrefslogtreecommitdiffstats
path: root/sys/kern/sys_socket.c
diff options
context:
space:
mode:
authormpi <mpi@openbsd.org>2018-07-10 08:58:50 +0000
committermpi <mpi@openbsd.org>2018-07-10 08:58:50 +0000
commit30cae0e11a68544aad56fe31465ffb5607069c7a (patch)
tree8626bb6e60d911b2bd944df073b425039351382d /sys/kern/sys_socket.c
parentDrop the ignored selectors (tf_[defg]s) from the trap and interrupt frames. (diff)
downloadwireguard-openbsd-30cae0e11a68544aad56fe31465ffb5607069c7a.tar.xz
wireguard-openbsd-30cae0e11a68544aad56fe31465ffb5607069c7a.zip
Move socket & pipe specific logic in their ioctl handler.
ok visa@, tb@
Diffstat (limited to 'sys/kern/sys_socket.c')
-rw-r--r--sys/kern/sys_socket.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/kern/sys_socket.c b/sys/kern/sys_socket.c
index 8bf77ebb7aa..01e0ced2f43 100644
--- a/sys/kern/sys_socket.c
+++ b/sys/kern/sys_socket.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sys_socket.c,v 1.38 2018/06/06 06:55:22 mpi Exp $ */
+/* $OpenBSD: sys_socket.c,v 1.39 2018/07/10 08:58:50 mpi Exp $ */
/* $NetBSD: sys_socket.c,v 1.13 1995/08/12 23:59:09 mycroft Exp $ */
/*
@@ -109,12 +109,18 @@ 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 SIOCSPGRP:
so->so_pgid = *(int *)data;
so->so_siguid = p->p_ucred->cr_ruid;
so->so_sigeuid = p->p_ucred->cr_uid;
break;
+ case TIOCGPGRP:
+ *(int *)data = -so->so_pgid;
+ break;
+
case SIOCGPGRP:
*(int *)data = so->so_pgid;
break;