I had time to look at the code, what I don't understand is how come we
work none blocking and do not test for EWOULDBLOCK at other places...
If I get it right, at least after send() we can get EWOULDBLOCK even
if select() returned we have free buffers.

On Wed, Jul 18, 2012 at 7:20 AM, Alon Bar-Lev <alon.bar...@gmail.com> wrote:
>
> Thanks.
> I think this is the simplest solution to this issue.
>
> On Tue, Jul 17, 2012 at 7:19 PM, Heiko Hund <heiko.h...@sophos.com> wrote:
> > Instead of EINPROGRESS WinSock2 returns WSAEWOULDBLOCK if a non-blocking
> > connect(2) cannot be completed immediately.
> >
> > Signed-off-by: Heiko Hund <heiko.h...@sophos.com>
> > ---
> >  src/openvpn/socket.c |    8 +++++++-
> >  1 files changed, 7 insertions(+), 1 deletions(-)
> >
> > diff --git a/src/openvpn/socket.c b/src/openvpn/socket.c
> > index 54ebce7..02e2768 100644
> > --- a/src/openvpn/socket.c
> > +++ b/src/openvpn/socket.c
> > @@ -1165,7 +1165,13 @@ openvpn_connect (socket_descriptor_t sd,
> >    status = connect (sd, &remote->addr.sa,
> > af_addr_size(remote->addr.sa.sa_family));
> >    if (status)
> >      status = openvpn_errno_socket ();
> > -  if (status == EINPROGRESS)
> > +  if (
> > +#ifdef WIN32
> > +    status == WSAEWOULDBLOCK
> > +#else
> > +    status == EINPROGRESS
> > +#endif
> > +  )
> >      {
> >        while (true)
> >         {
> > --
> > 1.7.9
> >
> >
> >
> > ------------------------------------------------------------------------------
> > Live Security Virtual Conference
> > Exclusive live event will cover all the ways today's security and
> > threat landscape has changed and how IT managers can respond.
> > Discussions
> > will include endpoint security, mobile security and the latest in
> > malware
> > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> > _______________________________________________
> > Openvpn-devel mailing list
> > Openvpn-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to