[PATCH libxtrans 1/2] Define TRANS_RECEIVED flag for transports
Hans de Goede
hdegoede at redhat.com
Mon Dec 2 11:44:34 PST 2013
From: Łukasz Stelmach <l.stelmach at samsung.com>
The flag is to be used to mark transports related to sockets
received from systemd.
Signed-off-by: Łukasz Stelmach <l.stelmach at samsung.com>
Signed-off-by: Hans de Goede <hdegoede at redhat.com>
Acked-by: Peter Hutterer <peter.hutterer at who-t.net>
---
Xtrans.c | 28 ++++++++++++++++++++++++++++
Xtrans.h | 4 ++++
Xtransint.h | 1 +
3 files changed, 33 insertions(+)
diff --git a/Xtrans.c b/Xtrans.c
index 735d7b8..e478422 100644
--- a/Xtrans.c
+++ b/Xtrans.c
@@ -744,6 +744,34 @@ TRANS(CreateListener) (XtransConnInfo ciptr, char *port, unsigned int flags)
}
int
+TRANS(Received) (const char * protocol)
+
+{
+ Xtransport *trans;
+ int i = 0, ret = 0;
+
+ prmsg (5, "Received(%s)\n", protocol);
+
+ if ((trans = TRANS(SelectTransport)(protocol)) == NULL)
+ {
+ prmsg (1,"Received: unable to find transport: %s\n",
+ protocol);
+
+ return -1;
+ }
+ if (trans->flags & TRANS_ALIAS) {
+ if (trans->nolisten)
+ while (trans->nolisten[i]) {
+ ret |= TRANS(Received)(trans->nolisten[i]);
+ i++;
+ }
+ }
+
+ trans->flags |= TRANS_RECEIVED;
+ return ret;
+}
+
+int
TRANS(NoListen) (const char * protocol)
{
diff --git a/Xtrans.h b/Xtrans.h
index 69accd7..1754720 100644
--- a/Xtrans.h
+++ b/Xtrans.h
@@ -303,6 +303,10 @@ int TRANS(CreateListener)(
unsigned int /* flags */
);
+int TRANS(Received) (
+ const char* /* protocol*/
+);
+
int TRANS(NoListen) (
const char* /* protocol*/
);
diff --git a/Xtransint.h b/Xtransint.h
index 1f32f0c..958f533 100644
--- a/Xtransint.h
+++ b/Xtransint.h
@@ -335,6 +335,7 @@ typedef struct _Xtransport_table {
#define TRANS_NOUNLINK (1<<4) /* Don't unlink transport endpoints */
#define TRANS_ABSTRACT (1<<5) /* Use abstract sockets if available */
#define TRANS_NOXAUTH (1<<6) /* Don't verify authentication (because it's secure some other way at the OS layer) */
+#define TRANS_RECEIVED (1<<7) /* The fd for this has already been opened by someone else. */
/* Flags to preserve when setting others */
#define TRANS_KEEPFLAGS (TRANS_NOUNLINK|TRANS_ABSTRACT)
--
1.8.4.2
More information about the xorg-devel
mailing list