* 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:
Corinna Vinschen
2005-03-21 18:56:50 +00:00
parent b5e27d4009
commit ef82f76c30
4 changed files with 227 additions and 138 deletions

View File

@ -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: