nicm
cd692b5a68
Add an ACL list for users connecting to the tmux socket. Users may be
...
forbidden from attaching, forced to attach read-only, or allowed to
attach read-write. A new command, server-access, configures the list.
tmux gets the user using getpeereid(3) of the client socket. Users must
still configure file system permissions manually. From Dallas Lyons and
others.
2022-05-30 12:48:57 +00:00
nicm
2da096d828
Exit on SIGHUP before attach also, GitHub issue 3084.
2022-02-28 09:34:57 +00:00
nicm
daec63e5e6
Replace %% in command lists (by copying them) for template arguments ,
...
this means they can be used with {} as well. Also make argument
processing from an existing vector preserve commands. GitHub issue 2858.
2021-08-27 17:25:55 +00:00
nicm
af3ffa9c41
Move the call to setupterm() into the client and have it pass the
...
results to the server over imsg, means the server does not need to enter
ncurses or read terminfo db. Old clients will not work with a new
server.
2021-02-17 07:18:36 +00:00
nicm
632636dba5
Do not care about the server socket closing if exiting anyway.
2021-02-12 06:52:48 +00:00
nicm
2b58c226db
Add a couple of helper functions, and flush imsgs on exit.
2021-02-11 09:39:29 +00:00
nicm
e40831a002
Move file handling protocol stuff all into file.c so it can be reused
...
more easily.
2021-02-11 08:28:45 +00:00
nicm
71c590a37f
Add -N flag to never start server even if command would normally do so,
...
GitHub issue 2523.
2021-01-17 16:17:41 +00:00
nicm
95841ba16a
With csh, a tmux client gets SIGTERM before SIGCONT when killed with
...
"kill %%", so when the client tells the server it got SIGCONT, don't use
bits that may already have been freed when it got SIGTERM. Also don't
print anything on exit if we get SIGTERM while suspended. Reported by
Theo.
2020-10-30 18:54:23 +00:00
nicm
86d6ac2f06
Fix warnings on some platforms with %llx and add a new message to handle
...
64-bit client flags.
2020-09-22 05:23:34 +00:00
nicm
2372b0fdc6
Add a flag to make a client wait for an empty line before exiting in
...
control mode to avoid stray commands ending up in the shell.
2020-06-18 08:34:22 +00:00
nicm
23d79cfda8
Instead of a buffer size limit on each pane, set a limit of 300 seconds
...
of data for each client in control mode.
2020-06-10 07:27:10 +00:00
nicm
a54a88edd6
Instead of sending all data to control mode clients as fast as possible,
...
add a limit of how much data will be sent to the client and try to use
it for panes with some degree of fairness. GitHub issue 2217, with
George Nachman.
2020-06-01 09:43:00 +00:00
nicm
ea610a3119
Pass the stdout file descriptor from the client as well as stdin and use
...
them for control clients directly instead of passing everything via the
client.
2020-05-26 08:41:47 +00:00
nicm
aa7dccf8e1
imsg.h needs uio.h, pointed out by deraadt
2020-05-08 14:15:11 +00:00
nicm
1574126e8a
Do not close the stdout file descriptor in control mode as it will be
...
needed for printing the exit messages. Fixes a bug when detaching with
iTerm2.
2020-04-27 08:35:09 +00:00
nicm
c91b4b2e14
Tidy up the terminal detection and feature code and add named sets of
...
terminal features, each of which are defined in one place and map to a
builtin set of terminfo(5) capabilities. Features can be specified based
on TERM with a new terminal-features option or with the -T flag when
running tmux. tmux will also detect a few common terminals from the DA
and DSR responses.
This is intended to make it easier to configure tmux's use of
terminfo(5) even in the presence of outdated ncurses(3) or terminfo(5)
databases or for features which do not yet have a terminfo(5) entry.
Instead of having to grok terminfo(5) capability names and what they
should be set to in the terminal-overrides option, the user can
hopefully just give tmux a feature name and let it do the right thing.
The terminal-overrides option remains both for backwards compatibility
and to allow tweaks of individual capabilities.
tmux already did much of this already, this makes it tidier and simpler
to configure.
2020-04-20 13:25:36 +00:00
nicm
c20eb0c0ae
Make struct cmd local to cmd.c and move it out of tmux.h.
2020-04-13 08:26:27 +00:00
nicm
b96ac80901
Some unnecessary assignments and unused variables.
2020-04-09 13:52:31 +00:00
nicm
34de379c7d
Add to rather than replace flags with -c.
2020-03-30 15:49:23 +00:00
nicm
2a5702a936
When the server socket is given by the user with -S, create it with
...
umask 177 instead of 117 because it may not be in a safe directory like
the default directory in /tmp. The user can chmod it more open after it
is created if they want.
2020-03-12 09:26:34 +00:00
nicm
44dad918f8
Warn if a message type that is no longer used is received.
2020-01-29 16:22:32 +00:00
nicm
b4520aaf2c
Need to include message size in the maximum buffer calculation.
2019-12-16 16:09:28 +00:00
nicm
eaa58d28dc
Instead of using large buffers in imsgs, add the data or path onto the end.
2019-12-16 15:48:50 +00:00
nicm
6ce943f4d9
Need to check in the error callback also.
2019-12-13 07:00:22 +00:00
nicm
828001ecc5
Do not spin waiting for exit, instead check in the write callback.
2019-12-13 06:55:12 +00:00
nicm
c284ebe0ad
Rewrite the code for reading and writing files. Now, if the client is
...
not attached, the server process asks it to open the file, similar to
how works for stdin, stdout, stderr. This makes special files like
/dev/fd/X work (used by some shells). stdin, stdout and stderr and
control mode are now just special cases of the same mechanism. This will
also make it easier to use for other commands that read files such as
source-file.
2019-12-12 11:39:56 +00:00
nicm
8f40f791d9
Change "lost server" message to "server exited unexpectedly", from Neal
...
McBurnett in GitHub issue 1857.
2019-07-26 20:08:40 +00:00
deraadt
4ff7bc3eb3
When system calls indicate an error they return -1, not some arbitrary
...
value < 0. errno is only updated in this case. Change all (most?)
callers of syscalls to follow this better, and let's see if this strictness
helps us in the future.
2019-06-28 13:35:05 +00:00
nicm
f8d3d247d8
Merge cmd_list_parse into cmd-parse.y so it can use the new alias
...
processing code.
2019-05-25 07:18:20 +00:00
nicm
3a7b9d5735
Do not use PWD unless it actually matches the real working directory.
2018-11-22 10:36:40 +00:00
guenther
896c1da7da
Use <fcntl.h> instead of <sys/file.h> for open() and friends.
...
Delete a bunch of unnecessary #includes and sort to match style(9)
while doing the above cleanup.
ok deraadt@ krw@
2018-04-26 12:42:51 +00:00
nicm
d17c90583a
Prefer PWD for current directory if present in client, from Wei Zhao in
...
GitHub issue 1183.
2018-01-01 11:19:08 +00:00
nicm
b20a00f93e
Report better error from server when socket create fails, GitHub issue
...
1201.
2017-12-19 15:00:39 +00:00
nicm
62144b9f57
Do not try to put more in command message than will fit when sending
...
(the server will treat as a fatal error). GitHub issue 1200.
2017-12-18 22:13:36 +00:00
nicm
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
nicm
0453ad0146
Move signal code into proc.c.
2017-07-12 09:24:17 +00:00
nicm
ed3cfaafb2
Make shell_command a global like other stuff rather than making it an
...
exception and using callback argument.
2017-07-12 09:21:25 +00:00
nicm
85338bb75f
Add support for custom command aliases, this is an array option which
...
contains items of the form "alias=command". This is consulted when an
unknown command is parsed.
2017-01-24 19:53:37 +00:00
nicm
98e7fbb2ac
Open /dev/ptm before pledge() and save it to be used for PTMGET later
...
(this means inlining forkpty()).
ok deraadt
2017-01-23 10:09:43 +00:00
nicm
46572ba904
Print error rather than fatal() if tcgetattr() fails, which is much more
...
useful to user.
2017-01-20 14:02:33 +00:00
nicm
ef15b4195f
Revert WIP parts of previous I didn't mean to commit yet.
2017-01-16 14:52:25 +00:00
nicm
68db958477
getopt() has a struct option so just return to using options_entry.
2017-01-16 14:49:14 +00:00
nicm
95950bf668
Add -E to detach-client to exec a command to replace the client instead
...
of exiting it, useful if tmux wasn't exec'd itself. From Jenna Magius.
2017-01-13 10:12:12 +00:00
nicm
1b31d148c9
Remove some dead code in cmd-move-window.c and make a load of local
...
functions static.
2016-10-03 22:52:11 +00:00
nicm
995af0e2b7
I no longer use my SourceForge address so replace it.
2016-01-19 15:59:12 +00:00
nicm
ac8678aefe
Don't print error if none to print.
2015-11-25 07:58:55 +00:00
nicm
3ff46b2e43
Shell command from -c doesn't have to be global, pass it as an argument.
2015-11-24 23:22:51 +00:00
nicm
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
nicm
73e30cbda8
Actually show something (even if it not that helpful) if the server
...
fails to start (for example if it can't create the socket), rather than
hanging or showing nothing.
2015-11-24 22:45:44 +00:00