diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | channels.c | 34 | ||||
-rw-r--r-- | pathnames.h | 7 |
3 files changed, 23 insertions, 25 deletions
@@ -3,6 +3,11 @@ | |||
3 | server. I have found this necessary to avoid server hangs with X input | 3 | server. I have found this necessary to avoid server hangs with X input |
4 | extensions (e.g. kinput2). Enable by setting the environment variable | 4 | extensions (e.g. kinput2). Enable by setting the environment variable |
5 | "GNOME_SSH_ASKPASS_NOGRAB" | 5 | "GNOME_SSH_ASKPASS_NOGRAB" |
6 | - OpenBSD CVS Sync | ||
7 | - stevesk@cvs.openbsd.org 2001/12/08 17:49:28 | ||
8 | [channels.c pathnames.h] | ||
9 | use only one path to X11 UNIX domain socket vs. an array of paths | ||
10 | to try. report from djast@cs.toronto.edu. ok markus@ | ||
6 | 11 | ||
7 | 20011219 | 12 | 20011219 |
8 | - (stevesk) OpenBSD CVS sync X11 localhost display | 13 | - (stevesk) OpenBSD CVS sync X11 localhost display |
@@ -7031,4 +7036,4 @@ | |||
7031 | - Wrote replacements for strlcpy and mkdtemp | 7036 | - Wrote replacements for strlcpy and mkdtemp |
7032 | - Released 1.0pre1 | 7037 | - Released 1.0pre1 |
7033 | 7038 | ||
7034 | $Id: ChangeLog,v 1.1693 2001/12/20 23:28:07 djm Exp $ | 7039 | $Id: ChangeLog,v 1.1694 2001/12/21 01:39:51 djm Exp $ |
diff --git a/channels.c b/channels.c index 40a86dccb..97a865f56 100644 --- a/channels.c +++ b/channels.c | |||
@@ -39,7 +39,7 @@ | |||
39 | */ | 39 | */ |
40 | 40 | ||
41 | #include "includes.h" | 41 | #include "includes.h" |
42 | RCSID("$OpenBSD: channels.c,v 1.146 2001/12/06 18:20:32 stevesk Exp $"); | 42 | RCSID("$OpenBSD: channels.c,v 1.147 2001/12/08 17:49:28 stevesk Exp $"); |
43 | 43 | ||
44 | #include "ssh.h" | 44 | #include "ssh.h" |
45 | #include "ssh1.h" | 45 | #include "ssh1.h" |
@@ -54,6 +54,7 @@ RCSID("$OpenBSD: channels.c,v 1.146 2001/12/06 18:20:32 stevesk Exp $"); | |||
54 | #include "canohost.h" | 54 | #include "canohost.h" |
55 | #include "key.h" | 55 | #include "key.h" |
56 | #include "authfd.h" | 56 | #include "authfd.h" |
57 | #include "pathnames.h" | ||
57 | 58 | ||
58 | 59 | ||
59 | /* -- channel core */ | 60 | /* -- channel core */ |
@@ -2491,34 +2492,21 @@ x11_create_display_inet(int x11_display_offset, int gateway_ports) | |||
2491 | return display_number; | 2492 | return display_number; |
2492 | } | 2493 | } |
2493 | 2494 | ||
2494 | #ifndef X_UNIX_PATH | ||
2495 | #define X_UNIX_PATH "/tmp/.X11-unix/X" | ||
2496 | #endif | ||
2497 | |||
2498 | static int | 2495 | static int |
2499 | connect_local_xsocket(u_int dnr) | 2496 | connect_local_xsocket(u_int dnr) |
2500 | { | 2497 | { |
2501 | static const char *const x_sockets[] = { | ||
2502 | X_UNIX_PATH "%u", | ||
2503 | "/var/X/.X11-unix/X" "%u", | ||
2504 | "/usr/spool/sockets/X11/" "%u", | ||
2505 | NULL | ||
2506 | }; | ||
2507 | int sock; | 2498 | int sock; |
2508 | struct sockaddr_un addr; | 2499 | struct sockaddr_un addr; |
2509 | const char *const * path; | ||
2510 | 2500 | ||
2511 | for (path = x_sockets; *path; ++path) { | 2501 | sock = socket(AF_UNIX, SOCK_STREAM, 0); |
2512 | sock = socket(AF_UNIX, SOCK_STREAM, 0); | 2502 | if (sock < 0) |
2513 | if (sock < 0) | 2503 | error("socket: %.100s", strerror(errno)); |
2514 | error("socket: %.100s", strerror(errno)); | 2504 | memset(&addr, 0, sizeof(addr)); |
2515 | memset(&addr, 0, sizeof(addr)); | 2505 | addr.sun_family = AF_UNIX; |
2516 | addr.sun_family = AF_UNIX; | 2506 | snprintf(addr.sun_path, sizeof addr.sun_path, _PATH_UNIX_X, dnr); |
2517 | snprintf(addr.sun_path, sizeof addr.sun_path, *path, dnr); | 2507 | if (connect(sock, (struct sockaddr *) & addr, sizeof(addr)) == 0) |
2518 | if (connect(sock, (struct sockaddr *) & addr, sizeof(addr)) == 0) | 2508 | return sock; |
2519 | return sock; | 2509 | close(sock); |
2520 | close(sock); | ||
2521 | } | ||
2522 | error("connect %.100s: %.100s", addr.sun_path, strerror(errno)); | 2510 | error("connect %.100s: %.100s", addr.sun_path, strerror(errno)); |
2523 | return -1; | 2511 | return -1; |
2524 | } | 2512 | } |
diff --git a/pathnames.h b/pathnames.h index 0470a2159..1b223e392 100644 --- a/pathnames.h +++ b/pathnames.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pathnames.h,v 1.9 2001/06/23 02:34:30 markus Exp $ */ | 1 | /* $OpenBSD: pathnames.h,v 1.10 2001/12/08 17:49:28 stevesk Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -123,6 +123,11 @@ | |||
123 | #define _PATH_XAUTH "/usr/X11R6/bin/xauth" | 123 | #define _PATH_XAUTH "/usr/X11R6/bin/xauth" |
124 | #endif | 124 | #endif |
125 | 125 | ||
126 | /* UNIX domain socket for X11 server; displaynum will replace %u */ | ||
127 | #ifndef _PATH_UNIX_X | ||
128 | #define _PATH_UNIX_X "/tmp/.X11-unix/X%u" | ||
129 | #endif | ||
130 | |||
126 | /* for scp */ | 131 | /* for scp */ |
127 | #ifndef _PATH_CP | 132 | #ifndef _PATH_CP |
128 | #define _PATH_CP "cp" | 133 | #define _PATH_CP "cp" |