Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support DGRAM unix domain socket #6737

Closed
kghost opened this issue May 12, 2017 · 7 comments · Fixed by #11423
Closed

Support DGRAM unix domain socket #6737

kghost opened this issue May 12, 2017 · 7 comments · Fixed by #11423

Comments

@kghost
Copy link

kghost commented May 12, 2017

Currently only STREAM unix domian socket is supported, it would better to support DGRAM unix domain socket.

@normanmaurer
Copy link
Member

@kghost we love contribution.s

@kghost
Copy link
Author

kghost commented May 12, 2017

Looking into it

@Scottmitch
Copy link
Member

better to support DGRAM unix domain socket.

Can you provide some justification for this statement? Why is it "better"?

@shakuzen
Copy link

To add a concrete use case for this, in Micrometer we support publishing metrics to dogstatsd (Datadog-flavor of StatsD daemon) over UDP using reactor-netty currently. We have had requests to support publishing metrics to dogstatsd via unix domain sockets in micrometer-metrics/micrometer#792, and I was excited to see that reactor-netty has support for unix domain sockets built on top of the support in netty for it. However, the netty support is limited to stream domain sockets and dogstatsd is listening on a datagram domain socket. Since we are already using reactor-netty for publishing statsd metric lines, it would be advantageous to use a built-in netty feature to also support publishing on (datagram) unix domain sockets.

@normanmaurer
Copy link
Member

@shakuzen I am currently super busy but I would be happy to review a PR and provide feedback. So if you want to give it a go I am happy to help

@violetagg
Copy link
Member

@shakuzen @normanmaurer I'm gonna look at this and will try to provide a PR for a discussion.

@violetagg
Copy link
Member

I opened a PR #11423 for a discussion. I'll appreciate your feedback.

normanmaurer pushed a commit that referenced this issue Jul 9, 2021
…kqueue transport (#11423)

Motivation:

There are use cases when Unix domain datagram sockets are needed for communication. This PR adds such support for Epoll/KQueue.

Modification:

- Expose Channel, Config and Packet interfaces/classes for Unix domain datagram sockets. All interfaces/classes are in `transport-native-unix-common` module in order to be available for KQueue and Epoll implementations
- Add JNI code for Unix domain datagram sockets
- Refactor `DatagramUnicastTest` so that it can be used for testing also Unix domain datagram sockets
- Add Unix domain datagram sockets implementation for KQueue transport
- Add Unix domain datagram sockets implementation for Epoll transport

Result:

Fixes #6737
normanmaurer pushed a commit that referenced this issue Jul 12, 2021
…kqueue transport (#11476)

Motivation:

There are use cases when Unix domain datagram sockets are needed for communication.
This PR adds such support for Epoll/KQueue.

Modification:

- Expose Channel, Config and Packet interfaces/classes for Unix domain datagram sockets.
All interfaces/classes are in `transport-native-unix-common` module in order to be available
for KQueue and Epoll implementations
- Add JNI code for Unix domain datagram sockets
- Refactor `DatagramUnicastTest` so that it can be used for testing also Unix domain datagram sockets
- Add Unix domain datagram sockets implementation for KQueue transport
- Add Unix domain datagram sockets implementation for Epoll transport

Result:

Fixes #6737
raidyue pushed a commit to raidyue/netty that referenced this issue Jul 8, 2022
…kqueue transport (netty#11423)

Motivation:

There are use cases when Unix domain datagram sockets are needed for communication. This PR adds such support for Epoll/KQueue.

Modification:

- Expose Channel, Config and Packet interfaces/classes for Unix domain datagram sockets. All interfaces/classes are in `transport-native-unix-common` module in order to be available for KQueue and Epoll implementations
- Add JNI code for Unix domain datagram sockets
- Refactor `DatagramUnicastTest` so that it can be used for testing also Unix domain datagram sockets
- Add Unix domain datagram sockets implementation for KQueue transport
- Add Unix domain datagram sockets implementation for Epoll transport

Result:

Fixes netty#6737
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants