提问人:Md. Farhan Memon 提问时间:6/1/2023 更新时间:6/1/2023 访问量:90
Ruby IPAddr 类接受错误的 IPv6 地址字符串
Ruby IPAddr class accepting wrong IPv6 address string
问:
我们正在升级 ruby 版本 v2.7.3 -> v3.1.3
我们的一个测试用例失败,与有效的 ipv6 地址字符串相关,请检查以下内容
# ruby 2.7.3
IPAddr.new('fe80::85e:7530:69ec:9074%en0').ipv6?
=> IPAddr::InvalidAddressError (invalid address: fe80::85e:7530:69ec:9074%en0)
# ruby 3.1.3
IPAddr.new('fe80::85e:7530:69ec:9074%en0').ipv6?
=> true
这真的是一个错误还是我遗漏了什么?请帮忙。.
答:
1赞
Jörg W Mittag
6/1/2023
#1
这真的是一个错误还是我遗漏了什么?
这曾经是 ipaddr
默认 gem 中的问题,最高版本 1.2.2 已在版本 1.2.3 中修复,以便完全符合 RFC 4007 和 RFC 6874。默认 gem 的 1.2.3 版本是作为 Ruby 3.1.0 的一部分发布的。ipaddr
所以,你是对的。这是一个错误(尽管对此意见不一),已在 1.2.3 / Ruby 3.1.0 中修复。ipaddr
评论
0赞
Md. Farhan Memon
6/1/2023
哪个版本有问题? 或1.2.2
1.2.3
0赞
Md. Farhan Memon
6/2/2023
我也在 ruby-lang 错误跟踪器上提出了它,同样的事情。感谢您的澄清。bugs.ruby-lang.org/issues/19705
0赞
Jörg W Mittag
6/2/2023
“哪个版本有问题?1.2.2 或 1.2.3“ – ipaddr 1.2.2 和之前的所有版本都有问题(这意味着 Ruby 3.0.6 和之前的所有版本都有错误),ipaddr 1.2.3 和之后的所有版本都已修复(这意味着 Ruby 3.1.0 和之后的所有版本都已修复)。在代码示例中,你可以很容易地看到这一点,其中 Ruby 2.7.3 引发了异常(这显然是错误的),而 Ruby 3.1.3 正确地接受了地址。我虽然最后一句话很清楚(“在 ipaddr 1.2.3 / Ruby 3.1.0 中修复”),但我不是以英语为母语的人,所以如果您认为有什么可以改进的地方,请继续。
上一个:获取属于模型的所有嵌套对象
评论