* fhandler_socket.cc (fhandler_socket::send_internal): Just use wmem size if

the length exceeds it.
* net.cc (fdsock): Use 65535 as window size, just like the comment says or we
run into problems with DuplicateHandle.
* path.cc (patch_conv::check): Use set_path to set invalid filename.
* path.h (path_conv::path_conv): Ditto.
This commit is contained in:
Christopher Faylor 2009-08-04 22:35:35 +00:00
parent 3b689b97bd
commit 631681619e
5 changed files with 15 additions and 5 deletions

View File

@ -1,3 +1,13 @@
2009-08-04 Christopher Faylor <me+cygwin@cgf.cx>
* fhandler_socket.cc (fhandler_socket::send_internal): Just use wmem
size if the length exceeds it.
* net.cc (fdsock): Use 65535 as window size, just like the comment
says or we run into problems with DuplicateHandle.
* path.cc (patch_conv::check): Use set_path to set invalid filename.
* path.h (path_conv::path_conv): Ditto.
2009-08-04 Christopher Faylor <me+cygwin@cgf.cx>
* fhandler.h (pdrive_buf): Defensively allocate one extra byte.

View File

@ -1499,7 +1499,7 @@ fhandler_socket::send_internal (struct _WSAMSG *wsamsg, int flags)
buf.len = wsamsg->lpBuffers[i].len - off;
/* See net.cc:fdsock() and MSDN KB 823764 */
if (buf.len >= (unsigned) wmem ())
buf.len = (unsigned) wmem () - 1;
buf.len = (unsigned) wmem ();
}
do

View File

@ -507,8 +507,8 @@ fdsock (cygheap_fdmanip& fd, const device *dev, SOCKET soc)
(*) Maximum normal TCP window size. Coincidence? */
((fhandler_socket *) fd)->rmem () = 65536;
((fhandler_socket *) fd)->wmem () = 65536;
((fhandler_socket *) fd)->rmem () = 65535;
((fhandler_socket *) fd)->wmem () = 65535;
if (::setsockopt (soc, SOL_SOCKET, SO_RCVBUF,
(char *) &((fhandler_socket *) fd)->rmem (), sizeof (int)))
debug_printf ("setsockopt(SO_RCVBUF) failed, %lu", WSAGetLastError ());

View File

@ -968,7 +968,7 @@ virtual_component_retry:
{
too_long:
error = ENAMETOOLONG;
this->path = cstrdup ("::ENAMETOOLONG::");
set_path ("::ENAMETOOLONG::");
return;
}

View File

@ -168,7 +168,7 @@ class path_conv
: fileattr (INVALID_FILE_ATTRIBUTES), wide_path (NULL), path_flags (0),
known_suffix (NULL), normalized_path (NULL), error (0), dev (in_dev)
{
path = cstrdup (in_dev.native);
set_path (in_dev.native);
}
path_conv (int, const char *src, unsigned opt = PC_SYM_FOLLOW,