* fhandler.h (fhandler_socket::get_connect_state): New method to
return socket connection state. * fhandler_socket.cc (dup): Copy socket connect state to new file handle. * net.cc (cygwin_rcmd): Mark file handles of sockets returned by rcmd() as CONNECTED state. (cygwin_rexec): Similarly for rexec(). (socketpair): Mark both ends of a new socket pair as CONNECTED.
This commit is contained in:
parent
5e276f90b2
commit
4b2cbaeefd
|
@ -1,3 +1,14 @@
|
||||||
|
2003-07-04 N Stephens <nigel@mips.com>
|
||||||
|
|
||||||
|
* fhandler.h (fhandler_socket::get_connect_state): New method to
|
||||||
|
return socket connection state.
|
||||||
|
* fhandler_socket.cc (dup): Copy socket connect state to new file
|
||||||
|
handle.
|
||||||
|
* net.cc (cygwin_rcmd): Mark file handles of sockets returned by
|
||||||
|
rcmd() as CONNECTED state.
|
||||||
|
(cygwin_rexec): Similarly for rexec().
|
||||||
|
(socketpair): Mark both ends of a new socket pair as CONNECTED.
|
||||||
|
|
||||||
2003-07-04 Corinna Vinschen <corinna@vinschen.de>
|
2003-07-04 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* mmap.cc (fhandler_disk_file::mmap): Fix address test.
|
* mmap.cc (fhandler_disk_file::mmap): Fix address test.
|
||||||
|
|
|
@ -412,6 +412,7 @@ class fhandler_socket: public fhandler_base
|
||||||
bool is_connect_pending () const {return had_connect_or_listen == CONNECT_PENDING;}
|
bool is_connect_pending () const {return had_connect_or_listen == CONNECT_PENDING;}
|
||||||
bool is_connected () const {return had_connect_or_listen == CONNECTED;}
|
bool is_connected () const {return had_connect_or_listen == CONNECTED;}
|
||||||
void set_connect_state (int newstate) { had_connect_or_listen = newstate; }
|
void set_connect_state (int newstate) { had_connect_or_listen = newstate; }
|
||||||
|
int get_connect_state () const { return had_connect_or_listen; }
|
||||||
|
|
||||||
int bind (const struct sockaddr *name, int namelen);
|
int bind (const struct sockaddr *name, int namelen);
|
||||||
int connect (const struct sockaddr *name, int namelen);
|
int connect (const struct sockaddr *name, int namelen);
|
||||||
|
|
|
@ -320,6 +320,7 @@ fhandler_socket::dup (fhandler_base *child)
|
||||||
if (get_addr_family () == AF_LOCAL)
|
if (get_addr_family () == AF_LOCAL)
|
||||||
fhs->set_sun_path (get_sun_path ());
|
fhs->set_sun_path (get_sun_path ());
|
||||||
fhs->set_socket_type (get_socket_type ());
|
fhs->set_socket_type (get_socket_type ());
|
||||||
|
fhs->set_connect_state (get_connect_state ());
|
||||||
|
|
||||||
if (winsock2_active)
|
if (winsock2_active)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1997,7 +1997,10 @@ cygwin_rcmd (char **ahost, unsigned short inport, char *locuser,
|
||||||
if (res_fd >= 0)
|
if (res_fd >= 0)
|
||||||
fh = fdsock (res_fd, "/dev/tcp", res);
|
fh = fdsock (res_fd, "/dev/tcp", res);
|
||||||
if (fh)
|
if (fh)
|
||||||
res = res_fd;
|
{
|
||||||
|
fh->set_connect_state (CONNECTED);
|
||||||
|
res = res_fd;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
closesocket (res);
|
closesocket (res);
|
||||||
|
@ -2012,7 +2015,10 @@ cygwin_rcmd (char **ahost, unsigned short inport, char *locuser,
|
||||||
if (newfd >= 0)
|
if (newfd >= 0)
|
||||||
fh = fdsock (newfd, "/dev/tcp", fd2s);
|
fh = fdsock (newfd, "/dev/tcp", fd2s);
|
||||||
if (fh)
|
if (fh)
|
||||||
*fd2p = newfd;
|
{
|
||||||
|
*fd2p = newfd;
|
||||||
|
fh->set_connect_state (CONNECTED);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
closesocket (res);
|
closesocket (res);
|
||||||
|
@ -2081,7 +2087,10 @@ cygwin_rexec (char **ahost, unsigned short inport, char *locuser,
|
||||||
if (res_fd >= 0)
|
if (res_fd >= 0)
|
||||||
fh = fdsock (res_fd, "/dev/tcp", res);
|
fh = fdsock (res_fd, "/dev/tcp", res);
|
||||||
if (fh)
|
if (fh)
|
||||||
res = res_fd;
|
{
|
||||||
|
fh->set_connect_state (CONNECTED);
|
||||||
|
res = res_fd;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
closesocket (res);
|
closesocket (res);
|
||||||
|
@ -2096,7 +2105,10 @@ cygwin_rexec (char **ahost, unsigned short inport, char *locuser,
|
||||||
if (newfd >= 0)
|
if (newfd >= 0)
|
||||||
fh = fdsock (newfd, "/dev/tcp", fd2s);
|
fh = fdsock (newfd, "/dev/tcp", fd2s);
|
||||||
if (fh)
|
if (fh)
|
||||||
*fd2p = newfd;
|
{
|
||||||
|
fh->set_connect_state (CONNECTED);
|
||||||
|
*fd2p = newfd;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
closesocket (res);
|
closesocket (res);
|
||||||
|
@ -2272,6 +2284,7 @@ socketpair (int family, int type, int protocol, int *sb)
|
||||||
fh->set_sun_path ("");
|
fh->set_sun_path ("");
|
||||||
fh->set_addr_family (family);
|
fh->set_addr_family (family);
|
||||||
fh->set_socket_type (type);
|
fh->set_socket_type (type);
|
||||||
|
fh->set_connect_state (CONNECTED);
|
||||||
|
|
||||||
cygheap_fdnew sb1 (sb0, false);
|
cygheap_fdnew sb1 (sb0, false);
|
||||||
|
|
||||||
|
@ -2283,6 +2296,7 @@ socketpair (int family, int type, int protocol, int *sb)
|
||||||
fh->set_sun_path ("");
|
fh->set_sun_path ("");
|
||||||
fh->set_addr_family (family);
|
fh->set_addr_family (family);
|
||||||
fh->set_socket_type (type);
|
fh->set_socket_type (type);
|
||||||
|
fh->set_connect_state (CONNECTED);
|
||||||
|
|
||||||
sb[0] = sb0;
|
sb[0] = sb0;
|
||||||
sb[1] = sb1;
|
sb[1] = sb1;
|
||||||
|
|
Loading…
Reference in New Issue