Bug 1161020: Added clean interface to |UnixSocketConnector|, r=kmachulis

The current interface of |UnixSocketConnector| doesn't follow any design
and is not easily understandable.

This patch adds a new interface to the class. The new interface provides
a method for each of the following operations:

  * converting an address to a human-readable string,
  * creating a listening socket,
  * creating a stream socket, and
  * accepting a stream socket from a listening socket.

All arguments are stored in the connector class, so that connect and
listen methods of the socket classes don't require protocol-specific
arguments. All socket parameters are set within the connector class,
so each connector class can now select parameters individually.
This commit is contained in:
Thomas Zimmermann
2015-05-19 13:28:46 +02:00
parent b69c35e17d
commit 991a2ddf77
2 changed files with 100 additions and 1 deletions

View File

@@ -9,8 +9,45 @@
namespace mozilla {
namespace ipc {
UnixSocketConnector::UnixSocketConnector()
{ }
UnixSocketConnector::~UnixSocketConnector()
{ }
nsresult
UnixSocketConnector::ConvertAddressToString(const struct sockaddr& aAddress,
socklen_t aAddressLength,
nsACString& aAddressString)
{
MOZ_CRASH("|UnixSocketConnector| does not convert addresses to strings.");
return NS_ERROR_ABORT;
}
nsresult
UnixSocketConnector::CreateListenSocket(struct sockaddr* aAddress,
socklen_t* aAddressLength,
int& aListenFd)
{
MOZ_CRASH("|UnixSocketConnector| does not support listening sockets.");
}
nsresult
UnixSocketConnector::AcceptStreamSocket(int aListenFd,
struct sockaddr* aAddress,
socklen_t* aAddressLen,
int& aStreamFd)
{
MOZ_CRASH("|UnixSocketConnector| does not support accepting stream sockets.");
}
nsresult
UnixSocketConnector::CreateStreamSocket(struct sockaddr* aAddress,
socklen_t* aAddressLength,
int& aStreamFd)
{
MOZ_CRASH("|UnixSocketConnector| does not support creating stream sockets.");
}
}
}