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> | #include <netdir.h> | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  | #define XSERV_t | ||||||
|  | #define TRANS_SERVER | ||||||
|  | #define TRANS_REOPEN | ||||||
|  | #include <X11/Xtrans/Xtrans.h> | ||||||
|  | 
 | ||||||
| #ifdef XDMCP | #ifdef XDMCP | ||||||
| #undef REQUEST | #undef REQUEST | ||||||
| 
 | 
 | ||||||
|  | @ -242,6 +247,14 @@ XdmcpUseMsg(void) | ||||||
|     ErrorF("-displayID display-id  manufacturer display ID for request\n"); |     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 | int | ||||||
| XdmcpOptions(int argc, char **argv, int i) | 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++); |         get_manager_by_name(argc, argv, i++); | ||||||
|         XDM_INIT_STATE = XDM_QUERY; |         XDM_INIT_STATE = XDM_QUERY; | ||||||
|         AccessUsingXdmcp(); |         AccessUsingXdmcp(); | ||||||
|  |         XdmcpDefaultListen(); | ||||||
|         return i + 1; |         return i + 1; | ||||||
|     } |     } | ||||||
|     if (strcmp(argv[i], "-broadcast") == 0) { |     if (strcmp(argv[i], "-broadcast") == 0) { | ||||||
|         XDM_INIT_STATE = XDM_BROADCAST; |         XDM_INIT_STATE = XDM_BROADCAST; | ||||||
|         AccessUsingXdmcp(); |         AccessUsingXdmcp(); | ||||||
|  |         XdmcpDefaultListen(); | ||||||
|         return i + 1; |         return i + 1; | ||||||
|     } |     } | ||||||
| #if defined(IPv6) && defined(AF_INET6) | #if defined(IPv6) && defined(AF_INET6) | ||||||
|  | @ -261,6 +276,7 @@ XdmcpOptions(int argc, char **argv, int i) | ||||||
|         i = get_mcast_options(argc, argv, ++i); |         i = get_mcast_options(argc, argv, ++i); | ||||||
|         XDM_INIT_STATE = XDM_MULTICAST; |         XDM_INIT_STATE = XDM_MULTICAST; | ||||||
|         AccessUsingXdmcp(); |         AccessUsingXdmcp(); | ||||||
|  |         XdmcpDefaultListen(); | ||||||
|         return i + 1; |         return i + 1; | ||||||
|     } |     } | ||||||
| #endif | #endif | ||||||
|  | @ -268,6 +284,7 @@ XdmcpOptions(int argc, char **argv, int i) | ||||||
|         get_manager_by_name(argc, argv, i++); |         get_manager_by_name(argc, argv, i++); | ||||||
|         XDM_INIT_STATE = XDM_INDIRECT; |         XDM_INIT_STATE = XDM_INDIRECT; | ||||||
|         AccessUsingXdmcp(); |         AccessUsingXdmcp(); | ||||||
|  |         XdmcpDefaultListen(); | ||||||
|         return i + 1; |         return i + 1; | ||||||
|     } |     } | ||||||
|     if (strcmp(argv[i], "-port") == 0) { |     if (strcmp(argv[i], "-port") == 0) { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue