* 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:
@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user