Hi, On Sun, Mar 06, 2016 at 08:34:38AM -0500, Selva Nair wrote: > On Sun, Mar 6, 2016 at 4:31 AM, Gert Doering <[email protected]> wrote: > > > I'm not sure if I understand in which scenarios data is fed to the > > nascent openvpn.exe on stdin - buf if done at all, we should better do > > it right :-) - I do wonder, though, if WriteFile() could block here, > > leading to a dead worker thread... all other pipe operations seem to > > go through AsyncPipeOp() - but that is orthogonal to this fix) > > > This is used for writing the management password to stdin. The GUI sends an > "ascii" password, but a client could potentially use some char set that > needs 3 or 4 bytes per char.
Ah! Tanks for the explanation, this is showing my lack of familiarity
with using the management interface in a programmatic fashion... (I use
it on the server side and manually telnet to it, having the password in
a file)
> And you are right, the write should not block. We don't see any deadlock
> even when openvpn errros out early, because of buffering, I suppose.. But
> bettter to make this non-blocking.
For "short" writes, it shouldn't block, no. On a unix pipe, you'd get
blocking if the buffers fill up and the reader is just sitting there and
not fetching the data - if the reader *dies*, the server would get an
error back (since nobody could ever read it).
Probably not very important, just wondering.
gert
--
USENET is *not* the non-clickable part of WWW!
//www.muc.de/~gert/
Gert Doering - Munich, Germany [email protected]
fax: +49-89-35655025 [email protected]
signature.asc
Description: PGP signature
