Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConrad Scott <conrad.scott@dsl.pipex.com>2002-06-17 22:50:39 +0400
committerConrad Scott <conrad.scott@dsl.pipex.com>2002-06-17 22:50:39 +0400
commit061625829e483cba153df9dbc5670d027b501b1e (patch)
tree13f5d30d034112a8f20326aff83dbbbb5e89be16 /winsup/cygwin
parent56aeca57f2b638f8300845f51fc45c7097177f1f (diff)
* include/cygwin/cygserver_transport.h
(cygserver_transport::read): Change buffer type to void *. (cygserver_transport::write): Ditto. * include/cygwin/cygserver_transport_sockets.h (cygserver_transport_sockets::read): Ditto. (cygserver_transport_sockets::write): Ditto. * include/cygwin/cygserver_transport_pipes.h (cygserver_transport_pipes::read): Ditto. (cygserver_transport_pipes::write): Ditto. * cygserver_transport_sockets.cc (cygserver_transport_sockets::read): Ditto. (cygserver_transport_sockets::write): Ditto. * cygserver_transport_pipes.cc (cygserver_transport_pipes::read): Ditto. Set errno on error, to match behaviour of cygserver_transport_sockets class. (cygserver_transport_pipes::write): Ditto.
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog19
-rwxr-xr-xwinsup/cygwin/cygserver_transport_pipes.cc34
-rwxr-xr-xwinsup/cygwin/cygserver_transport_sockets.cc4
-rwxr-xr-xwinsup/cygwin/include/cygwin/cygserver_transport.h4
-rwxr-xr-xwinsup/cygwin/include/cygwin/cygserver_transport_pipes.h4
-rwxr-xr-xwinsup/cygwin/include/cygwin/cygserver_transport_sockets.h4
6 files changed, 49 insertions, 20 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 84efd9880..ffb8e4d0f 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,22 @@
+2002-06-17 Conrad Scott <conrad.scott@dsl.pipex.com>
+
+ * include/cygwin/cygserver_transport.h
+ (cygserver_transport::read): Change buffer type to void *.
+ (cygserver_transport::write): Ditto.
+ * include/cygwin/cygserver_transport_sockets.h
+ (cygserver_transport_sockets::read): Ditto.
+ (cygserver_transport_sockets::write): Ditto.
+ * include/cygwin/cygserver_transport_pipes.h
+ (cygserver_transport_pipes::read): Ditto.
+ (cygserver_transport_pipes::write): Ditto.
+ * cygserver_transport_sockets.cc
+ (cygserver_transport_sockets::read): Ditto.
+ (cygserver_transport_sockets::write): Ditto.
+ * cygserver_transport_pipes.cc
+ (cygserver_transport_pipes::read): Ditto. Set errno on error, to
+ match behaviour of cygserver_transport_sockets class.
+ (cygserver_transport_pipes::write): Ditto.
+
2002-06-16 Conrad Scott <conrad.scott@dsl.pipex.com>
* cygserver.cc (version): New static variable.
diff --git a/winsup/cygwin/cygserver_transport_pipes.cc b/winsup/cygwin/cygserver_transport_pipes.cc
index c27007477..1ccc42848 100755
--- a/winsup/cygwin/cygserver_transport_pipes.cc
+++ b/winsup/cygwin/cygserver_transport_pipes.cc
@@ -122,37 +122,47 @@ transport_layer_pipes::close()
}
ssize_t
-transport_layer_pipes::read (char *buf, size_t len)
+transport_layer_pipes::read (void * const buf, const size_t len)
{
// verbose: debug_printf ("reading from pipe %p", pipe);
+
if (!pipe || pipe == INVALID_HANDLE_VALUE)
- return -1;
+ {
+ errno = EBADF;
+ return -1;
+ }
- DWORD bytes_read;
- DWORD rc = ReadFile (pipe, buf, len, &bytes_read, NULL);
- if (!rc)
+ DWORD count;
+ if (!ReadFile (pipe, buf, len, &count, NULL))
{
debug_printf ("error reading from pipe (%lu)", GetLastError ());
+ errno = EINVAL; // FIXME?
return -1;
}
- return bytes_read;
+
+ return count;
}
ssize_t
-transport_layer_pipes::write (char *buf, size_t len)
+transport_layer_pipes::write (void * const buf, const size_t len)
{
// verbose: debug_printf ("writing to pipe %p", pipe);
- DWORD bytes_written, rc;
+
if (!pipe || pipe == INVALID_HANDLE_VALUE)
- return -1;
+ {
+ errno = EBADF;
+ return -1;
+ }
- rc = WriteFile (pipe, buf, len, &bytes_written, NULL);
- if (!rc)
+ DWORD count;
+ if (!WriteFile (pipe, buf, len, &count, NULL))
{
debug_printf ("error writing to pipe (%lu)", GetLastError ());
+ errno = EINVAL; // FIXME?
return -1;
}
- return bytes_written;
+
+ return count;
}
bool
diff --git a/winsup/cygwin/cygserver_transport_sockets.cc b/winsup/cygwin/cygserver_transport_sockets.cc
index 4984df8dc..8273798ae 100755
--- a/winsup/cygwin/cygserver_transport_sockets.cc
+++ b/winsup/cygwin/cygserver_transport_sockets.cc
@@ -113,14 +113,14 @@ transport_layer_sockets::close()
}
ssize_t
-transport_layer_sockets::read (char *buf, size_t len)
+transport_layer_sockets::read (void *buf, size_t len)
{
/* FIXME: are we open? */
return ::read (fd, buf, len);
}
ssize_t
-transport_layer_sockets::write (char *buf, size_t len)
+transport_layer_sockets::write (void *buf, size_t len)
{
/* FIXME: are we open? */
return ::write (fd, buf, len);
diff --git a/winsup/cygwin/include/cygwin/cygserver_transport.h b/winsup/cygwin/include/cygwin/cygserver_transport.h
index 8fdd2e1d0..d65176299 100755
--- a/winsup/cygwin/include/cygwin/cygserver_transport.h
+++ b/winsup/cygwin/include/cygwin/cygserver_transport.h
@@ -21,8 +21,8 @@ class transport_layer_base
virtual void listen () = 0;
virtual class transport_layer_base * accept () = 0;
virtual void close () = 0;
- virtual ssize_t read (char *buf, size_t len) = 0;
- virtual ssize_t write (char *buf, size_t len) = 0;
+ virtual ssize_t read (void *buf, size_t len) = 0;
+ virtual ssize_t write (void *buf, size_t len) = 0;
virtual bool connect() = 0;
virtual void impersonate_client ();
virtual void revert_to_self ();
diff --git a/winsup/cygwin/include/cygwin/cygserver_transport_pipes.h b/winsup/cygwin/include/cygwin/cygserver_transport_pipes.h
index db88d5167..a05a76f7a 100755
--- a/winsup/cygwin/include/cygwin/cygserver_transport_pipes.h
+++ b/winsup/cygwin/include/cygwin/cygserver_transport_pipes.h
@@ -19,8 +19,8 @@ class transport_layer_pipes : public transport_layer_base
virtual void listen ();
virtual class transport_layer_pipes * accept ();
virtual void close ();
- virtual ssize_t read (char *buf, size_t len);
- virtual ssize_t write (char *buf, size_t len);
+ virtual ssize_t read (void *buf, size_t len);
+ virtual ssize_t write (void *buf, size_t len);
virtual bool connect();
virtual void impersonate_client ();
virtual void revert_to_self ();
diff --git a/winsup/cygwin/include/cygwin/cygserver_transport_sockets.h b/winsup/cygwin/include/cygwin/cygserver_transport_sockets.h
index d05ddfeda..4a343a026 100755
--- a/winsup/cygwin/include/cygwin/cygserver_transport_sockets.h
+++ b/winsup/cygwin/include/cygwin/cygserver_transport_sockets.h
@@ -18,8 +18,8 @@ class transport_layer_sockets : public transport_layer_base
virtual void listen ();
virtual class transport_layer_sockets * accept ();
virtual void close ();
- virtual ssize_t read (char *buf, size_t len);
- virtual ssize_t write (char *buf, size_t len);
+ virtual ssize_t read (void *buf, size_t len);
+ virtual ssize_t write (void *buf, size_t len);
virtual bool connect();
transport_layer_sockets ();
virtual ~transport_layer_sockets ();