mirror of
https://github.com/tmate-io/tmate.git
synced 2024-12-23 23:29:15 +01:00
Pass a set of flags into client_init rather than just a start_server
variable. Only one flag now but more to come later.
This commit is contained in:
parent
5ee84436c8
commit
bb14c36a27
6
client.c
6
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;
|
||||
|
9
tmux.c
9
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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user