Instant Terminal Sharing
Go to file
Nicholas Marriott 34a82e7629 Make all messages sent between the client and server fixed size.
This is the first of two changes to make the protocol more resilient and less
sensitive to other changes in the code, particularly with commands. The client
now packs argv into a buffer and sends it to the server for parsing, rather
than doing it itself and sending the parsed command data.

As a side-effect this also removes a lot of now-unused command marshalling
code.

Mixing a server without this change and a client with or vice versa will cause
tmux to hang or crash, please ensure that tmux is entirely killed before
upgrading.
2009-07-26 12:58:44 +00:00
array.h Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00
attributes.c Don't dereference NULL if buf winds up being empty. Can't happen 2009-06-02 11:14:08 +00:00
buffer-poll.c Nuke unused buffer functions. Found by lint. 2009-06-25 06:05:47 +00:00
buffer.c Nuke unused buffer functions. Found by lint. 2009-06-25 06:05:47 +00:00
cfg.c Unused prototypes. Found by lint, no binary change. 2009-06-25 06:00:45 +00:00
client-fn.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
client-msg.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
client.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
clock.c Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00
cmd-attach-session.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-bind-key.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-break-pane.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-choose-session.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-choose-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-clear-history.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-clock-mode.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-command-prompt.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-confirm-before.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-copy-buffer.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-copy-mode.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-delete-buffer.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-detach-client.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-display-message.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-down-pane.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-find-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-generic.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-has-session.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-if-shell.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-kill-pane.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-kill-server.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-kill-session.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-kill-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-last-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-link-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-list-buffers.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-list-clients.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-list-commands.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-list-keys.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-list-sessions.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-list-windows.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-list.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-load-buffer.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-lock-server.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-move-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-new-session.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-new-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-next-layout.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-next-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-paste-buffer.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-previous-layout.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-previous-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-refresh-client.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-rename-session.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-rename-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-resize-pane.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-respawn-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-rotate-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-save-buffer.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-scroll-mode.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-select-layout.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-select-pane.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-select-prompt.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-select-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-send-keys.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-send-prefix.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-server-info.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-set-buffer.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-set-option.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-set-password.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-set-window-option.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-show-buffer.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-show-options.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-show-window-options.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-source-file.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-split-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-start-server.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-string.c Expand leading tildes in arguments, from Tiage Cunha. 2009-07-13 18:49:36 +00:00
cmd-suspend-client.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-swap-pane.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-swap-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-switch-client.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-unbind-key.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-unlink-window.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd-up-pane.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
cmd.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
colour.c Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00
grid-view.c Support "alternate screen" mode (terminfo smcup/rmcup) typically used by full 2009-07-13 10:43:52 +00:00
grid.c Remove a couple of unused functions and fix a type ("FALLTHOUGH"), found by 2009-07-21 18:40:30 +00:00
input-keys.c Tidy up keys: use an enum for the key codes, and remove the macros which just 2009-07-21 17:57:29 +00:00
input.c Make some functions which return unused values void (mostly found by lint) and 2009-07-21 19:54:22 +00:00
key-bindings.c Permit commands to be bound to key presses without the prefix key first. The 2009-07-24 14:52:47 +00:00
key-string.c Accept lowercase c- and m- prefix as well as C- and M-. 2009-07-24 14:57:22 +00:00
layout-set.c Kill some dead stores and fix a null pointer deref, found by clang. 2009-07-20 07:31:10 +00:00
layout.c Improved layout code. 2009-07-19 13:21:40 +00:00
log.c Remove a couple of unused functions and fix a type ("FALLTHOUGH"), found by 2009-07-21 18:40:30 +00:00
Makefile tty_write is relatively short and the only function left in tty-write.c so move 2009-07-22 20:56:58 +00:00
mode-key.c C-d is delete as well in emacs mode. 2009-07-23 13:44:02 +00:00
names.c Just appending -l to $SHELL to create a login shell is wrong: -l is not POSIX, 2009-07-08 05:26:45 +00:00
options-cmd.c Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00
options.c Make some functions which return unused values void (mostly found by lint) and 2009-07-21 19:54:22 +00:00
paste.c Fix two copy/paste bugs: forbid zero-length buffers to prevent a fatal error 2009-07-02 16:15:43 +00:00
procname.c Also #ifndef nitems here, caught by Thomas Jeunet. 2009-06-26 10:55:37 +00:00
resize.c Improved layout code. 2009-07-19 13:21:40 +00:00
screen-redraw.c Use the full range of ACS line drawing characters to draw pane borders, 2009-07-24 19:14:38 +00:00
screen-write.c More tty code tidying: move the saved cursor/region position (from before the 2009-07-22 20:53:38 +00:00
screen.c When resizing a screen smaller in alternate screen mode, all the lines needed 2009-07-17 18:35:11 +00:00
server-fn.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
server-msg.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
server.c Permit commands to be bound to key presses without the prefix key first. The 2009-07-24 14:52:47 +00:00
session.c Rename the global options variables to be shorter and to make session options 2009-07-07 19:49:19 +00:00
status.c Remove a couple of unused functions and fix a type ("FALLTHOUGH"), found by 2009-07-21 18:40:30 +00:00
tmux.1 Permit commands to be bound to key presses without the prefix key first. The 2009-07-24 14:52:47 +00:00
tmux.c Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
tmux.h Make all messages sent between the client and server fixed size. 2009-07-26 12:58:44 +00:00
tty-keys.c Tidy up keys: use an enum for the key codes, and remove the macros which just 2009-07-21 17:57:29 +00:00
tty-term.c Since tmux doesn't actually need ncurses, use -lcurses/curses.h 2009-07-14 06:30:45 +00:00
tty.c tty_write is relatively short and the only function left in tty-write.c so move 2009-07-22 20:56:58 +00:00
utf8.c Miscellaneous unused functions, including one which was basically a 2009-06-25 06:15:04 +00:00
window-choose.c A similar for fix for window_choose: don't rely on the callback always being 2009-07-17 07:05:58 +00:00
window-clock.c Use gmtime_r so the current time isn't overwritten, the minute comparison works 2009-06-27 14:40:22 +00:00
window-copy.c Redraw after starting selection to correctly remove any existing selection. 2009-07-23 17:03:47 +00:00
window-more.c Miscellaneous unused functions, including one which was basically a 2009-06-25 06:15:04 +00:00
window-scroll.c Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00
window.c window_add_pane cannot fail, so remove the unused cause argument and don't 2009-07-22 21:34:36 +00:00
xmalloc.c Import tmux, a terminal multiplexor allowing (among other things) a single 2009-06-01 22:58:49 +00:00