mirror of https://gitee.com/openkylin/qemu.git
slirp: use socket_set_nonblock
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
This commit is contained in:
parent
b72210568e
commit
1c5970a8b8
46
slirp/misc.c
46
slirp/misc.c
|
@ -215,7 +215,7 @@ fork_exec(struct socket *so, const char *ex, int do_pty)
|
||||||
setsockopt(so->s, SOL_SOCKET, SO_REUSEADDR, (char *)&opt, sizeof(int));
|
setsockopt(so->s, SOL_SOCKET, SO_REUSEADDR, (char *)&opt, sizeof(int));
|
||||||
opt = 1;
|
opt = 1;
|
||||||
setsockopt(so->s, SOL_SOCKET, SO_OOBINLINE, (char *)&opt, sizeof(int));
|
setsockopt(so->s, SOL_SOCKET, SO_OOBINLINE, (char *)&opt, sizeof(int));
|
||||||
fd_nonblock(so->s);
|
socket_set_nonblock(so->s);
|
||||||
|
|
||||||
/* Append the telnet options now */
|
/* Append the telnet options now */
|
||||||
if (so->so_m != NULL && do_pty == 1) {
|
if (so->so_m != NULL && do_pty == 1) {
|
||||||
|
@ -267,50 +267,6 @@ u_sleep(int usec)
|
||||||
select(0, &fdset, &fdset, &fdset, &t);
|
select(0, &fdset, &fdset, &fdset, &t);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Set fd blocking and non-blocking
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
|
||||||
fd_nonblock(int fd)
|
|
||||||
{
|
|
||||||
#ifdef FIONBIO
|
|
||||||
#ifdef _WIN32
|
|
||||||
unsigned long opt = 1;
|
|
||||||
#else
|
|
||||||
int opt = 1;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ioctlsocket(fd, FIONBIO, &opt);
|
|
||||||
#else
|
|
||||||
int opt;
|
|
||||||
|
|
||||||
opt = fcntl(fd, F_GETFL, 0);
|
|
||||||
opt |= O_NONBLOCK;
|
|
||||||
fcntl(fd, F_SETFL, opt);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
fd_block(int fd)
|
|
||||||
{
|
|
||||||
#ifdef FIONBIO
|
|
||||||
#ifdef _WIN32
|
|
||||||
unsigned long opt = 0;
|
|
||||||
#else
|
|
||||||
int opt = 0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
ioctlsocket(fd, FIONBIO, &opt);
|
|
||||||
#else
|
|
||||||
int opt;
|
|
||||||
|
|
||||||
opt = fcntl(fd, F_GETFL, 0);
|
|
||||||
opt &= ~O_NONBLOCK;
|
|
||||||
fcntl(fd, F_SETFL, opt);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void slirp_connection_info(Slirp *slirp, Monitor *mon)
|
void slirp_connection_info(Slirp *slirp, Monitor *mon)
|
||||||
{
|
{
|
||||||
const char * const tcpstates[] = {
|
const char * const tcpstates[] = {
|
||||||
|
|
|
@ -336,7 +336,7 @@ int tcp_fconnect(struct socket *so)
|
||||||
int opt, s=so->s;
|
int opt, s=so->s;
|
||||||
struct sockaddr_in addr;
|
struct sockaddr_in addr;
|
||||||
|
|
||||||
fd_nonblock(s);
|
socket_set_nonblock(s);
|
||||||
opt = 1;
|
opt = 1;
|
||||||
setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(opt ));
|
setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(opt ));
|
||||||
opt = 1;
|
opt = 1;
|
||||||
|
@ -424,7 +424,7 @@ tcp_connect(struct socket *inso)
|
||||||
tcp_close(sototcpcb(so)); /* This will sofree() as well */
|
tcp_close(sototcpcb(so)); /* This will sofree() as well */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
fd_nonblock(s);
|
socket_set_nonblock(s);
|
||||||
opt = 1;
|
opt = 1;
|
||||||
setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(int));
|
setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(int));
|
||||||
opt = 1;
|
opt = 1;
|
||||||
|
|
Loading…
Reference in New Issue