[
https://issues.apache.org/jira/browse/LUCENE-7920?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16118385#comment-16118385
]
Adrien Grand commented on LUCENE-7920:
--------------------------------------
I think there are multiple ways that we could address the problem:
1. Reject prefix queries on ipv6-mapped ipv4 addresses since they introduce a
corner case. However we can't do it in Lucene since the ip address is already
parsed, so we cannot distinguish ipv4 addresses from ipv6-mapped ipv4
addresses, so we have to assume that applications take care of this special
case.
2. Add a new method to query the binary representation of ip addresses
directly (what the patch does for now, your suggestions would make it better).
3. Change all methods to take a String instead of an InetAddress object as an
ip address. This way we could know whether the prefix length assumes a length
of 32 or 128 bits.
Something I like about 3 is that it moves some complexity from the user end to
our end: even with option 2 users may still use the InetAddress-based prefix
query factory method without knowing about its potential corner cases. I'm
wondering what you think about it?
> Make it easier to create ip prefix queries
> ------------------------------------------
>
> Key: LUCENE-7920
> URL: https://issues.apache.org/jira/browse/LUCENE-7920
> Project: Lucene - Core
> Issue Type: Bug
> Reporter: Adrien Grand
> Priority: Minor
> Attachments: LUCENE-7920.patch
>
>
> {{InetAddress.getByAddress}} automatically transforms ipv6-mapped ipv4
> addresses to ipv4 addresses. While this is usually desirable, it can make ip
> prefix query a bit trappy. For instance the following code:
> {code}
> InetAddressPoint.newPrefixQuery("a", InetAddress.getByName("::ffff:0:0"), 96);
> {code}
> throws an IAE complaining that the prefix length is invalid: {{illegal
> prefixLength '96'. Must be 0-32 for IPv4 ranges, 0-128 for IPv6 ranges}}.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]