Created attachment 68141 [details] proposed patch The code is trying getpeername() and falling back to getsockname() if the first fails, but fails to set gotsockname=1 if the getpeername() call succeeds. This bug is preventing mit magic cooling from beeing sent from Unix domain clients on OpenBSD (and probably other BSDs too).
That patch looks wrong (and I am not talking about that tabulator). Effictively, it completely removes getsockname variable since now both cases set it to 1. Could you tell us more about the issue that you are trying to fix? On Linux, getpeername() succeeds, too, and libxcb still works. Also, I am pretty sure that libxcb isn't broken since years on BSD and no one noticed.
(In reply to comment #0) > Created attachment 68141 [details] > proposed patch > > The code is trying getpeername() and falling back to getsockname() if > the first fails, but fails to set gotsockname=1 if the getpeername() > call succeeds. > > This bug is preventing mit magic cooling from beeing sent from Unix ^^^^^^^ cookie > domain clients on OpenBSD (and probably other BSDs too).
(In reply to comment #1) > That patch looks wrong (and I am not talking about that tabulator). > Effictively, it completely removes getsockname variable since now both cases > set it to 1. > > Could you tell us more about the issue that you are trying to fix? On Linux, > getpeername() succeeds, too, and libxcb still works. Also, I am pretty sure > that libxcb isn't broken since years on BSD and no one noticed. My issue is running xdm using Xnest on display :1 (in order to test xdm session related stuff), using :1 local /usr/X11R6/bin/Xnest :1 in /etx/X11/xdm/Xservers In that mode, xrdb (used by the login widget) fails to connect to the X server and end up with an ugly widget. Furthermore, the client session also fails to connect. This used to work before xcb 1.8 (but I'm not sure exactly when it broke). Now I see that my analysis of the issue is indeed wrong. My patch fixes it by some kind of magic coincidence. I'll dig further and reopen a bug later.
If you have some known good&bad versions, doing a git bisect might help figuring out what happened.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.