aboutsummaryrefslogtreecommitdiff
path: root/server.c
Commit message (Collapse)AuthorAge
...
* Sync OpenBSD patchset 635:Tiago Cunha2010-02-08
| | | | | | | Instead of bailing out on the first configuration file error, carry on, collecting all the errors, then start with the active window in more mode displaying them.
* Sync OpenBSD patchset 625:Tiago Cunha2010-02-02
| | | | | Ignore SIGHUP as well.
* Sync OpenBSD patchset 581:Tiago Cunha2009-12-04
| | | | | | | Massive spaces->tabs and trailing whitespace cleanup, hopefully for the last time now I've configured emacs to make them displayed in really annoying colours...
* Sync OpenBSD patchset 578:Tiago Cunha2009-12-04
| | | | | | Close the pane if the process died due to a signal, not just if it exited normally.
* Sync OpenBSD patchset 567:Tiago Cunha2009-11-28
| | | | | | Remove a couple of unused arguments where possible, and add /* ARGSUSED */ to the rest to reduce lint output.
* Sync OpenBSD patchset 535:Tiago Cunha2009-11-14
| | | | | Destroy panes immediately rather than checking them all every loop.
* Sync OpenBSD patchset 528:Tiago Cunha2009-11-13
| | | | | | Free the pane bufferevent when the fd is closed (the signal could come before the error callback).
* Sync OpenBSD patchset 527:Tiago Cunha2009-11-13
| | | | | | Only need to chmod +x or -x the socket when a client is created, lost or attached, rather than every event loop.
* OS X is still broken, so ask libevent not to use kqueue or poll.Nicholas Marriott2009-11-11
|
* Sync OpenBSD patchset 510:Tiago Cunha2009-11-08
| | | | | EVLOOP_ONCE takes care of the wakeup, so no need to call event_loopexit(NULL).
* Sync OpenBSD patchset 509:Tiago Cunha2009-11-08
| | | | | | Now all timers are events, there is no longer any need to wake up every 50 ms - only wake up when an event happens.
* Sync OpenBSD patchset 505:Tiago Cunha2009-11-08
| | | | | | Move status timer check into the global once-per-second timer, this could maybe be done better but one every second is better than once every 50 ms.
* Sync OpenBSD patchset 503:Tiago Cunha2009-11-08
| | | | | | Don't reenlist the client imsg event every loop, instead have a small function to it and call it after the event triggers or after a imsg is added.
* Sync OpenBSD patchset 500:Tiago Cunha2009-11-08
| | | | | Tell the client to exit on configuration file error.
* Sync OpenBSD patchset 498:Tiago Cunha2009-11-08
| | | | | | | | Convert the window pane (pty master side) fd over to use a bufferevent. The evbuffer API is very similar to the existing tmux buffer API so this was remarkably painless. Not many possible ways to do it, I suppose.
* Sync OpenBSD patchset 497:Tiago Cunha2009-11-08
| | | | | | Call event_init() before loading the config file, since potentially it could set up events.
* Sync OpenBSD patchset 493:Tiago Cunha2009-11-08
| | | | | Switch jobs over to use a bufferevent.
* Sync OpenBSD patchset 491:Tiago Cunha2009-11-08
| | | | | | | | | | | | Initial changes to move tmux to libevent. This moves the client-side loops are pretty much fully over to event-based only (tmux.c and client.c) but server-side (server.c and friends) treats libevent as a sort of clever poll, waking up after every event to run various things. Moving the server stuff over to bufferevents and timers and so on will come later.
* Sync OpenBSD patchset 483:Tiago Cunha2009-11-04
| | | | | | | | | | Change session and client activity and creation time members to have more meaningful names. Also, remove the code to try and update the session activity time for the command client when a command message is received as is pointless because it des not have a session.
* Sync OpenBSD patchset 476:Tiago Cunha2009-11-02
| | | | | Reorder slightly to tidy code.
* Sync OpenBSD patchset 468:Tiago Cunha2009-10-28
| | | | | Move the poll registration functions into the server-*.c files.
* Sync OpenBSD patchset 467:Tiago Cunha2009-10-28
| | | | | tabs are better; ok nicm
* Sync OpenBSD patchset 466:Tiago Cunha2009-10-28
| | | | | | Clear signal flags /before/ taking action and continue afterwards to reduce chance of dropping signals. Pointed out by deraadt@.
* Sync OpenBSD patchset 438:Tiago Cunha2009-10-23
| | | | | | | | | | | Split the server code handling clients, jobs and windows off into separate files from server.c (merging server-msg.c into the client file) and rather than iterating over each set after poll(), allow a callback to be specified when the fd is added and just walk once over the returned pollfds calling each callback where needed. More to come, getting this in so it is tested.
* Sync OpenBSD patchset 403:Tiago Cunha2009-10-15
| | | | | | When a session is unattached, reset its activity timer to prevent it locking instantly when reattached.
* Sync OpenBSD patchset 393:Tiago Cunha2009-10-15
| | | | | Similarly add a tty_cursor_pane function to tidy up most of the calls.
* Sync OpenBSD patchset 392:Tiago Cunha2009-10-15
| | | | | _absolute is redundant, just use tty_region.
* Sync OpenBSD patchset 391:Tiago Cunha2009-10-15
| | | | | | Cleanup: use two functions for region setting, one for absolute and one inside pane.
* Sync OpenBSD patchset 387:Tiago Cunha2009-10-12
| | | | | | | | | | | | | Add a pipe-pane command to allow a pane to be piped to a shell command, for example: pipe-pane 'cat >~/out' No arguments stops outputing and closes the pipe; the -o flag toggles a pipe and on and off (useful for key bindings). Suggested by espie@.
* Sync OpenBSD patchset 384:Tiago Cunha2009-10-12
| | | | | Switch run-shell over to queue the command in the background like #().
* Sync OpenBSD patchset 382:Tiago Cunha2009-10-12
| | | | | | Collect status from dead jobs and don't invoke the callback until both all input (the socket is closed) and status is available.
* Sync OpenBSD patchset 381:Tiago Cunha2009-10-12
| | | | | | | | | Clean up by introducing a wrapper struct for mouse clicks rather than passing three u_chars around. As a side-effect this fixes incorrectly rejecting high cursor positions (because it was comparing them as signed char), reported by Tom Doherty.
* Sync OpenBSD patchset 380:Tiago Cunha2009-10-12
| | | | | | Braek some bits out of server_fill_client() that aren't really related to polling into their own function.
* Sync OpenBSD patchset 379:Tiago Cunha2009-10-12
| | | | | | Put all jobs on a global all_jobs list and use that in server.c instead of running through all the clients.
* Sync OpenBSD patchset 374:Tiago Cunha2009-10-11
| | | | | | | | | | | | | | | | | | | Rather than running status-left, status-right and window title #() with popen immediately every redraw, queue them up and run them in the background, starting each once every status-interval. The actual status line uses the output from the last run. This brings several advantages: - tmux itself may be called from inside #() without causing the server to hang; - likewise, sleep or similar doesn't cause the server to block; - commands aren't run excessively often when redrawing; - commands shared by status-left and status-right, or used multiple times, will only be run once. run-shell and if-shell still use system()/popen() but will be changed over to use this too later.
* Sync OpenBSD patchset 373:Tiago Cunha2009-10-11
| | | | | | | | New option, mouse-select-pane. If on, the mouse may be used to select the current pane. Suggested by sthen@ and also by someone else ages ago who I have forgotten.
* Sync OpenBSD patchset 371:Tiago Cunha2009-10-11
| | | | | | | | | | Add "grouped sessions" which have independent name, options, current window and so on but where the linked windows are synchronized (ie creating, killing windows and so on are mirrored between the sessions). A grouped session may be created by passing -t to new-session. Had this around for a while, tested by a couple of people.
* Sync OpenBSD patchset 370:Tiago Cunha2009-10-11
| | | | | | | | | | | | | | | Support for individual session idle time locking. May be enabled by turning off the lock-server option (it is on by default). When this is off, each session locks when it has been idle for the lock-after-time setting. When on, the entire server locks when ALL sessions have been idle for their individual lock-after-time settings. This replaces one global-only option (lock-after-time) with another (lock-server), but the default behaviour is usually preferable so there don't seem to be many alternatives. Diff/idea largely from Thomas Adam, tweaked by me.
* Sync OpenBSD patchset 369:Tiago Cunha2009-10-11
| | | | | | | | | Instead of passing a struct pollfd ** around through various functions, build them into a tree and then convert into a flat poll array before and after poll. This adds a little code but should reduce annoying problems with ordering when adding new things that also need to be polled.
* Sync OpenBSD patchset 360:Tiago Cunha2009-10-06
| | | | | | | | If no target client is specified to commands which accept one, try to guess the current client, in a similar manner to how sessions already work: if the current session can be established and has only one client, use that; otherwise use the most recently created client.
* Sync OpenBSD patchset 352:Tiago Cunha2009-09-25
| | | | | Don't allow locked or suspended clients to limit the size of active clients.
* Sync OpenBSD patchset 349:Tiago Cunha2009-09-23
| | | | | | | On SIGTERM, just abandon any suspended/locked clients and leave them to it, otherwise the server will hang around (refusing new connections) until they exit properly.
* Sync OpenBSD patchset 347:Tiago Cunha2009-09-23
| | | | | | | | | | | | | | | | Remove the internal tmux locking and instead detach each client and run the command specified by a new option "lock-command" (by default "lock -np") in each client. This means each terminal has to be unlocked individually but simplifies the code and allows the system password to be used to unlock. Note that the set-password command is gone, so it will need to be removed from configuration files, and the -U command line flag has been removed. This is the third protocol version change so again it is best to stop the tmux server before upgrading.
* Sync OpenBSD patchset 343:Tiago Cunha2009-09-22
| | | | | | | | | | Permit multiple prefix keys to be defined, separated by commas, for example: set -g prefix ^a,^b Any key in the list acts as the prefix. The send-prefix command always sends the first key in the list.
* Sync OpenBSD patchset 332:Tiago Cunha2009-09-20
| | | | | Regularise some fatal messages.
* Sync OpenBSD patchset 331:Tiago Cunha2009-09-19
| | | | | | | New option, set-titles-string, to allow the window title to be specified (as for status-left/right) if set-titles is on. Also only update the title when the status line is being redrawn.
* Sync OpenBSD patchset 327:Tiago Cunha2009-09-15
| | | | | The default terminal size should be 80x24, not 80x25.
* Sync OpenBSD patchset 326:Tiago Cunha2009-09-15
| | | | | Nuke unused server_client_index function, pointed out by martynas@.
* Zap unused variables.Tiago Cunha2009-09-13
|
* Sync OpenBSD patchset 324:Tiago Cunha2009-09-13
| | | | | Tidy some common code for destroying sessions into a new function.