aboutsummaryrefslogtreecommitdiff
path: root/server.c
Commit message (Collapse)AuthorAge
* Instead of numbering session groups, give them a name which may be givennicm2017-02-09
| | | | | to -t instead of a target session. Also allow them to contain only one session.
* Do not execute commands for a client until it has identified, fixesnicm2016-11-12
| | | | problem reported by Frank Terbeck.
* Notifys can go via the command queue instead of using their own queue.nicm2016-10-16
|
* Rewrite command queue handling. Each client still has a command queue,nicm2016-10-16
| | | | | | | | | | | | | | | 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.
* Drain notifys once at the end of the server loop instead of doing itnicm2016-10-15
| | | | from the end of every command queue (which could be nested).
* Loads more static, except for cmd-*.c and window-*.c.nicm2016-10-10
|
* tmux: only consider ACCESSPERMS for setting mode on socket_path.semarie2016-07-07
| | | | | | | it explicitly removes any S_ISUID|S_ISGID|S_ISTXT bits, instead of letting pledge(2) silenciously remove them. ok nicm@ beck@ deraadt@
* Bump the listen() backlog up, some people have scripts that run up a lotnicm2016-03-30
| | | | of clients quickly.
* I no longer use my SourceForge address so replace it.nicm2016-01-19
|
* Add infrastructure to work out the best target given a pane or windownicm2015-12-16
| | | | alone and use it to add pane_died and pane_exited hooks.
* Make the marked pane a cmd_find_state.nicm2015-12-15
|
* Do lock failures slightly better, return a special value so we don'tnicm2015-11-24
| | | | unlink the wrong thing.
* Remove the -I part of show-messages which isn't really that useful; thenicm2015-11-24
| | | | | server start time can now be accessed with a new start_time format (use: tmux display -p '#{t:start_time}')
* Make the log stuff a bit tidier with some helper functions.nicm2015-11-24
|
* Add getpw to pledge, makes tmux work in YP environments, discovered bynicm2015-11-22
| | | | matthieu, ok deraadt
* Use __unused rather than rolling our own.nicm2015-11-18
|
* Accidentally turned off pledge, turn it back on.nicm2015-11-15
|
* Push stdout and stderr to clients more aggressively, and add an event tonicm2015-11-14
| | | | continue if the send fails.
* Tidy utf8.c a little: build table on first use, and make utf8_width takenicm2015-11-12
| | | | a u_int rather than splitting and then combining again in utf8_split.
* The output log is only useful once and it means creating a file, so opennicm2015-10-31
| | | | it once at startup instead of in every call to tty_open.
* Move struct options into options.c.nicm2015-10-27
|
* Break the common process set up, event loop and imsg dispatch codenicm2015-10-27
| | | | | between server and client out into a separate internal API. This will make it easier to add another process.
* tmux can call pledge() in main with large set and then reduce itnicm2015-10-23
| | | | | slightly in the server to "stdio rpath wpath cpath fattr unix recvfd proc exec tty ps".
* This should not be changed.nicm2015-10-22
|
* Rename shutdown to exit.nicm2015-10-22
|
* Userspace doesn't need to use SUN_LEN(): connect() and bind() must acceptguenther2015-10-11
| | | | | | sizeof(struct sockaddr_un), so do the simple, portable thing ok beck@ deraadt@
* Move initial conf load into cfg.c.nicm2015-09-01
|
* Event base does not need to be global.nicm2015-08-30
|
* We already loop over the windows in server_client_loop, so don't do itnicm2015-08-29
| | | | again in server_loop just to check names.
* Move alerts onto events rather than checking every loop.nicm2015-08-29
|
* Remove unused prototypes.nicm2015-08-28
|
* Per-session timers for locking, and remove the global one-second timer.nicm2015-08-28
|
* Remove the lock-server option which is a bit redundant, it isn't thatnicm2015-08-28
| | | | different without it.
* Give clock mode its own timer.nicm2015-08-28
|
* Run status update on a per-client timer at status-interval.nicm2015-08-28
|
* Move format job cleanup onto its own timer.nicm2015-08-28
|
* Add an option (history-file) for a file to save/restore command promptnicm2015-07-20
| | | | history, from Olof-Joachim Frahm.
* Similarly, for sessions use a callback to free rather than checkingnicm2015-06-05
| | | | every loop.
* Instead of putting dead clients on a list and checking it every loop,nicm2015-06-05
| | | | | | | use event_once to queue a callback to deal with them. Also dead clients with references would never actually be freed because the wrap-up functions (the callback for stdin, or status_prompt_clear) would never be called. So call them in server_client_lost.
* Add support for a single "marked pane". There is one marked pane in thenicm2015-06-04
| | | | | | | | | server at a time; it may be toggled or cleared with select-pane -m and -M (the border is highlighted). A new target '~' or '{marked}' specifies the marked pane to commands and it is the default target for the swap-pane and join-pane -s flag (this makes them much simpler to use - mark the source pane and then change to the target pane to run swapp or joinp).
* Clear signal handlers before event_reinit as apparently it can otherwisenicm2015-06-01
| | | | cause libevent to go strange.
* does not need syslog.hderaadt2015-05-31
|
* Move the jobs output cache into the formats code so that #() work morenicm2015-05-27
| | | | generally (for example, again working in set-titles-string).
* Convert clients list into a TAILQ.nicm2015-04-24
|
* Change the windows array into an RB tree and fix some places where wenicm2015-04-22
| | | | were only looking at the first winlink for a window in a session.
* window_index is only used in one place (window_destroy) so inline it there.nicm2015-04-22
|
* Do not die on USR1 if any of the socket parent directories arenicm2015-04-21
| | | | missing. Reported by Robin Powell.
* Add pane_dead_status for exit status of dead panes.nicm2014-12-09
|
* Move cfg_causes local into cfg.c and remove struct causelist.nicm2014-10-27
|
* Wake up any clients waiting with the wait-for command when the servernicm2014-09-01
| | | | exits.