[ruby-core:119795] [Ruby master Feature#20782] Introduction of Happy Eyeballs Version 2 (RFC8305) in TCPSocket.new
From:
"matz (Yukihiro Matsumoto) via ruby-core" <ruby-core@...>
Date:
2024-11-07 09:43:43 UTC
List:
ruby-core #119795
SXNzdWUgIzIwNzgyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWF0eiAoWXVraWhpcm8gTWF0c3Vtb3Rv KS4NCg0KDQpBY2NlcHRlZC4NCg0KTWF0ei4NCg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQpGZWF0dXJlICMyMDc4MjogSW50cm9kdWN0aW9uIG9mIEhhcHB5IEV5 ZWJhbGxzIFZlcnNpb24gMiAoUkZDODMwNSkgaW4gVENQU29ja2V0Lm5ldw0KaHR0cHM6Ly9idWdz LnJ1YnktbGFuZy5vcmcvaXNzdWVzLzIwNzgyI2NoYW5nZS0xMTA0ODANCg0KKiBBdXRob3I6IHNo aW9pbW0gKE1pc2FraSBTaGlvaSkNCiogU3RhdHVzOiBBc3NpZ25lZA0KKiBBc3NpZ25lZTogbmFy dXNlIChZdWkgTkFSVVNFKQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KVGhpcyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBIYXBweSBFeWViYWxscyB2ZXJzaW9uIDIg KFJGQyA4MzA1KSBpbiBgVENQU29ja2V0Lm5ld2AuDQpTZWUgaHR0cHM6Ly9naXRodWIuY29tL3J1 YnkvcnVieS9wdWxsLzExNjUzDQoNCiMjIyBCYWNrZ3JvdW5kDQpQcmlvciB0byB0aGlzIGltcGxl bWVudGF0aW9uLCBJIGltcGxlbWVudGVkIEhhcHB5IEV5ZWJhbGxzIFZlcnNpb24gMiAoSEV2Mikg Zm9yIGBTb2NrZXQudGNwYCBpbiBodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L3B1bGwvOTM3 NC4gDQpIRXYyIGlzIGFuIGFsZ29yaXRobSBkZWZpbmVkIGluIFtSRkMgODMwNV0oaHR0cHM6Ly9k YXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM4MzA1KSwgYWltZWQgYXQgaW1wcm92aW5n IG5ldHdvcmsgY29ubmVjdGl2aXR5LiANCkZvciBtb3JlIGRldGFpbHMgb24gdGhlIHNwZWNpZmlj IGNhc2VzIHRoYXQgSEV2MiBoZWxwcywgcGxlYXNlIHJlZmVyIHRvIGh0dHBzOi8vYnVncy5ydWJ5 LWxhbmcub3JnL2lzc3Vlcy8yMDEwOC4NCg0KIyMjIFByb3Bvc2FsICYgT3V0Y29tZQ0KVGhpcyBw cm9wb3NhbCBpbXBsZW1lbnRzIHRoZSBzYW1lIEhFdjIgYWxnb3JpdGhtIGluIGBUQ1BTb2NrZXQu bmV3YC4NClNpbmNlIGBUQ1BTb2NrZXQubmV3YCBpcyB1c2VkIG1vcmUgd2lkZWx5IHRoYW4gYFNv Y2tldC50Y3BgLCB0aGlzIGNoYW5nZSBpcyBleHBlY3RlZCB0byBicm9hZGVuIHRoZSBpbXBhY3Qg b2YgSEV2MidzIGJlbmVmaXRzLiANCkxpa2UgYFNvY2tldC50Y3BgLCBJIGhhdmUgYWxzbyBhZGRl ZCBgZmFzdF9mYWxsYmFja2Aga2V5d29yZCBhcmd1bWVudCB0byBgVENQU29ja2V0Lm5ld2AuIA0K VGhpcyBvcHRpb24gaXMgc2V0IHRvIHRydWUgYnkgZGVmYXVsdCwgZW5hYmxpbmcgdGhlIEhFdjIg ZnVuY3Rpb25hbGl0eS4gDQpIb3dldmVyLCB1c2VycyBjYW4gZXhwbGljaXRseSBzZXQgaXQgdG8g ZmFsc2UgdG8gZGlzYWJsZSBIRXYyIGFuZCB1c2UgdGhlIHByZXZpb3VzIGJlaGF2aW9yIG9mIGBU Q1BTb2NrZXQubmV3YC4NCg0KSXQgc2hvdWxkIGJlIG5vdGVkIHRoYXQgSEV2MiBpcyBlbmFibGVk IG9ubHkgaW4gZW52aXJvbm1lbnRzIHdoZXJlIHB0aHJlYWRzIGFyZSBhdmFpbGFibGUuDQpUaGlz IHNwZWNpZmljYXRpb24gZm9sbG93cyB0aGUgYXBwcm9hY2ggdGFrZW4gaW4gaHR0cHM6Ly9idWdz LnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE5OTY1LCB3aGVyZSBuYW1lIHJlc29sdXRpb24gY2FuIGJl IGludGVycnVwdGVkLiANCihJbiBlbnZpcm9ubWVudHMgd2hlcmUgcHRocmVhZHMgYXJlIG5vdCBh dmFpbGFibGUsIHRoZSBgZmFzdF9mYWxsYmFja2Agb3B0aW9uIGlzIGlnbm9yZWQuKQ0KDQojIyMg UGVyZm9ybWFuY2UNCkJlbG93IGlzIHRoZSBiZW5jaG1hcmsgb2YgMTAwIHJlcXVlc3RzIHRvIGB3 d3cucnVieS1sYW5nLm9yZ2Agd2l0aCB0aGUgZmFzdF9mYWxsYmFjayBvcHRpb24gc2V0IHRvIHRy dWUgYW5kIGZhbHNlLCByZXNwZWN0aXZlbHkuIA0KV2hpbGUgdGhlcmUgaXMgYSBzbGlnaHQgcGVy Zm9ybWFuY2UgZGVncmFkYXRpb24gd2hlbiBIRXYyIGlzIGVuYWJsZWQsIHRoZSBkZWdyYWRhdGlv biBpcyBzbWFsbGVyIGNvbXBhcmVkIHRvIHRoYXQgc2VlbiBpbiBgU29ja2V0LnRjcGAgLg0KDQpg YGBydWJ5DQpyZXF1aXJlICdzb2NrZXQnDQpyZXF1aXJlICdiZW5jaG1hcmsnDQoNCmhvc3RuYW1l ID0gInd3dy5ydWJ5LWxhbmcub3JnIg0KcG9ydCA9IDgwDQpuID0gMTAwDQoNCkJlbmNobWFyay5i bWJtIGRvIHx4fA0KICB4LnJlcG9ydCgiZmFzdF9mYWxsYmFjazogdHJ1ZSIpIGRvDQogICAgbi50 aW1lcyB7IFRDUFNvY2tldC5uZXcoaG9zdG5hbWUsIHBvcnQpLmNsb3NlIH0NCiAgZW5kDQoNCiAg eC5yZXBvcnQoImZhc3RfZmFsbGJhY2s6IGZhbHNlIikgZG8NCiAgICBuLnRpbWVzIHsgVENQU29j a2V0Lm5ldyhob3N0bmFtZSwgcG9ydCwgZmFzdF9mYWxsYmFjazogZmFsc2UpLmNsb3NlIH0NCiAg ZW5kDQplbmQNCmBgYA0KDQpgYGANCn4vcy9idWlsZCDina/ina/ina8gLi4vaW5zdGFsbC9iaW4v cnVieSAuLi9ydWJ5L3Rlc3QucmINClJlaGVhcnNhbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KZmFzdF9mYWxsYmFjazogdHJ1ZSAgICAw LjAxNzU4OCAgIDAuMDk3MDQ1ICAgMC4xMTQ2MzMgKCAgMS40NjA2NjQpDQpmYXN0X2ZhbGxiYWNr OiBmYWxzZSAgIDAuMDE0MDMzICAgMC4wNzg5ODQgICAwLjA5MzAxNyAoICAxLjQxMzk1MSkNCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHRvdGFsOiAwLjIw NzY1MHNlYw0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyICAgICBzeXN0ZW0gICAg ICB0b3RhbCAgICAgICAgcmVhbA0KZmFzdF9mYWxsYmFjazogdHJ1ZSAgICAwLjAyMDg5MSAgIDAu MTI0MDU0ICAgMC4xNDQ5NDUgKCAgMS40NzM4MTYpDQpmYXN0X2ZhbGxiYWNrOiBmYWxzZSAgIDAu MDE4MzkyICAgMC4xMTA4NTIgICAwLjEyOTI0NCAoICAxLjQ2NjAxNCkNCmBgYA0KDQoNCg0KLS0g DQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCiBydWJ5LWNvcmUgbWFpbGluZyBsaXN0IC0tIHJ1YnktY29y ZUBtbC5ydWJ5LWxhbmcub3JnCiBUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIHJ1Ynkt Y29yZS1sZWF2ZUBtbC5ydWJ5LWxhbmcub3JnCiBydWJ5LWNvcmUgaW5mbyAtLSBodHRwczovL21s LnJ1YnktbGFuZy5vcmcvbWFpbG1hbjMvbGlzdHMvcnVieS1jb3JlLm1sLnJ1YnktbGFuZy5vcmcv