[PATCH:xscope] Add support for process ID and names
alan.coopersmith at oracle.com
Sun Feb 17 23:04:41 UTC 2019
On 08/ 5/15 08:17 AM, Peter Wu wrote:
> Adds the process ID and name of the other side. Useful if you have
> multiple clients. Support for OpenBSD could be added in theory since
> it has a similar "struct sockpeercred" structure (not sure about
> process name though).
> After this change, the process ID and name (when available) will be
> appended between parentheses:
> 0.01: Client (pid 23433 xdpyinfo) --> 4 bytes
> ............REQUEST: ListExtensions
> 0.01: 332 bytes <-- X11 Server (pid 8290 Xorg)
> ..............REPLY: ListExtensions
> names: (29)
> Signed-off-by: Peter Wu <peter at lekensteyn.nl>
> In presence of multiple clients, it is nice to immediately recognize the origin.
> This patch adds that for Unix domain sockets on Linux. It should also be
> possible to do this on OpenBSD (add ifdef __OpenBSD__ and use "struct
> sockpeercred cred"), but I cannot test that nor do I know how to retrieve the
> command name.
> The buffer sizes are quite arbitrary (but chosen to be "large enough"). I have
> picked the FDDescriptor struct to store these properties since these are per-fd
> properties. For clarity, the functions are decomposed this way and put in a
> separate file rather than polluting fd.c.
Thanks! And sorry for the long delay in processing.
I've applied your patch (with the Linux support) now:
and applied a patch on top to add Solaris support:
I'd imagine that adding support for other OS'es will look a lot like the
code in the Xserver's DetermineClientCmd in os/client.c and the pid portion
of the Xserver's GetLocalClientCreds in os/access.c from:
but will leave adding that as an exercise for those running those OS'es to
-Alan Coopersmith- alan.coopersmith at oracle.com
Oracle Solaris Engineering - https://blogs.oracle.com/alanc
More information about the xorg-devel