2008/5/27 Kjartan Maraas <kmaraas(a)broadpark.no>:
#ifdef HAVE_X11_XTRANS_XTRANS_H
/* By default, IceListenForConnections will open one socket for each
* transport type known to X. We don't want connections from remote
* hosts, so for security reasons it would be best if ICE didn't
* even open any non-local sockets. So we use an internal ICElib
* method to disable them here. Unfortunately, there is no way to
* ask X what transport types it knows about, so we're forced to
* guess.
*/
_IceTransNoListen ("tcp");
#endif
[...]
if (!IceListenForConnections (&num_listeners, &listeners,
sizeof (error), error))
gsm_initialization_error (TRUE, _("Could not create ICE listening socket:
%s"), error);
umask (saved_umask);
/* Find the local socket in the returned socket list. */
local_listener = -1;
for (i = 0; i < num_listeners; i++)
{
char *id = IceGetListenConnectionString (listeners[i]);
if (!strncmp (id, "local/", sizeof ("local/") - 1))
{
local_listener = i;
Bet this is picking up the "abstract socket" listener, and not getting
the "real" unix socket one. This might explain a connection problem.