summaryrefslogtreecommitdiff
path: root/fd.c
diff options
context:
space:
mode:
authorJeremy Huddleston <jeremyhu@apple.com>2010-05-12 18:12:37 -0700
committerJeremy Huddleston <jeremyhu@apple.com>2010-05-14 13:04:40 -0700
commit26db4f6adf5a43f49b7941bab90c05c1e271d6b0 (patch)
tree3ab313848f34a515717564855eb16afa177e1ebd /fd.c
parentdf598a664bf5c22e9fa55a15f38780c55cac47d2 (diff)
downloadxscope-26db4f6adf5a43f49b7941bab90c05c1e271d6b0.tar.gz
Fallback on other transports.
This adds support for --disable-unix-transport Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Diffstat (limited to 'fd.c')
-rw-r--r--fd.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/fd.c b/fd.c
index 0945d41..0298727 100644
--- a/fd.c
+++ b/fd.c
@@ -258,7 +258,7 @@ AcceptConnection (
FD
MakeConnection(
- char *server,
+ const char *server,
short port,
int report,
XtransConnInfo *trans_conn /* transport connection object */
@@ -268,9 +268,14 @@ MakeConnection(
#ifdef USE_XTRANS
char address[256];
int connect_stat;
-
- snprintf (address, sizeof(address), "%s:%ld", server, port - ServerBasePort);
- if ( (*trans_conn = _X11TransOpenCOTSClient(address)) == NULL ) {
+ const char *protocols[] = {"local", "unix", "tcp", "inet6", "inet", NULL};
+ const char **s;
+
+ for(*trans_conn = NULL, s = protocols; *trans_conn == NULL && *s; s++) {
+ snprintf (address, sizeof(address), "%s/%s:%ld", *s, server, port - ServerBasePort);
+ *trans_conn = _X11TransOpenCOTSClient(address);
+ }
+ if(*trans_conn == NULL) {
debug(1,(stderr, "OpenCOTSClient failed\n"));
panic("Can't open connection to Server");
}