mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1164417: Add |UnixSocketConnector::Duplicate|, r=kmachulis
The new method |UnixSocketConnector::Duplicate| allows a socket connector to duplicate itself. Listening sockets will used this feature to create socket connectors for accepted connections.
This commit is contained in:
parent
5d585882e3
commit
a385885364
@ -171,4 +171,12 @@ BluetoothDaemonConnector::CreateStreamSocket(struct sockaddr* aAddress,
|
||||
return NS_ERROR_ABORT;
|
||||
}
|
||||
|
||||
nsresult
|
||||
BluetoothDaemonConnector::Duplicate(UnixSocketConnector*& aConnector)
|
||||
{
|
||||
aConnector = new BluetoothDaemonConnector(*this);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
END_BLUETOOTH_NAMESPACE
|
||||
|
@ -40,6 +40,8 @@ public:
|
||||
socklen_t* aAddressLength,
|
||||
int& aStreamFd) override;
|
||||
|
||||
nsresult Duplicate(UnixSocketConnector*& aConnector) override;
|
||||
|
||||
private:
|
||||
nsresult CreateSocket(int& aFd) const;
|
||||
nsresult SetSocketFlags(int aFd) const;
|
||||
|
@ -408,4 +408,12 @@ BluetoothUnixSocketConnector::CreateStreamSocket(struct sockaddr* aAddress,
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
BluetoothUnixSocketConnector::Duplicate(UnixSocketConnector*& aConnector)
|
||||
{
|
||||
aConnector = new BluetoothUnixSocketConnector(*this);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
END_BLUETOOTH_NAMESPACE
|
||||
|
@ -41,6 +41,8 @@ public:
|
||||
socklen_t* aAddressLength,
|
||||
int& aStreamFd) override;
|
||||
|
||||
nsresult Duplicate(UnixSocketConnector*& aConnector) override;
|
||||
|
||||
private:
|
||||
nsresult CreateSocket(int& aFd) const;
|
||||
nsresult SetSocketFlags(int aFd) const;
|
||||
|
@ -222,5 +222,13 @@ KeyStoreConnector::CreateStreamSocket(struct sockaddr* aAddress,
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
nsresult
|
||||
KeyStoreConnector::Duplicate(UnixSocketConnector*& aConnector)
|
||||
{
|
||||
aConnector = new KeyStoreConnector(*this);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -39,6 +39,8 @@ public:
|
||||
socklen_t* aAddressLength,
|
||||
int& aStreamFd) override;
|
||||
|
||||
nsresult Duplicate(UnixSocketConnector*& aConnector) override;
|
||||
|
||||
private:
|
||||
nsresult CreateSocket(int& aFd) const;
|
||||
nsresult SetSocketFlags(int aFd) const;
|
||||
|
@ -190,5 +190,13 @@ NfcConnector::CreateStreamSocket(struct sockaddr* aAddress,
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
NfcConnector::Duplicate(UnixSocketConnector*& aConnector)
|
||||
{
|
||||
aConnector = new NfcConnector(*this);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -43,6 +43,8 @@ public:
|
||||
socklen_t* aAddressLength,
|
||||
int& aStreamFd) override;
|
||||
|
||||
nsresult Duplicate(UnixSocketConnector*& aConnector) override;
|
||||
|
||||
private:
|
||||
nsresult CreateSocket(int& aFd) const;
|
||||
nsresult SetSocketFlags(int aFd) const;
|
||||
|
@ -204,5 +204,13 @@ RilConnector::CreateStreamSocket(struct sockaddr* aAddress,
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
RilConnector::Duplicate(UnixSocketConnector*& aConnector)
|
||||
{
|
||||
aConnector = new RilConnector(*this);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -43,6 +43,9 @@ public:
|
||||
socklen_t* aAddressLength,
|
||||
int& aStreamFd) override;
|
||||
|
||||
nsresult Duplicate(UnixSocketConnector*& aConnector) override;
|
||||
|
||||
|
||||
private:
|
||||
nsresult CreateSocket(int aDomain, int& aFd) const;
|
||||
nsresult SetSocketFlags(int aFd) const;
|
||||
|
@ -76,6 +76,14 @@ public:
|
||||
socklen_t* aAddressLength,
|
||||
int& aStreamFd) = 0;
|
||||
|
||||
/**
|
||||
* Copies the instance of |UnixSocketConnector|. I/O thread only.
|
||||
*
|
||||
* @param[in] aConnector Returns a new instance of the connector class
|
||||
* @return NS_OK on success, or an XPCOM error code otherwise
|
||||
*/
|
||||
virtual nsresult Duplicate(UnixSocketConnector*& aConnector) = 0;
|
||||
|
||||
protected:
|
||||
UnixSocketConnector();
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user