kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

RFC 3493とWindows 7のgetaddrinfoの仕様変更

Windows7のGetAddrInfoWの動作について
ちょっと面白そうな話題だったので調べてみました。WS2TCPIP.HのコメントにあるDCRはおそらくDesign Change Request(仕様変更)の略でしょう。顧客からの要求とかでちゃんと正当性があれば通ることがありますが、えらく大変…なはずです。
RFC2553がRFC3493に置き換わったタイミングでEAI_NODATAがなくなって、EAI_NONAMEで定義されていることが直接の原因じゃないかなぁと思います。ホストが存在しないので、EAI_NONAMEを返しているつもりだけど、定義しなおしているので、XP/Vista時代のEAI_NODATAで引っかかっているように見えると。
RFC 2553のEAI_NODATAの説明読んでみましたが、EAI_NONAMEと何が違うのかよくわかりませんでした(ネットワークプログラミングは疎いです)。
現時点のgetaddrinfoのエラーからはEAI_NODATAが削られていますね。
RFC 2553で実装されていると思われる(そして対応の見込みがない)XP/Vista/2003/2008とWindows 7/2008 R2ではこの辺ちょっと変える必要があるかもしれません。