From f932b6ce717e65687c3095e3e41a6c18972f996c Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Wed, 24 Jun 2009 14:42:29 +0200 Subject: slirp: Prepare for persistent socket state flags This prepares for adding flags to socket.so_state that must not be removed during the lifetime of a socket. Signed-off-by: Jan Kiszka Signed-off-by: Anthony Liguori --- slirp/slirp.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'slirp/slirp.c') diff --git a/slirp/slirp.c b/slirp/slirp.c index ab0a8548aa..08c10f2b36 100644 --- a/slirp/slirp.c +++ b/slirp/slirp.c @@ -495,7 +495,8 @@ void slirp_select_poll(fd_set *readfds, fd_set *writefds, fd_set *xfds) continue; /* else failed */ - so->so_state = SS_NOFDREF; + so->so_state &= SS_PERSISTENT_MASK; + so->so_state |= SS_NOFDREF; } /* else so->so_state &= ~SS_ISFCONNECTING; */ @@ -529,7 +530,8 @@ void slirp_select_poll(fd_set *readfds, fd_set *writefds, fd_set *xfds) continue; /* Still connecting, continue */ /* else failed */ - so->so_state = SS_NOFDREF; + so->so_state &= SS_PERSISTENT_MASK; + so->so_state |= SS_NOFDREF; /* tcp_input will take care of it */ } else { @@ -540,7 +542,8 @@ void slirp_select_poll(fd_set *readfds, fd_set *writefds, fd_set *xfds) errno == EINPROGRESS || errno == ENOTCONN) continue; /* else failed */ - so->so_state = SS_NOFDREF; + so->so_state &= SS_PERSISTENT_MASK; + so->so_state |= SS_NOFDREF; } else so->so_state &= ~SS_ISFCONNECTING; -- cgit v1.2.3