mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 05:21:10 +00:00
Merge branch 'obsd-master'
This commit is contained in:
47
server.c
47
server.c
@ -45,7 +45,6 @@ struct clients clients;
|
||||
int server_fd;
|
||||
int server_shutdown;
|
||||
struct event server_ev_accept;
|
||||
struct event server_ev_second;
|
||||
|
||||
struct session *marked_session;
|
||||
struct winlink *marked_winlink;
|
||||
@ -62,8 +61,6 @@ void server_signal_callback(int, short, void *);
|
||||
void server_child_signal(void);
|
||||
void server_child_exited(pid_t, int);
|
||||
void server_child_stopped(pid_t, int);
|
||||
void server_second_callback(int, short, void *);
|
||||
void server_lock_sessions(void);
|
||||
|
||||
/* Set marked pane. */
|
||||
void
|
||||
@ -162,9 +159,8 @@ server_create_socket(void)
|
||||
int
|
||||
server_start(int lockfd, char *lockfile)
|
||||
{
|
||||
int pair[2];
|
||||
struct timeval tv;
|
||||
char *cause;
|
||||
int pair[2];
|
||||
char *cause;
|
||||
|
||||
/* The first client is special and gets a socketpair; create it. */
|
||||
if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, pair) != 0)
|
||||
@ -244,11 +240,6 @@ server_start(int lockfd, char *lockfile)
|
||||
|
||||
server_add_accept(0);
|
||||
|
||||
memset(&tv, 0, sizeof tv);
|
||||
tv.tv_sec = 1;
|
||||
evtimer_set(&server_ev_second, server_second_callback, NULL);
|
||||
evtimer_add(&server_ev_second, &tv);
|
||||
|
||||
set_signals(server_signal_callback);
|
||||
server_loop();
|
||||
status_prompt_save_history();
|
||||
@ -499,37 +490,3 @@ server_child_stopped(pid_t pid, int status)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Handle once-per-second timer events. */
|
||||
void
|
||||
server_second_callback(unused int fd, unused short events, unused void *arg)
|
||||
{
|
||||
struct timeval tv;
|
||||
|
||||
server_lock_sessions();
|
||||
|
||||
evtimer_del(&server_ev_second);
|
||||
memset(&tv, 0, sizeof tv);
|
||||
tv.tv_sec = 1;
|
||||
evtimer_add(&server_ev_second, &tv);
|
||||
}
|
||||
|
||||
/* Lock any sessions which have timed out. */
|
||||
void
|
||||
server_lock_sessions(void)
|
||||
{
|
||||
struct session *s;
|
||||
int timeout;
|
||||
time_t t;
|
||||
|
||||
t = time(NULL);
|
||||
RB_FOREACH(s, sessions, &sessions) {
|
||||
if (s->flags & SESSION_UNATTACHED)
|
||||
continue;
|
||||
timeout = options_get_number(&s->options, "lock-after-time");
|
||||
if (timeout > 0 && t > s->activity_time.tv_sec + timeout) {
|
||||
server_lock_session(s);
|
||||
recalculate_sizes();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user