Github user ijokarumawak commented on the issue:
https://github.com/apache/nifi/pull/1320
@bbende @randerzander
Thanks for proposing this feature, it'll be useful!
Started reviewing this, and noticed few things.
1. Difference between RAW and HTTP protocol for receiving data.
RAW resolves hostname from socket, while HTTP does so from HTTP
request. Due to this difference, RAW uses hostname as `s2s.host` attribute like
`localhost`, while HTTP set `127.0.0.1`. I think this may be difficult when
users define routing rules in downstream flow. I wonder if it can produce the
same value, hostname or ip address for both transport protocol.
2. Unknown hostname and port due to illegal URL
As discussed in the [previous
PR](https://github.com/apache/nifi/pull/1307#issuecomment-266442657), I got
'unknown' hostname and port with Docker containers. While this can be handled
as a corner case since it's not allowed by the URL specification, I think it'd
be better if we can be lenient here to support Docker environment. I confirmed
provenance event also failed to resolve hostname and produced provenance
details with `null` hostname.
I think this can be improved by changing Peer's constructor. It parses
peerUrl then use its hostname and port, but the same information should be
retrieved from PeerDescriptor without parsing the URL. Currently,
SocketRemoteSiteListener uses server's hostname and port for PeerDescription,
but it seems it's not correct, those should be client's.
Please let me dig deeper comments above. Will update soon.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---