diff options
author | Conrad Scott <conrad.scott@dsl.pipex.com> | 2002-07-07 02:28:19 +0400 |
---|---|---|
committer | Conrad Scott <conrad.scott@dsl.pipex.com> | 2002-07-07 02:28:19 +0400 |
commit | 1ae9edf57c250f7779496e789c1cfaad230dd77f (patch) | |
tree | d6793808350d891f08524dd37f363bbfb740bf71 /winsup/cygwin/fhandler.h | |
parent | d5ff70186fffda2f4200cb93b8fddbc1fa42f5ac (diff) |
Merged changes from HEAD
Diffstat (limited to 'winsup/cygwin/fhandler.h')
-rw-r--r-- | winsup/cygwin/fhandler.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/winsup/cygwin/fhandler.h b/winsup/cygwin/fhandler.h index 5727d24ab..164a892d1 100644 --- a/winsup/cygwin/fhandler.h +++ b/winsup/cygwin/fhandler.h @@ -101,6 +101,10 @@ enum both flags are set. */ #define O_NONBLOCK_MASK (O_NONBLOCK | OLD_O_NDELAY) +#define UNCONNECTED 0 +#define CONNECT_PENDING 1 +#define CONNECTED 2 + extern const char *windows_device_names[]; extern struct __cygwin_perfile *perfile_table; #define __fmode (*(user_data->fmode_ptr)) @@ -367,6 +371,7 @@ class fhandler_socket: public fhandler_base HANDLE secret_event; struct _WSAPROTOCOL_INFOA *prot_info_ptr; char *sun_path; + int had_connect_or_listen; public: fhandler_socket (); @@ -380,6 +385,11 @@ class fhandler_socket: public fhandler_base void set_shutdown_read () {FHSETF (SHUTRD);} void set_shutdown_write () {FHSETF (SHUTWR);} + bool is_unconnected () const {return had_connect_or_listen == UNCONNECTED;} + bool is_connect_pending () const {return had_connect_or_listen == CONNECT_PENDING;} + bool is_connected () const {return had_connect_or_listen == CONNECTED;} + void set_connect_state (int newstate) { had_connect_or_listen = newstate; } + int bind (const struct sockaddr *name, int namelen); int connect (const struct sockaddr *name, int namelen); int listen (int backlog); @@ -1176,6 +1186,7 @@ struct select_record bool windows_handle; bool read_ready, write_ready, except_ready; bool read_selected, write_selected, except_selected; + bool except_on_write; int (*startup) (select_record *me, class select_stuff *stuff); int (*peek) (select_record *, bool); int (*verify) (select_record *me, fd_set *readfds, fd_set *writefds, @@ -1184,9 +1195,10 @@ struct select_record struct select_record *next; select_record (fhandler_base *in_fh = NULL) : fd (0), h (NULL), - fh (in_fh), saw_error (0), windows_handle (0), - read_ready (0), write_ready (0), except_ready (0), - read_selected (0), write_selected (0), except_selected (0), + fh (in_fh), saw_error (false), windows_handle (false), + read_ready (false), write_ready (false), except_ready (false), + read_selected (false), write_selected (false), + except_selected (false), except_on_write (false), startup (NULL), peek (NULL), verify (NULL), cleanup (NULL), next (NULL) {} }; |