This patch fixes a problem with compiling on Windows for options OPENSSL_USE_IPV6 and a windows requirement of having _WIN32_WINNT being at least 0x0501.
It's counterproductive to not specify what is the problem in more specific terms, naming at least specific error message, OpenSSL version, compiler and SDK versions. In this case it's only a coincidence that [presumably same?] problem was reported internally, so there is no real need for additional information here and now, but it shouldn't be used as excuse for not being more specific at other occasions.
Anybody willing to commit it?
It's not appropriate solution. It effectively breaks "contract" mentioned just two lines below suggested change in e_os.h and would break compilations with not-so-latest Platform SDKs.
For public reference. The above mentioned "contract" assumes rather minimal requirement for *run time*, which allows to maintain binary compatibility across multiple Windows versions. If some code requires functionality above minimally assumed 0x400, it should be *detected* and linked to at *run time*, not compile time. For this reason it's more appropriate to bump _WIN32_WINNT on *per-file* basis [as opposite to all-inclusive e_os.h] and leaving explicit note for why it's done as reminder that the right thing to do is *detect* availability of new functionality at run-time, not just copy snippets from MSDN.
Or come up w/ a better solution?
As alternative to bumping up _WIN32_WINNT one can as well copy function and structure declarations and definitions. It's trade-off. In this case it's about single definition, IPPROTO_IPV6, which is *universally* assigned protocol number, i.e. it's same on all OSes. Therefore http://cvs.openssl.org/chngview?cn=22756.
______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [email protected] Automated List Manager [email protected]
