Mario Klebsch wrote (in a message from Sunday 28)
 > 
 > The first problem I found was, that no XDMCP datagrams arrived on my 
 > xdm server. As the reason for this I found out, that at least on MacOSX 
 > sendto() does not tolerate its tolen argument being 128 for IPv4 
 > adresses. In xc/programs/Xserver/os/xdmcp.c at the end of 
 > send_query_msg(), XdmcpFlush() is called and sizeof (ManagerAddress) is 
 > given as the size of the address. On my system, it is 128. XdmcpFlush() 
 > passes this parameter to sendto(), which returns EINVAL on my system 
 > (BTW, the return code of sendto() in XdmcpFlush() is ignored). When I 
 > change XdmcpFlush() to force tolen to 16, the XDMCP datagrams are send 
 > and can be seen on the xdm-server using ethereal.

I've commited a fix for this problem. 
Thanks for the report. 

 > 
 > After seeing the XDMCP datagrams, the problem still was not solved. I 
 > suddenly got an out of memory error. It turned out, that this error was 
 > send from the xdm server. In fact, I use kdm and have installed 
 > KED-3.1.1a. The reason for this failure is that in the XDMCP request 
 > datagram, a list of connection types and connection addresses is send 
 > to the xdm server. It does contain four addresses, three IPv6 addresses 
 > and the fourth one is an IPv4 address. Since the kdm was not able to 
 > handle IPv6 addresses, an internal function returned NULL, which was 
 > converted to "out of memory". This in fact is a problem of kdm, but 
 > IMHO the Xserver should avoid triggering this bug.
 > 
 > There might be several ways to avoid this. First, the XDMCP request 
 > datagram could only include addresses of the same IP version that XDMCP 
 > itself uses. It might cause problems, when the Xserver and xdm are 
 > running on the same host and unix:0 is excluded from the address list 
 > by this measure.
 > 
 > One could also change the order of addresses in the XDMCP request 
 > datagram. I have not tried it, but it seems, that at least kdm does 
 > simply use the first address given in the XDMCP request datagram.
 > 
 > After I changed XdmcpRegisterConnection() to ignore IPv6 addresses, I 
 > finally managed to get a session running. I usually use the -query 
 > <host> -once arguments to Xserver to connect to xdm.
 > 

I'm not sure about what to do here. There's definatly a bug in KDM if
it assumes that it will only get AF_INET type addresses. It should be
reported to the KDE team. 
Changing the order in which the addresses are sent may hide the
problem a bit longer though. 


                                        Matthieu
_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel

Reply via email to