Print this page
XXXX adding PID information to netstat output

*** 121,130 **** --- 121,133 ---- flag &= ~FCREAT; /* paranoia */ mutex_enter(&so->so_lock); so->so_count++; mutex_exit(&so->so_lock); + if (!(curproc->p_flag & SSYS)) + sonode_insert_pid(so, curproc->p_pidp->pid_id); + ASSERT(so->so_count != 0); /* wraparound */ ASSERT(vp->v_type == VSOCK); return (0); }
*** 207,216 **** --- 210,235 ---- { struct sonode *so = VTOSO(vp); ASSERT(vp->v_type == VSOCK); + switch (cmd) { + case F_ASSOCI_PID: + if (cr != kcred) + return (EPERM); + if (!(curproc->p_flag & SSYS)) + sonode_insert_pid(so, (pid_t)arg); + return (0); + + case F_DASSOC_PID: + if (cr != kcred) + return (EPERM); + if (!(curproc->p_flag & SSYS)) + sonode_remove_pid(so, (pid_t)arg); + return (0); + } + return (socket_ioctl(so, cmd, arg, mode, cr, rvalp)); } /* * Allow any flags. Record FNDELAY and FNONBLOCK so that they can be inherited