* fhandler.h (class cygthread): Forward declare.
(fhandler_socket::sec_pipe): Remove. (fhandler_socket::eid_pipe_name): Remove. (fhandler_socket::eid_setblocking): New private method. (fhandler_socket::eid_unsetblocking): Ditto (fhandler_socket::eid_recv): Ditto (fhandler_socket::eid_send): Ditto (fhandler_socket::eid_accept): Ditto (fhandler_socket::eid_connect): New public method. * fhandler_socket.cc (ASYNC_MASK): Move to beginning of file. (fhandler_socket::eid_pipe_name): Remove. (fhandler_socket::set_socketpair_eids): Move down to fhandler_socket methods. (fhandler_socket::fhandler_socket): Drop initializing sec_pipe. (fhandler_socket::~fhandler_socket): Drop closing sec_pipe. (fhandler_socket::eid_setblocking): New method. (fhandler_socket::eid_unsetblocking): New method. (fhandler_socket::eid_recv): New method. (fhandler_socket::eid_send): New method. (fhandler_socket::eid_connect): New method. (fhandler_socket::eid_accept): New method. (fhandler_socket::dup): Drop sec_pipe handling. (fhandler_socket::connect): Fix WinSock error handling. Prepare eid credential transaction. Call eid_connect on successful connect. (fhandler_socket::listen): Drop creating sec_pipe. (fhandler_socket::accept): Slightly simplify code. Call eid_accept on accepted socket. (fhandler_socket::getpeereid): Reshuffle code for readability. Fix test for invalid pid. * select.cc (set_bits): Call eid_connect on successfully connected socket.
This commit is contained in:
@ -37,6 +37,7 @@ typedef struct __DIR DIR;
|
||||
struct dirent;
|
||||
struct iovec;
|
||||
struct __acl32;
|
||||
class cygthread;
|
||||
|
||||
enum dirent_states
|
||||
{
|
||||
@ -365,15 +366,19 @@ class fhandler_socket: public fhandler_base
|
||||
int connect_secret [4];
|
||||
HANDLE secret_event;
|
||||
|
||||
HANDLE sec_pipe;
|
||||
pid_t sec_pid;
|
||||
__uid32_t sec_uid;
|
||||
__gid32_t sec_gid;
|
||||
pid_t sec_peer_pid;
|
||||
__uid32_t sec_peer_uid;
|
||||
__gid32_t sec_peer_gid;
|
||||
char *eid_pipe_name (char *buf);
|
||||
void eid_setblocking (bool &, bool &);
|
||||
void eid_unsetblocking (bool, bool);
|
||||
bool eid_recv (void);
|
||||
bool eid_send (void);
|
||||
void eid_accept (void);
|
||||
public:
|
||||
void eid_connect (void);
|
||||
void set_socketpair_eids (void);
|
||||
|
||||
private:
|
||||
|
Reference in New Issue
Block a user