b20a00f93e
Report better error from server when socket create fails, GitHub issue
...
1201.
2017-12-19 15:00:39 +00:00
a5fd5782f8
Show exit status and time in the remain-on-exit pane text, mostly from
...
Timo Boettcher in GitHub issue 1103.
2017-10-12 11:32:27 +00:00
932f6cfbfc
Because ignore SIGCHLD early, letting signal_del restore it doesn't work
...
correctly, so set it explicitly back to default (and the others for good
measure).
2017-07-14 18:49:07 +00:00
51112221ee
Block signals between forking and clearing signal handlers (or calling
...
event_reinit) - if the child gets a signal and fires the libevent signal
handler during this period it could write a signal into the parent's
signal pipe. GitHub issue 1001 from Aaron van Geffen.
2017-07-12 10:04:51 +00:00
0453ad0146
Move signal code into proc.c.
2017-07-12 09:24:17 +00:00
58b796608f
Some extra logging to show why tmux might exit.
2017-07-09 22:33:09 +00:00
28687f2d55
Do not close panes until process has exited and any outstanding data
...
has been written to the pipe-pane event if there is one. GitHub issue 991.
2017-07-03 08:16:03 +00:00
adf5628087
Support SIGUSR2 to stop and start logging for an existing server. Also
...
we currently only have two log levels so just use -v and -vv rather than
-v and -vvvv, and clarify the man page entry for -v.
2017-06-04 08:25:57 +00:00
2c9bdd9e32
Memory leaks, from David CARLIER.
2017-04-22 06:13:30 +00:00
efaf4c16cf
Make the cmd_find_* functions more obvious when looking for a client,
...
rather than having it inside other functions. Should be no change to the
way targets are resolved just yet.
2017-04-21 20:26:34 +00:00
428be9803c
History needs to be loaded after config parsing is done - now that
...
commands are queued, that's in cfg_done not after start_cfg finishes.
2017-04-21 14:04:54 +00:00
0b44ad99b5
If a #() command doesn't exit, use its most recent line of output (it
...
must be a full line). Don't let it redraw the status line more than once
a second.
Requested by someone about 10 years ago...
2017-04-20 09:20:22 +00:00
c6a3446398
Instead of numbering session groups, give them a name which may be given
...
to -t instead of a target session. Also allow them to contain only one
session.
2017-02-09 15:04:53 +00:00
b7398a4918
Do not execute commands for a client until it has identified, fixes
...
problem reported by Frank Terbeck.
2016-11-12 19:04:41 +00:00
026ad08b56
Notifys can go via the command queue instead of using their own queue.
2016-10-16 19:15:02 +00:00
ddc4512d2e
Rewrite command queue handling. Each client still has a command queue,
...
but there is also now a global command queue. Instead of command queues
being dispatched on demand from wherever the command happens to be
added, they are now all dispatched from the top level server
loop. Command queues may now also include callbacks as well as commands,
and items may be inserted after the current command as well as at the end.
This all makes command queues significantly more predictable and easier
to use, and avoids the complex multiple nested command queues used by
source-file, if-shell and friends.
A mass rename of struct cmdq to a better name (cmdq_item probably) is
coming.
2016-10-16 17:55:14 +00:00
9b3ae84993
Drain notifys once at the end of the server loop instead of doing it
...
from the end of every command queue (which could be nested).
2016-10-15 00:01:01 +00:00
c426e485e5
Loads more static, except for cmd-*.c and window-*.c.
2016-10-10 21:29:23 +00:00
fc118e13a9
tmux: only consider ACCESSPERMS for setting mode on socket_path.
...
it explicitly removes any S_ISUID|S_ISGID|S_ISTXT bits, instead of letting
pledge(2) silenciously remove them.
ok nicm@ beck@ deraadt@
2016-07-07 09:24:09 +00:00
ec82fcdfea
Bump the listen() backlog up, some people have scripts that run up a lot
...
of clients quickly.
2016-03-30 13:20:07 +00:00
995af0e2b7
I no longer use my SourceForge address so replace it.
2016-01-19 15:59:12 +00:00
021c64310d
Add infrastructure to work out the best target given a pane or window
...
alone and use it to add pane_died and pane_exited hooks.
2015-12-16 21:50:37 +00:00
12da13c9d1
Make the marked pane a cmd_find_state.
2015-12-15 00:00:01 +00:00
dca93c56e0
Do lock failures slightly better, return a special value so we don't
...
unlink the wrong thing.
2015-11-24 23:01:51 +00:00
1e2df2d464
Remove the -I part of show-messages which isn't really that useful; the
...
server start time can now be accessed with a new start_time format (use:
tmux display -p '#{t:start_time}')
2015-11-24 21:52:06 +00:00
9cccb8c115
Make the log stuff a bit tidier with some helper functions.
2015-11-24 21:19:46 +00:00
01a2ddf3f8
Add getpw to pledge, makes tmux work in YP environments, discovered by
...
matthieu, ok deraadt
2015-11-22 19:41:19 +00:00
577c0e3e5a
Use __unused rather than rolling our own.
2015-11-18 14:27:44 +00:00
a582b62287
Accidentally turned off pledge, turn it back on.
2015-11-15 14:32:48 +00:00
c56b81a2ce
Push stdout and stderr to clients more aggressively, and add an event to
...
continue if the send fails.
2015-11-14 09:41:06 +00:00
d6daf37df4
Tidy utf8.c a little: build table on first use, and make utf8_width take
...
a u_int rather than splitting and then combining again in utf8_split.
2015-11-12 12:19:57 +00:00
abb4e9e2fa
The output log is only useful once and it means creating a file, so open
...
it once at startup instead of in every call to tty_open.
2015-10-31 13:12:03 +00:00
44657bf932
Move struct options into options.c.
2015-10-27 15:58:42 +00:00
07b0ea03c3
Break the common process set up, event loop and imsg dispatch code
...
between server and client out into a separate internal API. This will
make it easier to add another process.
2015-10-27 13:23:24 +00:00
5383b047d1
tmux can call pledge() in main with large set and then reduce it
...
slightly in the server to "stdio rpath wpath cpath fattr unix recvfd
proc exec tty ps".
2015-10-23 16:07:29 +00:00
515dfea4b7
This should not be changed.
2015-10-22 10:48:30 +00:00
31fd071faa
Rename shutdown to exit.
2015-10-22 10:46:24 +00:00
241fd72f75
Userspace doesn't need to use SUN_LEN(): connect() and bind() must accept
...
sizeof(struct sockaddr_un), so do the simple, portable thing
ok beck@ deraadt@
2015-10-11 00:26:23 +00:00
83157c02d6
Move initial conf load into cfg.c.
2015-09-01 10:01:56 +00:00
dd92b6e83d
Event base does not need to be global.
2015-08-30 22:19:07 +00:00
b9f0571780
We already loop over the windows in server_client_loop, so don't do it
...
again in server_loop just to check names.
2015-08-29 08:54:41 +00:00
b5aaefc727
Move alerts onto events rather than checking every loop.
2015-08-29 08:30:54 +00:00
f957db81d9
Remove unused prototypes.
2015-08-28 13:21:25 +00:00
f6a0f8730e
Per-session timers for locking, and remove the global one-second timer.
2015-08-28 13:12:20 +00:00
675def0396
Remove the lock-server option which is a bit redundant, it isn't that
...
different without it.
2015-08-28 12:31:55 +00:00
6419f66523
Give clock mode its own timer.
2015-08-28 12:25:42 +00:00
75d10058a4
Run status update on a per-client timer at status-interval.
2015-08-28 12:16:28 +00:00
b6618b631b
Move format job cleanup onto its own timer.
2015-08-28 11:38:27 +00:00
92af3766ec
Add an option (history-file) for a file to save/restore command prompt
...
history, from Olof-Joachim Frahm.
2015-07-20 15:50:04 +00:00
641a9cd3f5
Similarly, for sessions use a callback to free rather than checking
...
every loop.
2015-06-05 18:18:32 +00:00