net/Socket.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
New commits: commit 9cfdba5f56c5da3a5e6b6f947a251647db367e4f Author: Jan Holesovsky <ke...@collabora.com> AuthorDate: Fri Jun 12 12:19:50 2020 +0200 Commit: Jan Holesovsky <ke...@collabora.com> CommitDate: Fri Jun 12 12:53:07 2020 +0200 Snap needs a specific unix socket name. Change-Id: I7fd816eb6d23df0f27e40f345181833dbe85e022 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/96197 Tested-by: Jenkins Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Jan Holesovsky <ke...@collabora.com> diff --git a/net/Socket.cpp b/net/Socket.cpp index ee76a5a1a..0d0b3ed0b 100644 --- a/net/Socket.cpp +++ b/net/Socket.cpp @@ -755,15 +755,22 @@ std::string LocalServerSocket::bind() { int rc; struct sockaddr_un addrunix; + + // snap needs a specific socket name + std::string socketAbstractUnixName(SOCKET_ABSTRACT_UNIX_NAME); + const char* snapInstanceName = std::getenv("SNAP_INSTANCE_NAME"); + if (snapInstanceName && snapInstanceName[0]) + socketAbstractUnixName = std::string("0snap.") + snapInstanceName + ".loolwsd-"; + do { std::memset(&addrunix, 0, sizeof(addrunix)); addrunix.sun_family = AF_UNIX; - std::memcpy(addrunix.sun_path, SOCKET_ABSTRACT_UNIX_NAME, sizeof(SOCKET_ABSTRACT_UNIX_NAME)); + std::memcpy(addrunix.sun_path, socketAbstractUnixName.c_str(), socketAbstractUnixName.length()); addrunix.sun_path[0] = '\0'; // abstract name std::string rand = Util::rng::getFilename(8); - memcpy(addrunix.sun_path + sizeof(SOCKET_ABSTRACT_UNIX_NAME) - 1, rand.c_str(), 8); + memcpy(addrunix.sun_path + socketAbstractUnixName.length(), rand.c_str(), 8); rc = ::bind(getFD(), (const sockaddr *)&addrunix, sizeof(struct sockaddr_un)); LOG_TRC("Bind to location " << std::string(&addrunix.sun_path[1]) << _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits