1
0
mirror of https://github.com/tmate-io/tmate-ssh-server.git synced 2020-11-18 19:53:51 -08:00

Sync OpenBSD patchset 245:

Add a TTY_OPENED flag and tidy a little.
This commit is contained in:
Tiago Cunha 2009-08-14 21:20:01 +00:00
parent 5cc971facd
commit 0714e41148
2 changed files with 20 additions and 19 deletions

3
tmux.h
View File

@ -1,4 +1,4 @@
/* $Id: tmux.h,v 1.412 2009-08-14 21:17:54 tcunha Exp $ */ /* $Id: tmux.h,v 1.413 2009-08-14 21:20:01 tcunha Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -867,6 +867,7 @@ struct tty {
#define TTY_ESCAPE 0x4 #define TTY_ESCAPE 0x4
#define TTY_UTF8 0x8 #define TTY_UTF8 0x8
#define TTY_STARTED 0x10 #define TTY_STARTED 0x10
#define TTY_OPENED 0x20
int flags; int flags;
int term_flags; int term_flags;

36
tty.c
View File

@ -1,4 +1,4 @@
/* $Id: tty.c,v 1.123 2009-08-14 21:17:54 tcunha Exp $ */ /* $Id: tty.c,v 1.124 2009-08-14 21:20:01 tcunha Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -80,8 +80,11 @@ tty_open(struct tty *tty, const char *overrides, char **cause)
tty->log_fd = -1; tty->log_fd = -1;
tty->term = tty_term_find(tty->termname, tty->fd, overrides, cause); tty->term = tty_term_find(tty->termname, tty->fd, overrides, cause);
if (tty->term == NULL) if (tty->term == NULL) {
goto error; tty_close(tty);
return (-1);
}
tty->flags |= TTY_OPENED;
tty->in = buffer_create(BUFSIZ); tty->in = buffer_create(BUFSIZ);
tty->out = buffer_create(BUFSIZ); tty->out = buffer_create(BUFSIZ);
@ -95,12 +98,6 @@ tty_open(struct tty *tty, const char *overrides, char **cause)
tty_fill_acs(tty); tty_fill_acs(tty);
return (0); return (0);
error:
close(tty->fd);
tty->fd = -1;
return (-1);
} }
void void
@ -299,9 +296,6 @@ tty_get_acs(struct tty *tty, u_char ch)
void void
tty_close(struct tty *tty) tty_close(struct tty *tty)
{ {
if (tty->fd == -1)
return;
if (tty->log_fd != -1) { if (tty->log_fd != -1) {
close(tty->log_fd); close(tty->log_fd);
tty->log_fd = -1; tty->log_fd = -1;
@ -309,14 +303,20 @@ tty_close(struct tty *tty)
tty_stop_tty(tty); tty_stop_tty(tty);
tty_term_free(tty->term); if (tty->flags & TTY_OPENED) {
tty_keys_free(tty); tty_term_free(tty->term);
tty_keys_free(tty);
close(tty->fd); buffer_destroy(tty->in);
tty->fd = -1; buffer_destroy(tty->out);
buffer_destroy(tty->in); tty->flags &= ~TTY_OPENED;
buffer_destroy(tty->out); }
if (tty->fd != -1) {
close(tty->fd);
tty->fd = -1;
}
} }
void void