This will allow a server to disable listeners by default and then
let later configuration re-enable them. In particular, this lets the X
server disable inet and unix listen sockets by default while still
providing a '-listen' command line option to re-enable them later on.

Signed-off-by: Keith Packard <[email protected]>
---
 Xtrans.c | 25 +++++++++++++++++++++++++
 Xtrans.h |  4 ++++
 2 files changed, 29 insertions(+)

diff --git a/Xtrans.c b/Xtrans.c
index 2880803..bfba1ad 100644
--- a/Xtrans.c
+++ b/Xtrans.c
@@ -804,6 +804,31 @@ TRANS(NoListen) (const char * protocol)
 }
 
 int
+TRANS(Listen) (const char * protocol)
+{
+   Xtransport *trans;
+   int i = 0, ret = 0;
+
+   if ((trans = TRANS(SelectTransport)(protocol)) == NULL)
+   {
+       prmsg (1,"TransListen: unable to find transport: %s\n",
+              protocol);
+
+       return -1;
+   }
+   if (trans->flags & TRANS_ALIAS) {
+       if (trans->nolisten)
+          while (trans->nolisten[i]) {
+              ret |= TRANS(Listen)(trans->nolisten[i]);
+              i++;
+       }
+   }
+
+   trans->flags &= ~TRANS_NOLISTEN;
+   return ret;
+}
+
+int
 TRANS(IsListening) (const char * protocol)
 {
    Xtransport *trans;
diff --git a/Xtrans.h b/Xtrans.h
index 6decc6b..026fbd7 100644
--- a/Xtrans.h
+++ b/Xtrans.h
@@ -311,6 +311,10 @@ int TRANS(NoListen) (
     const char*         /* protocol*/
 );
 
+int TRANS(Listen) (
+    const char*         /* protocol*/
+);
+
 int TRANS(IsListening) (
     const char*         /* protocol*/
 );
-- 
2.1.0

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to