diff options
author | Martin Rehak <ligi@tekkirk.org> | 2019-08-31 01:12:46 +0200 |
---|---|---|
committer | Gaute Hope <eg@gaute.vetsj.com> | 2019-09-04 08:50:21 +0200 |
commit | eb48a68ce682821fc49bc60b27649702db2e57fb (patch) | |
tree | a4d4ab42e4632603f31090db84f37685857d0d54 | |
parent | 9e19f15e37e2d87145809416f85858d1b6cb0e91 (diff) |
Programatically determine the platform support for abstract sockets.
-rw-r--r-- | src/modes/thread_view/page_client.cc | 26 | ||||
-rw-r--r-- | src/modes/thread_view/webextension/tvextension.cc | 14 |
2 files changed, 22 insertions, 18 deletions
diff --git a/src/modes/thread_view/page_client.cc b/src/modes/thread_view/page_client.cc index 5e5c63a..a151b58 100644 --- a/src/modes/thread_view/page_client.cc +++ b/src/modes/thread_view/page_client.cc @@ -116,18 +116,20 @@ namespace Astroid { /* set up unix socket */ LOG (warn) << "pc: id: " << id; - socket_addr = ustring::compose ("%1/astroid.%2.%3.%4", - astroid->standard_paths ().socket_dir.c_str(), - getpid(), - id, - UstringUtils::random_alphanumeric (30)); - - refptr<Gio::UnixSocketAddress> addr = Gio::UnixSocketAddress::create (socket_addr, -# if defined __FreeBSD__ || defined __APPLE__ - Gio::UNIX_SOCKET_ADDRESS_PATH); -# elif - Gio::UNIX_SOCKET_ADDRESS_ABSTRACT); -# endif + refptr<Gio::UnixSocketAddress> addr; + if(Gio::UnixSocketAddress::abstract_names_supported ()) { + addr = Gio::UnixSocketAddress::create (socket_addr, + Gio::UNIX_SOCKET_ADDRESS_ABSTRACT); + } else { + socket_addr = ustring::compose ("%1/astroid.%2.%3.%4", + astroid->standard_paths ().socket_dir.c_str(), + getpid(), + id, + UstringUtils::random_alphanumeric (30)); + + addr = Gio::UnixSocketAddress::create (socket_addr, + Gio::UNIX_SOCKET_ADDRESS_PATH); + } refptr<Gio::SocketAddress> eaddr; diff --git a/src/modes/thread_view/webextension/tvextension.cc b/src/modes/thread_view/webextension/tvextension.cc index 7078cde..27a6f03 100644 --- a/src/modes/thread_view/webextension/tvextension.cc +++ b/src/modes/thread_view/webextension/tvextension.cc @@ -146,12 +146,14 @@ AstroidExtension::AstroidExtension ( gsize sz; const char * caddr = g_variant_get_string ((GVariant *) gaddr, &sz); - refptr<Gio::UnixSocketAddress> addr = Gio::UnixSocketAddress::create (caddr, -# if defined __FreeBSD__ || defined __APPLE__ - Gio::UNIX_SOCKET_ADDRESS_PATH); -# elif - Gio::UNIX_SOCKET_ADDRESS_ABSTRACT); -# endif + refptr<Gio::UnixSocketAddress> addr; + if(Gio::UnixSocketAddress::abstract_names_supported ()) { + addr = Gio::UnixSocketAddress::create (caddr, + Gio::UNIX_SOCKET_ADDRESS_ABSTRACT); + } else { + addr = Gio::UnixSocketAddress::create (caddr, + Gio::UNIX_SOCKET_ADDRESS_PATH); + } /* connect to socket */ cli = Gio::SocketClient::create (); |