Message45444
Logged In: YES
user_id=31953
Python 2.4a2 fixes this issue somewhat, but not completely.
Since the Win32 release is compiled using Visual Studio 7.1,
the IP_HDRINCL and related symbols are defined.
However, socketmodule still links to wsock32.lib instead of
ws2_32.lib. This means that setsockopt(IP_HDRINCL) appears
to work, and even returns None, but it doesn't really work.
From http://www2.2cah.com/ws2/log9706.txt :
> You're not doing anything wrong. The problem is that,
unfortunately,
> Micorosoft's WinSock 2 doesn't support the IP_HDRINCL
socket option.
>
> They don't support IPPROTO_RAW ("raw IP") either. They
will gladly
> give you a socket, but then they send your IP header as
data, and
> send a bogus IP datagram that has 255--the value of
IPPROTO_RAW--
> as the protocol ID. If you look at the net traffic that
results
> from this (with a net analyzer), you'd see the receiver of
this
> bogus datagram respond with a "Protocol Unreachable" ICMP
error
> message.
I haven't even succesfully sent raw sockets with wsock32.lib.
This is fixed in ws2_32.lib. So all that Python has to do to
pull in these fixes is to link to wsock32.lib instead of
ws2_32.lib.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/wsacleanup_2.asp
says:
>Client: Requires Windows XP, Windows 2000 Professional,
>Windows NT Workstation, Windows Me, Windows 98, or
>Windows 95.
>[...]
>Library: Use Ws2_32.lib.
Therefore it leads me to believe that having Python link
with ws2_32.lib shouldn't cause any compatibility problems
on older systems, provided they have the Winsock2 updates.
If anyone is here, can we expect this patch to be merged soon?
Thanks,
-jc |
|
Date |
User |
Action |
Args |
2007-08-23 15:32:35 | admin | link | issue908631 messages |
2007-08-23 15:32:35 | admin | create | |
|