diff options
author | Conrad Scott <conrad.scott@dsl.pipex.com> | 2002-06-17 22:50:39 +0400 |
---|---|---|
committer | Conrad Scott <conrad.scott@dsl.pipex.com> | 2002-06-17 22:50:39 +0400 |
commit | 061625829e483cba153df9dbc5670d027b501b1e (patch) | |
tree | 13f5d30d034112a8f20326aff83dbbbb5e89be16 /winsup/cygwin | |
parent | 56aeca57f2b638f8300845f51fc45c7097177f1f (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/ChangeLog | 19 | ||||
-rwxr-xr-x | winsup/cygwin/cygserver_transport_pipes.cc | 34 | ||||
-rwxr-xr-x | winsup/cygwin/cygserver_transport_sockets.cc | 4 | ||||
-rwxr-xr-x | winsup/cygwin/include/cygwin/cygserver_transport.h | 4 | ||||
-rwxr-xr-x | winsup/cygwin/include/cygwin/cygserver_transport_pipes.h | 4 | ||||
-rwxr-xr-x | winsup/cygwin/include/cygwin/cygserver_transport_sockets.h | 4 |
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 (); |