aboutsummaryrefslogtreecommitdiff
path: root/server.c
Commit message (Collapse)AuthorAge
...
* 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.
* lockf is entirely useless and it was a mistake to change to it, go backnicm2014-07-21
| | | | | to using flock which actually works sensibly. Also always retry the lock to fix a potential race, and add some extra logging.
* Now that cmdlists are reference counted, there is no need for two-stepnicm2014-05-14
| | | | deletion via the dead_key_bindings tree. From Keith Amling.
* There is no longer a need for a paste_stack struct or for global_buffersnicm2014-04-24
| | | | to be global. Move to paste.c.
* Some more long lines.nicm2014-04-17
|
* Do not run any command line command from the client which starts thenicm2013-10-20
| | | | | | server until after the configuration file completes. This prevents it racing against run-shell or if-shell in .tmux.conf that run in the background.
* Rename global configuration define.Nicholas Marriott2013-04-24
|
* Add a command queue to standardize and simplify commands that call otherNicholas Marriott2013-03-24
| | | | | | | | | | | | | | | | | | | | | | commands and allow a command to block execution of subsequent commands. This allows run-shell and if-shell to be synchronous which has been much requested. Each client has a default command queue and commands are consumed one at a time from it. A command may suspend execution from the queue by returning CMD_RETURN_WAIT and then resume it by calling cmd_continue() - for example run-shell does this from the callback that is fired after the job is freed. When the command queue becomes empty, command clients are automatically exited (unless attaching). A callback is also fired - this is used for nested commands in, for example, if-shell which can block execution of the client's cmdq until a new cmdq becomes empty. Also merge all the old error/info/print functions together and lose the old curclient/cmdclient distinction - a cmdq is bound to one client (or none if in the configuration file), this is a command client if c->session is NULL otherwise an attached client.
* No more lint means no more ARGSUSED.Nicholas Marriott2013-03-22
|
* Fix argument order in a log statement.Nicholas Marriott2012-12-06
|
* Use a utility function for common code to show errors in config file,Nicholas Marriott2012-11-19
| | | | from Thomas Adam.
* xfree is not particularly helpful, remove it. From Thomas Adam.Nicholas Marriott2012-07-10
|
* Stop accepting new clients for 1 second on EMFILE/ENFILE. Based onNicholas Marriott2012-04-11
| | | | ongoing fixes to other daemons by Theo.
* Use a lock file and flock() to serialize server start, avoids problemsNicholas Marriott2012-03-09
| | | | | when running a bunch of tmux from cron at the same time. Based on a diff from Tim Ruehsen.
* Give each pane created in a tmux server a unique id (starting from 0),Nicholas Marriott2011-03-27
| | | | | put it in the TMUX_PANE environment variable and accept it as a target. Suggested by and with testing and tweaks from Ben Boeckel.
* Use LIST_* not SLIST_*.Nicholas Marriott2011-01-26
|
* Move all calls to fcntl(...O_NONBLOCK) into a function and clear theNicholas Marriott2011-01-08
| | | | | flag on the stdio file descriptors before closing them (fixes things like "tmux ls && cat").
* Don't reset the activity timer for unattached sessions every second,Nicholas Marriott2011-01-01
| | | | | | | this screws up the choice of most-recently-used. Instead, break the time update into a little function and do it when the session is attached. Pointed out by joshe@.
* Change from a per-session stack of buffers to one global stack which isNicholas Marriott2010-12-30
| | | | | | | much more convenient and also simplifies lot of code. This renders copy-buffer useless and makes buffer-limit now a server option. By Tiago Cunha.
* Store sessions in an RB tree by name rather than a list, this is tidierNicholas Marriott2010-12-21
| | | | | | | | | and allows them to easily be shown sorted in various lists (list-sessions/choose-sessions). Keep a session index which is used in a couple of places internally but make it an ever-increasing number rather than filling in gaps with new sessions.
* Merge the before and after attach client code into one in client.cNicholas Marriott2010-10-18
| | | | (instead of two in tmux.c and client.c).
* Trying to set FD_CLOEXEC on every fd is a lost cause, just useNicholas Marriott2010-10-16
| | | | closefrom() before exec.
* Two new options:Nicholas Marriott2010-09-26
| | | | | | | | | | | | - server option "exit-unattached" makes the server exit when no clients are attached, even if sessions are present; - session option "destroy-unattached" destroys a session once no clients are attached to it. These are useful for preventing tmux remaining in the background where it is undesirable and when using tmux as a login shell to keep a limit on new sessions.
* Modify the permissions on the socket when adding or removing +x to showNicholas Marriott2010-09-26
| | | | attached sessions, rather than replacing them.
* Do not call event_del() for signals after fork(), just use sigaction()Nicholas Marriott2010-08-19
| | | | | directly instead - calling libevent functions after fork() w/o event_reinit() is a bad idea, even if in this case it was harmless.
* switch back to kqueue for now, since (a) kqueue has been fixed to dealTheo Deraadt2010-08-04
| | | | | | with strange devices and (b) since there appears to be a bull in the poll code in libevent as well... requested by nicm who is away
* kqueue(2) is currently broken when used with /dev/null and a few otherNicholas Marriott2010-07-24
| | | | | | | | devices. An upcoming fix for some problems with the client stdout/stderr handling relies on it working, so make tmux force libevent to use poll(2) via EVENT_NOKQUEUE, until we have fixed kqueue.
* Give tmux sockets (but not the containing folder) groupNicholas Marriott2010-06-21
| | | | | permissions. This allows hardlinks to the sockets to be used more easily.
* Put this back in with the initialisation in the right order.Nicholas Marriott2010-05-04
|
* Revert last change, it appears to be broken somehow.Nicholas Marriott2010-05-04
|