Desabilitando a extensão de um servidor Xorg em tempo de execução (para novos clientes)?

4

Eu tenho um servidor Xorg antigo cuja extensão "Render" parece estar com problemas (se habilitada, a maioria das fontes são invisíveis, a menos que pairem sobre eles - depois de atualizar os pacotes com clientes X e bibliotecas) .

Assim, o problema é resolvido para novas instâncias do servidor Xorg, adicionando a /etc/X11/xorg.conf :

Section "Extensions"
    Option      "RENDER" "Disable"
EndSection

Mas e se eu quiser continuar uma sessão X, mas fazer novos clientes não usarem a extensão? (Logicamente, logicamente, clientes antigos não podem ser usados para não usá-los, mas e os novos? ) Algumas opções são:

  1. Posso desativar uma das extensões do servidor durante a execução enquanto o servidor está em execução?
  2. Posso dizer aos clientes para não usá-los (por exemplo, aqueles escritos com um kit de ferramentas específico)?
  3. Existe um "proxy X" que pode ser usado para o meu objetivo: o proxy simplesmente não pode anunciar que tem uma extensão "Render" ou traduzir os pedidos que a envolvem e encaminhar tudo para o X "físico" servidor, e meus novos clientes, em seguida, conectar-se ao visor do proxy.
por imz -- Ivan Zakharyaschev 07.04.2014 / 02:01

1 resposta

2

Para uso local, você pode conectar xtrace entre seu cliente e seu servidor e fazer com que o cliente não veja nenhuma extensão usando o xtrace -e alternar:

  -e | --denyextensions
         Modify all server replies to say there are no extensions
         available.  (As xtrace does supports only a small number of
         extensions anyway and calls all extended requests "unknown"
         and  all replies to such requests "unexpected").

Você não verá extensões, por isso não ajuda em "desativar" / ocultar uma única extensão. Para este caso, você poderia tentar modificar a fonte (eu acho que parse.c: replyQueryExtension () é o lugar).

A segunda pegada é que usar o xtrace provavelmente deixará seu cliente lento.

    
por 25.04.2016 / 23:12