Skip to Content.
Sympa Menu

freetds - Re: [freetds] [Bug Report] Missing Winsock initialization in v0.82

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "James K. Lowden" <jklowden AT freetds.org>
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] [Bug Report] Missing Winsock initialization in v0.82
  • Date: Wed, 12 May 2010 20:41:08 -0400

Paul Thurston wrote:
>
> I reported this bug in the v0.82 last year (May 2009). Would someone
> please patch this, or provide me with CVS access ( and I'll do it)?

Hi Paul,

I want to alleviate some confusion and welcome your participation. If,
unlike me, you care about the Win32 builds and have a continuing need to
keep them working, I will absolutely give you CVS access.

It's true that the Win32/64 build is a something of a stepchild. After
all, the vendors provided Windows libraries. But it's no secret that
DB-Library is not their priority, witness the the lack of a new version is
~10 years. FreeTDS is arguably the best DB-Library implementation
currently available (even if that's not saying much).

Windows and I go way back. I attended the first conference in New York,
in 1985. I have the manuals for 1.0.3. I remember the excitement over
Daytona and Cairo, and the dismay at moving the video driver into the
kernel. More recently I had need for a 64-bit db-lib, and got FreeTDS
working there in a few days. I also added the Nmakefile and a bunch of
Win64 fixes at that time.

The challenge -- one I don't take up -- for anyone trying to support an
open-source Windows library is to cope with the ever-changing
standards-free rules. dsw or sln? strcpy(3) or _CRT_SECURE_NO_WARNINGS?
WIN32_LEAN_AND_MEAN? There's more Win32 gadgetry in FreeTDS than for any
other OS, and it's very fragile because it's impossible to interrogate the
system about its requirements, let alone foresee what Microsoft will do
next.

Your original patch wasn't applied because IMHO it's not right. It
initializes the Winsock library before every connection; the documentation
says that should be done only once, which is what CVS HEAD does. The
documentation does not say what happens if WSAStartup() is called twice.
Even if it works (or seems to), I'd rather not try.

fake_poll() is mine. The idea is to remove any call to select(2) in the
main code, and always call poll(2) even if it's the fake one. HAVE_POLL
will disappear. If that's not working for you, let's make it work. (It
worked for me with Win32/64 and VS 2005. I use the Nmakefile, though.)

My priority is the next release, not 0.82. I can see Frediano rolling his
eyes, because he's been waiting for a long time. If you want to patch up
0.82, that's fine with me, but I want to encourage you to think of CVS
HEAD as the latest version. It will be, just as soon as I finish the
documentation.

Regards,

--jkl




Archive powered by MHonArc 2.6.24.

Top of Page