libxtrans provides TransNoListen() to set the 'don't listen' flag for a particular transport, but there is no interface to query the state of that flag
This is a bit of a problem for the XWin server, as it wants to start some helper clients (for clipboard integration and integrated window management), so needs to know what transports the server is listening on to construct appropriate display names for those clients. Add TransIsListening() to discover if TransNoListen() has been called for a particular protocol or not Signed-off-by: Jon TURNEY <[email protected]> --- Xtrans.c | 16 ++++++++++++++++ Xtrans.h | 4 ++++ 2 files changed, 20 insertions(+) diff --git a/Xtrans.c b/Xtrans.c index 0799f04..eb40184 100644 --- a/Xtrans.c +++ b/Xtrans.c @@ -770,6 +770,22 @@ TRANS(NoListen) (const char * protocol) } int +TRANS(IsListening) (char * protocol) +{ + Xtransport *trans; + + if ((trans = TRANS(SelectTransport)(protocol)) == NULL) + { + prmsg (1,"TransIsListening: unable to find transport: %s\n", + protocol, 0, 0); + + return 0; + } + + return (trans->flags & TRANS_NOLISTEN); +} + +int TRANS(ResetListener) (XtransConnInfo ciptr) { diff --git a/Xtrans.h b/Xtrans.h index 2945b2a..1b48429 100644 --- a/Xtrans.h +++ b/Xtrans.h @@ -307,6 +307,10 @@ int TRANS(NoListen) ( const char* /* protocol*/ ); +int TRANS(IsListening) ( + char* /* protocol*/ +); + int TRANS(ResetListener)( XtransConnInfo /* ciptr */ ); -- 1.8.3.1 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
