os: XDMCP options like -query etc. should imply -listen tcp
In X server 1.17, the default configuration is now -nolisten tcp. In this configuration, XDMCP options don't work usefully, as the X server is not listening on the port for the display that it tells the display manager to connect to. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Colin Harrison <colin.harrison@virgin.net>
This commit is contained in:
		
							parent
							
								
									f42520c5f1
								
							
						
					
					
						commit
						491cf02e19
					
				
							
								
								
									
										17
									
								
								os/xdmcp.c
								
								
								
								
							
							
						
						
									
										17
									
								
								os/xdmcp.c
								
								
								
								
							|  | @ -48,6 +48,11 @@ | |||
| #include <netdir.h> | ||||
| #endif | ||||
| 
 | ||||
| #define XSERV_t | ||||
| #define TRANS_SERVER | ||||
| #define TRANS_REOPEN | ||||
| #include <X11/Xtrans/Xtrans.h> | ||||
| 
 | ||||
| #ifdef XDMCP | ||||
| #undef REQUEST | ||||
| 
 | ||||
|  | @ -242,6 +247,14 @@ XdmcpUseMsg(void) | |||
|     ErrorF("-displayID display-id  manufacturer display ID for request\n"); | ||||
| } | ||||
| 
 | ||||
| static void | ||||
| XdmcpDefaultListen(void) | ||||
| { | ||||
|     /* Even when configured --disable-listen-tcp, we should listen on tcp in
 | ||||
|        XDMCP modes */ | ||||
|     _XSERVTransListen("tcp"); | ||||
| } | ||||
| 
 | ||||
| int | ||||
| XdmcpOptions(int argc, char **argv, int i) | ||||
| { | ||||
|  | @ -249,11 +262,13 @@ XdmcpOptions(int argc, char **argv, int i) | |||
|         get_manager_by_name(argc, argv, i++); | ||||
|         XDM_INIT_STATE = XDM_QUERY; | ||||
|         AccessUsingXdmcp(); | ||||
|         XdmcpDefaultListen(); | ||||
|         return i + 1; | ||||
|     } | ||||
|     if (strcmp(argv[i], "-broadcast") == 0) { | ||||
|         XDM_INIT_STATE = XDM_BROADCAST; | ||||
|         AccessUsingXdmcp(); | ||||
|         XdmcpDefaultListen(); | ||||
|         return i + 1; | ||||
|     } | ||||
| #if defined(IPv6) && defined(AF_INET6) | ||||
|  | @ -261,6 +276,7 @@ XdmcpOptions(int argc, char **argv, int i) | |||
|         i = get_mcast_options(argc, argv, ++i); | ||||
|         XDM_INIT_STATE = XDM_MULTICAST; | ||||
|         AccessUsingXdmcp(); | ||||
|         XdmcpDefaultListen(); | ||||
|         return i + 1; | ||||
|     } | ||||
| #endif | ||||
|  | @ -268,6 +284,7 @@ XdmcpOptions(int argc, char **argv, int i) | |||
|         get_manager_by_name(argc, argv, i++); | ||||
|         XDM_INIT_STATE = XDM_INDIRECT; | ||||
|         AccessUsingXdmcp(); | ||||
|         XdmcpDefaultListen(); | ||||
|         return i + 1; | ||||
|     } | ||||
|     if (strcmp(argv[i], "-port") == 0) { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue