Closed Prototik closed 1 year ago
I've fixed the handling of DATA when no actual data is given.
While using External auth works fine, we also want to run on platforms where is unix sockets not supported (i'm looking at you, windows)
Windows does support Unix socket since Windows 10. Using TCP should always work but is a lot slower than using UnixSockets.
Windows does support Unix socket since Windows 10.
Yeah, I know that, but we have users on win7 (even couple on winxp), so we cannot relay on that. TCP is fine, IPC don't transfer a lot of data, speed should not be issue.
Thanks for fix!
In my current project we're using dbus-java as client side implementation of p2p ipc. The server is written in rust using zbus library. While using External auth works fine, we also want to run on platforms where is unix sockets not supported (i'm looking at you, windows). So we need to use something else, eg tcp transport is fine, but External auth not applicable to it, so we left over with cookie and anonymous. As a POC I tried to launch unix (not related to the transport, tcp affected too) anonymous p2p server, but dbus-java crashing somewhere in the auth logic:
It happens because auth logic assumes DATA message from SASL will always contains some data:
But as you can see it's not always the case and zbus sending empty DATA for some reason. Seems like it's valid case as it's documented in dbus specification:
Some SASL mechanisms support sending an "empty string"; FIXME we need some way to do this.