summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2009-07-22 21:58:56 +0000
committerNicholas Marriott <nicm@openbsd.org>2009-07-22 21:58:56 +0000
commitbb14c36a27d308281af32dfa2e2f9b25d9755537 (patch)
tree4c6e4406a5919fcbc8c8af9c7c22fe9fd456655c
parent5ee84436c8bd77800fc2c04a8c5b20442078cde0 (diff)
Pass a set of flags into client_init rather than just a start_server
variable. Only one flag now but more to come later.
-rw-r--r--client.c6
-rw-r--r--tmux.c9
2 files changed, 7 insertions, 8 deletions
diff --git a/client.c b/client.c
index a017e7a7..5ad15321 100644
--- a/client.c
+++ b/client.c
@@ -36,7 +36,7 @@
void client_handle_winch(struct client_ctx *);
int
-client_init(char *path, struct client_ctx *cctx, int start_server, int flags)
+client_init(char *path, struct client_ctx *cctx, int cmdflags, int flags)
{
struct sockaddr_un sa;
struct stat sb;
@@ -53,7 +53,7 @@ client_init(char *path, struct client_ctx *cctx, int start_server, int flags)
setproctitle("client (%s)", rpathbuf);
if (lstat(path, &sb) != 0) {
- if (start_server && errno == ENOENT) {
+ if (cmdflags & CMD_STARTSERVER && errno == ENOENT) {
if ((cctx->srv_fd = server_start(path)) == -1)
goto start_failed;
goto server_started;
@@ -79,7 +79,7 @@ client_init(char *path, struct client_ctx *cctx, int start_server, int flags)
if (connect(
cctx->srv_fd, (struct sockaddr *) &sa, SUN_LEN(&sa)) == -1) {
if (errno == ECONNREFUSED) {
- if (unlink(path) != 0 || !start_server)
+ if (unlink(path) != 0 || !(cmdflags & CMD_STARTSERVER))
goto not_found;
if ((cctx->srv_fd = server_start(path)) == -1)
goto start_failed;
diff --git a/tmux.c b/tmux.c
index 9ca1783f..2a155d57 100644
--- a/tmux.c
+++ b/tmux.c
@@ -213,7 +213,7 @@ main(int argc, char **argv)
struct passwd *pw;
char *s, *path, *label, *cause, *home, *pass = NULL;
char cwd[MAXPATHLEN];
- int retcode, opt, flags, unlock, start_server;
+ int retcode, opt, flags, unlock, cmdflags = 0;
unlock = flags = 0;
label = path = NULL;
@@ -390,7 +390,7 @@ main(int argc, char **argv)
cmdlist = NULL;
if ((pass = getpass("Password: ")) == NULL)
exit(1);
- start_server = 0;
+ cmdflags &= ~CMD_STARTSERVER;
} else {
if (argc == 0) {
cmd = xmalloc(sizeof *cmd);
@@ -407,17 +407,16 @@ main(int argc, char **argv)
exit(1);
}
}
- start_server = 0;
TAILQ_FOREACH(cmd, cmdlist, qentry) {
if (cmd->entry->flags & CMD_STARTSERVER) {
- start_server = 1;
+ cmdflags |= CMD_STARTSERVER;
break;
}
}
}
memset(&cctx, 0, sizeof cctx);
- if (client_init(path, &cctx, start_server, flags) != 0)
+ if (client_init(path, &cctx, cmdflags, flags) != 0)
exit(1);
xfree(path);