summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Rehak <ligi@tekkirk.org>2019-08-31 01:12:46 +0200
committerGaute Hope <eg@gaute.vetsj.com>2019-09-04 08:50:21 +0200
commiteb48a68ce682821fc49bc60b27649702db2e57fb (patch)
treea4d4ab42e4632603f31090db84f37685857d0d54
parent9e19f15e37e2d87145809416f85858d1b6cb0e91 (diff)
Programatically determine the platform support for abstract sockets.
-rw-r--r--src/modes/thread_view/page_client.cc26
-rw-r--r--src/modes/thread_view/webextension/tvextension.cc14
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 ();