* 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> 2009-08-04 Christopher Faylor <me+cygwin@cgf.cx>
* fhandler.h (pdrive_buf): Defensively allocate one extra byte. * 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; buf.len = wsamsg->lpBuffers[i].len - off;
/* See net.cc:fdsock() and MSDN KB 823764 */ /* See net.cc:fdsock() and MSDN KB 823764 */
if (buf.len >= (unsigned) wmem ()) if (buf.len >= (unsigned) wmem ())
buf.len = (unsigned) wmem () - 1; buf.len = (unsigned) wmem ();
} }
do do

View File

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

View File

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

View File

@ -168,7 +168,7 @@ class path_conv
: fileattr (INVALID_FILE_ATTRIBUTES), wide_path (NULL), path_flags (0), : fileattr (INVALID_FILE_ATTRIBUTES), wide_path (NULL), path_flags (0),
known_suffix (NULL), normalized_path (NULL), error (0), dev (in_dev) 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, path_conv (int, const char *src, unsigned opt = PC_SYM_FOLLOW,