summaryrefslogtreecommitdiff
path: root/src/remote.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2015-10-08 20:05:47 +0100
committerMaxime Coste <frrrwww@gmail.com>2015-10-08 20:05:47 +0100
commitbd0117186128f8810fe602ee7fba2f71cefe89c1 (patch)
treef364010b0c4aaeb3ce928e242cb1941ae75a304f /src/remote.cc
parent7776c38755bfa4674b21989d7a7ef9561c02c366 (diff)
Auto fork server when suspending the local client
That way, other clients can still be serviced by the server.
Diffstat (limited to 'src/remote.cc')
-rw-r--r--src/remote.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/remote.cc b/src/remote.cc
index 1e1edc23..b4201abc 100644
--- a/src/remote.cc
+++ b/src/remote.cc
@@ -631,11 +631,14 @@ Server::Server(String session_name)
m_listener.reset(new FDWatcher{listen_sock, accepter});
}
-void Server::close_session()
+void Server::close_session(bool do_unlink)
{
- char socket_file[128];
- format_to(socket_file, "/tmp/kakoune/{}/{}", getpwuid(geteuid())->pw_name, m_session);
- unlink(socket_file);
+ if (do_unlink)
+ {
+ char socket_file[128];
+ format_to(socket_file, "/tmp/kakoune/{}/{}", getpwuid(geteuid())->pw_name, m_session);
+ unlink(socket_file);
+ }
m_listener->close_fd();
m_listener.reset();
}