Nicholas Hughes created NIFI-5445: ------------------------------------- Summary: ListenTCP does not allow binding to subinterfaces Key: NIFI-5445 URL: https://issues.apache.org/jira/browse/NIFI-5445 Project: Apache NiFi Issue Type: Bug Reporter: Nicholas Hughes
While attempting to bind ListenTCP to a certain interface, it was discovered that it does not support subinterfaces (virtual interfaces) while validating the contents of the "Local Network Interface" property. I traced it back to the ListenerProperties class [1], which uses "NetworkInterface.getNetworkInterfaces()" to pull a list of interfaces. This method does not include subinterfaces, so further iteration using the "getSubInterfaces()" method [2] on each interface would be required to fully populate the list. However, IP addresses are not found on the subinterfaces when using "getInetAddresses()" on each interface. Instead, they can be found in the enumeration returned by the parent interface. Further (needlessly complex) logic would be required to determine which IP address is being requested when specifying a virtual interface. In a scenario where someone has assigned a virtual interface on a host and entered the parent interface into the "Local Network Interface" property for ListenTCP, the code will find multiple IP addresses for that parent interface... but only select the first one in the list. [3] I'm uncertain as to how the IP addresses are ordered in the returned enumeration, but I suspect that unpredictable outcomes would result based upon that ordering. Since this logic resides in the abstract class, multiple Listen processors are affected. [1] [https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-extension-utils/nifi-processor-utils/src/main/java/org/apache/nifi/processor/util/listen/ListenerProperties.java#L41] [2] [https://docs.oracle.com/javase/8/docs/api/java/net/NetworkInterface.html#getSubInterfaces--] [3] [https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-extension-utils/nifi-processor-utils/src/main/java/org/apache/nifi/processor/util/listen/AbstractListenEventProcessor.java#L189] -- This message was sent by Atlassian JIRA (v7.6.3#76005)