* fhandler.h (fhandler_socket::sun_path): New private member.

(fhandler_socket::set_sun_path): New method.
	(fhandler_socket::get_sun_path): Ditto.
	* fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize
	sun_path to NULL.
	(fhandler_socket::~fhandler_socket): Free sun_path if needed.
	(fhandler_socket::set_sun_path): New method.
	* net.cc (cygwin_bind): Set sun_path to path of local socket file.
	(cygwin_getsockname): Add code to return correct sockaddr for unix
	domain sockets.
This commit is contained in:
Corinna Vinschen
2002-01-01 16:25:31 +00:00
parent b346ae85d6
commit 2fe2790925
5 changed files with 5384 additions and 5341 deletions

View File

@ -1,6 +1,6 @@
/* fhandler_socket.cc. See fhandler.h for a description of the fhandler classes.
Copyright 2000, 2001 Red Hat, Inc.
Copyright 2000, 2001, 2002 Red Hat, Inc.
This file is part of Cygwin.
@ -42,7 +42,7 @@ fhandler_dev_random* entropy_source;
/* fhandler_socket */
fhandler_socket::fhandler_socket ()
: fhandler_base (FH_SOCKET)
: fhandler_base (FH_SOCKET), sun_path (NULL)
{
set_need_fork_fixup ();
prot_info_ptr = (LPWSAPROTOCOL_INFOA) cmalloc (HEAP_BUF,
@ -53,6 +53,8 @@ fhandler_socket::~fhandler_socket ()
{
if (prot_info_ptr)
cfree (prot_info_ptr);
if (sun_path)
cfree (sun_path);
}
void
@ -478,3 +480,11 @@ fhandler_socket::set_close_on_exec (int val)
set_close_on_exec_flag (val);
debug_printf ("set close_on_exec for %s to %d", get_name (), val);
}
void
fhandler_socket::set_sun_path (const char *path)
{
if (sun_path)
cfree (sun_path);
sun_path = cstrdup (path);
}