c20eb0c0ae
Make struct cmd local to cmd.c and move it out of tmux.h.
2020-04-13 08:26:27 +00:00
b96ac80901
Some unnecessary assignments and unused variables.
2020-04-09 13:52:31 +00:00
34de379c7d
Add to rather than replace flags with -c.
2020-03-30 15:49:23 +00:00
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
44dad918f8
Warn if a message type that is no longer used is received.
2020-01-29 16:22:32 +00:00
b4520aaf2c
Need to include message size in the maximum buffer calculation.
2019-12-16 16:09:28 +00:00
eaa58d28dc
Instead of using large buffers in imsgs, add the data or path onto the end.
2019-12-16 15:48:50 +00:00
6ce943f4d9
Need to check in the error callback also.
2019-12-13 07:00:22 +00:00
828001ecc5
Do not spin waiting for exit, instead check in the write callback.
2019-12-13 06:55:12 +00:00
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
8f40f791d9
Change "lost server" message to "server exited unexpectedly", from Neal
...
McBurnett in GitHub issue 1857.
2019-07-26 20:08:40 +00:00
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
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
3a7b9d5735
Do not use PWD unless it actually matches the real working directory.
2018-11-22 10:36:40 +00:00
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
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
b20a00f93e
Report better error from server when socket create fails, GitHub issue
...
1201.
2017-12-19 15:00:39 +00:00
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
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
0453ad0146
Move signal code into proc.c.
2017-07-12 09:24:17 +00:00
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
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
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
46572ba904
Print error rather than fatal() if tcgetattr() fails, which is much more
...
useful to user.
2017-01-20 14:02:33 +00:00
ef15b4195f
Revert WIP parts of previous I didn't mean to commit yet.
2017-01-16 14:52:25 +00:00
68db958477
getopt() has a struct option so just return to using options_entry.
2017-01-16 14:49:14 +00:00
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
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
995af0e2b7
I no longer use my SourceForge address so replace it.
2016-01-19 15:59:12 +00:00
ac8678aefe
Don't print error if none to print.
2015-11-25 07:58:55 +00:00
3ff46b2e43
Shell command from -c doesn't have to be global, pass it as an argument.
2015-11-24 23:22:51 +00:00
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
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
c913fb99b6
Tidy the code that works out the socket path, and just use the full path
...
in the global socket_path rather than copying it.
2015-11-24 22:27:22 +00:00
bef217b241
Switch a fprintf to a fatal, and wrap some long lines.
2015-11-24 22:04:36 +00:00
577c0e3e5a
Use __unused rather than rolling our own.
2015-11-18 14:27:44 +00:00
a582b62287
Accidentally turned off pledge, turn it back on.
2015-11-15 14:32:48 +00:00
c56b81a2ce
Push stdout and stderr to clients more aggressively, and add an event to
...
continue if the send fails.
2015-11-14 09:41:06 +00:00
b0a99e85b6
Don't shift version out of peerid, it is needed later.
2015-10-31 13:43:38 +00:00
01defc9f49
Because pledge(2) does not allow us to pass directory file descriptors
...
around, we can't use file descriptors for the working directory because
we will be unable to pass it to a privileged process to tell it where to
read or write files or spawn children. So move tmux back to using
strings for the current working directory. We try to check it exists
with access() when it is set but ultimately fall back to ~ if it fails
at time of use (or / if that fails too).
2015-10-31 08:13:58 +00:00
bf9c933cae
Like options, move the environ struct into environ.c.
2015-10-28 09:51:55 +00:00
44657bf932
Move struct options into options.c.
2015-10-27 15:58:42 +00:00
07b0ea03c3
Break the common process set up, event loop and imsg dispatch code
...
between server and client out into a separate internal API. This will
make it easier to add another process.
2015-10-27 13:23:24 +00:00
174a2ad731
Pass current directory as a string rather than a file descriptor because
...
pledge doesn't let us pass directory file descriptors.
2015-10-18 20:42:42 +00:00
9c601ebde8
Add pledge "stdio unix sendfd proc exec tty" to tmux client process,
...
"sendfd" is dropped after first message from the server.
2015-10-17 18:30:43 +00:00
241fd72f75
Userspace doesn't need to use SUN_LEN(): connect() and bind() must accept
...
sizeof(struct sockaddr_un), so do the simple, portable thing
ok beck@ deraadt@
2015-10-11 00:26:23 +00:00
2a62917444
Don't leak fd and path on failure.
2015-09-24 12:06:20 +00:00
67ee995cc1
No need to keep global options around for client which doesn't use them.
2015-09-09 12:09:21 +00:00
c6e9160c67
Login shell can be a client flag, and move the exec code into client.c.
2015-08-30 22:40:25 +00:00
dd92b6e83d
Event base does not need to be global.
2015-08-30 22:19:07 +00:00