This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Problem building CVS-1.10.x


Trevor, et al,

I found out what was causing the problem with CVS.  My NT machine has the
Aventail Connect VPN client installed on it (required to access internal
systems at work via the internet).  Connect is resident as a "primary
service provider" in NT, so it is automatically loaded by winsock when CVS
connects to the server.  In theory, it examines the destination IP address
of outgoing traffic to determine whether redirection is applied.
Addresses on my own private network are not in the redirection list, so I
never considered it as a potential issue.

For whatever reason, it causes the Cygwin runtime to malfunction.  In
client.c the following happens:

- Connection is made to the server by opening socket fd's and exchanging
authentication using send() and recv() calls.  This works fine.

- Input and output streams are created by fdopen() on the file
descriptors.

- The client stores outgoing information in a buffer using
send_to_server().

- At line 4374 of start_server() (client.c), get_server_responses() is
invoked to listen back (note that the data has not been transmitted yet!).

- get_server_responses() calls read_line().

- read_line() calls buf_flush() (buffer.c).

- buf_flush() calls buf_send_output() to write buffered data to the stream
using fwrite().  So far, so good.

- When buf_send_output() returns (line 346 of buffer.c), an indirect call
is made to stdio_buffer_flush() to fflush() the FILE *.  

Here's where things go bad:  Unless I tell Aventail not to interact at all
with cvs, this call fails with errno 22 (EINVAL) - triggering the
"..invalid argument" message.  Again, since CVS had opened a socket to a
local machine, I'm not sure why this is necessary at all.

Naturally, when I need to access a CVS server on the other side of the VPN
tunnel, cvs.exe must be removed from the ignored application list.  An
annoying extra step.

There's a bug here somewhere, and it's probably with Aventail's DLLs.
Nonetheless, someone familiar with Cygwin library internals might want to
take a quick look at it.  

Steve



--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]