KDE/kdelibs/kdecore/network
Christian Ehrlicher
Ch.Ehrlicher at gmx.de
Wed Nov 21 07:47:27 CET 2007
> Von: Shane King
> Christian Ehrlicher wrote:
> > Shane King schrieb:
> >> SVN commit 739431 by shakes:
> >>
> >> Use the netsupp.h definitions of inet_ntop/inet_pton even on msvc as
> the platform sdk exposed ones are only valid for vista
> >>
> >>
> >> M +0 -2 k3socketaddress.cpp
> >>
> >>
> >> --- trunk/KDE/kdelibs/kdecore/network/k3socketaddress.cpp
> #739430:739431
> >> @@ -41,9 +41,7 @@
> >>
> >> #include "klocale.h"
> >>
> >> -#ifndef Q_CC_MSVC
> >> #include "netsupp.h"
> >> -#endif
> >>
> >> using namespace KNetwork;
> >>
> >
> > This will *not* work with PSDK 6 and up.
> > Please remove this and take a look into kdewin32 library to see how it's
> > currently done.
> > I know this solution does not work when someone compiles (and releases)
> > kdelibs with PSDK 6 and up but that's not a problem you have to be aware
> of.
> >
> > Don't change such fundamental changes without asking us - we needed a
> > lot of time to make it work the way it is now...
> >
> > Christian
> >
>
>
> I have the latest psdk (6.0a as shipped with vs 2008) and it works for
> me. I assumed it was an oversight because someone probably saw it worked
> against vista's winsock (the commit comment for the original change said):
>
> "MSVC doesn't need these with the latest win32 SDK apparently. Although
> I would appreciate it if this could be checked over."
>
> I checked it over, found it didn't work for me (as I'm using xp, and it
> causes anything liked against kdecore to fail at startup with inet_ntop
> being undefined in ws2_32.dll), and changed it back.
>
> As the netsupp.cpp file uses netsupp.h without an include protection
> (and hence uses the custom inet_ntop), it seemed the correct thing to do.
>
> If I thought that was controversial I would have asked, but it seemed a
> pretty straightforward change given the circumstances. I'm happy to
> change it back, but that leaves it broken for me ... what do you feel
> the correct fix is?
>
Ok, so it looks like the compiler errors only occur with PSDK 6.0 (without a) - I know for sure that I got them (and switched back to PSDK 5.x afterwards because of this).
I would suggest to fix this problem in kdewin32 library:
- define inet_pton/ntop to kde_inet_pton/ntop to avoid name clashing with PSDK > 6
- on first run check for inet_pton/ntop symbols in ws2_32.dll and use them if possible, otherwise use the kdewin32 implementation (= the same like in netsupp.cpp)
- to not change k3socketaddress.cpp sources we define kde_inet_ntop inet_ntop in kdewin32 header. It should work because winsock2 is included before the kdewin32 header
Is this ok?
Christian
--
GMX FreeMail: 1 GB Postfach, 5 E-Mail-Adressen, 10 Free SMS.
Alle Infos und kostenlose Anmeldung: http://www.gmx.net/de/go/freemail
More information about the Kde-windows
mailing list