diff options
author | 2009-11-02 13:41:25 +0000 | |
---|---|---|
committer | 2009-11-02 13:41:25 +0000 | |
commit | 986e2f3ea31990da0167d51fcb55fc7d7ce48b1a (patch) | |
tree | 404686afd59071d8898feefd76313f360606fae8 | |
parent | Reorder slightly to tidy code. (diff) | |
download | wireguard-openbsd-986e2f3ea31990da0167d51fcb55fc7d7ce48b1a.tar.xz wireguard-openbsd-986e2f3ea31990da0167d51fcb55fc7d7ce48b1a.zip |
There isn't much point in doing lstat before connect so instead just do connect
and handle ENOENT from it which is a little tidier.
-rw-r--r-- | usr.bin/tmux/client.c | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/usr.bin/tmux/client.c b/usr.bin/tmux/client.c index 32afa8c4bd6..bebe61e786f 100644 --- a/usr.bin/tmux/client.c +++ b/usr.bin/tmux/client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: client.c,v 1.27 2009/10/26 21:38:18 nicm Exp $ */ +/* $OpenBSD: client.c,v 1.28 2009/11/02 13:41:25 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -55,19 +55,6 @@ client_init(char *path, int cmdflags, int flags) strlcpy(rpathbuf, path, sizeof rpathbuf); setproctitle("client (%s)", rpathbuf); - if (lstat(path, &sb) != 0) { - if (cmdflags & CMD_STARTSERVER && errno == ENOENT) { - if ((fd = server_start(path)) == -1) - goto start_failed; - goto server_started; - } - goto not_found; - } - if (!S_ISSOCK(sb.st_mode)) { - errno = ENOTSOCK; - goto not_found; - } - memset(&sa, 0, sizeof sa); sa.sun_family = AF_UNIX; size = strlcpy(sa.sun_path, path, sizeof sa.sun_path); @@ -80,9 +67,14 @@ client_init(char *path, int cmdflags, int flags) fatal("socket failed"); if (connect(fd, (struct sockaddr *) &sa, SUN_LEN(&sa)) == -1) { - if (errno == ECONNREFUSED) { - if (unlink(path) != 0 || !(cmdflags & CMD_STARTSERVER)) + if (!(cmdflags & CMD_STARTSERVER)) + goto not_found; + switch (errno) { + case ECONNREFUSED: + if (unlink(path) != 0) goto not_found; + /* FALLTHROUGH */ + case ENOENT: if ((fd = server_start(path)) == -1) goto start_failed; goto server_started; |