Subject: [libssh2] [ libssh2-Bugs-1862727 ] libssh2_poll doesn't work on win32

[libssh2] [ libssh2-Bugs-1862727 ] libssh2_poll doesn't work on win32

From: <>
Date: Wed, 02 Jan 2008 13:33:49 -0800

Bugs item #1862727, was opened at 2008-01-02 16:33
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: jls (apjenkins)
Assigned to: Nobody/Anonymous (nobody)
Summary: libssh2_poll doesn't work on win32

Initial Comment:
[Sorry, this is a duplicate of bug 1862722, which I submitted anonymously by mistake]

Using libssh2 0.18, I found that libssh2_poll doesn't work on win32. It would always return 1, and the revents field of the LIBSSH2_POLLFD object I passed in would be set to garbage.

I found that the reason for this was that on WIN32, neither HAVE_SELECT nor HAVE_POLL get defined. The way libssh2_poll is written assumes that either the "ifdef HAVE_POLL" or "ifdef HAVE_SELECT" block of code will get
exected. If neither executes then no packets ever actually get read, it it just returns garbage.

Since Win32 does provide select, I simply defined HAVE_SELECT in win32/libssh2_config.h, and also made a small change to libssh2_priv.h so it won't try to include unix-only header files on windows. This made libssh2_poll work correctly on Windows. I've tested this patch with VStudio 2003 on a win32 machine, and VStudio 2005 on a win64 machine.


You can respond by visiting:

This email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
libssh2-devel mailing list
Received on 2008-01-04