aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Weil <sw@weilnetz.de>2013-03-08 19:58:32 +0100
committerStefan Hajnoczi <stefanha@redhat.com>2013-03-22 13:14:48 +0100
commit513737b82a7fd9fcf49b82872ff75134746041e7 (patch)
treed29c26d1d837cef16d94ab8f5a5b8e18e78dad92
parent2f52555e93636116c41de9732e114b17f82b8ee9 (diff)
downloadslirp-513737b82a7fd9fcf49b82872ff75134746041e7.zip
slirp-513737b82a7fd9fcf49b82872ff75134746041e7.tar.gz
slirp-513737b82a7fd9fcf49b82872ff75134746041e7.tar.bz2
MinGW: Replace setsockopt by qemu_setsocketopt
Instead of adding missing type casts which are needed by MinGW for the 4th argument, the patch uses qemu_setsockopt which was invented for this purpose. Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-rw-r--r--misc.c4
-rw-r--r--socket.c5
-rw-r--r--tcp_subr.c8
-rw-r--r--udp.c2
4 files changed, 9 insertions, 10 deletions
diff --git a/misc.c b/misc.c
index a2abe2d..10c233f 100644
--- a/misc.c
+++ b/misc.c
@@ -207,9 +207,9 @@ int fork_exec(struct socket *so, const char *ex, int do_pty)
} while (so->s < 0 && errno == EINTR);
closesocket(s);
opt = 1;
- setsockopt(so->s, SOL_SOCKET, SO_REUSEADDR, (char *)&opt, sizeof(int));
+ qemu_setsockopt(so->s, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(int));
opt = 1;
- setsockopt(so->s, SOL_SOCKET, SO_OOBINLINE, (char *)&opt, sizeof(int));
+ qemu_setsockopt(so->s, SOL_SOCKET, SO_OOBINLINE, &opt, sizeof(int));
socket_set_nonblock(so->s);
/* Append the telnet options now */
diff --git a/socket.c b/socket.c
index 8786c6f..b7e9e49 100644
--- a/socket.c
+++ b/socket.c
@@ -633,8 +633,7 @@ struct socket *tcp_listen(Slirp *slirp, uint32_t haddr, u_int hport,
addr.sin_port = hport;
if (((s = qemu_socket(AF_INET, SOCK_STREAM, 0)) < 0) ||
- (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *)&opt, sizeof(int)) <
- 0) ||
+ (qemu_setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(int)) < 0) ||
(bind(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) ||
(listen(s, 1) < 0)) {
int tmperrno = errno; /* Don't clobber the real reason we failed */
@@ -649,7 +648,7 @@ struct socket *tcp_listen(Slirp *slirp, uint32_t haddr, u_int hport,
#endif
return NULL;
}
- setsockopt(s, SOL_SOCKET, SO_OOBINLINE, (char *)&opt, sizeof(int));
+ qemu_setsockopt(s, SOL_SOCKET, SO_OOBINLINE, &opt, sizeof(int));
getsockname(s, (struct sockaddr *)&addr, &addrlen);
so->so_fport = addr.sin_port;
diff --git a/tcp_subr.c b/tcp_subr.c
index 9c93612..6881f1f 100644
--- a/tcp_subr.c
+++ b/tcp_subr.c
@@ -336,9 +336,9 @@ int tcp_fconnect(struct socket *so)
socket_set_nonblock(s);
opt = 1;
- setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *)&opt, sizeof(opt));
+ qemu_setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));
opt = 1;
- setsockopt(s, SOL_SOCKET, SO_OOBINLINE, (char *)&opt, sizeof(opt));
+ qemu_setsockopt(s, SOL_SOCKET, SO_OOBINLINE, &opt, sizeof(opt));
addr.sin_family = AF_INET;
if ((so->so_faddr.s_addr & slirp->vnetwork_mask.s_addr) ==
@@ -426,9 +426,9 @@ void tcp_connect(struct socket *inso)
}
socket_set_nonblock(s);
opt = 1;
- setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *)&opt, sizeof(int));
+ qemu_setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(int));
opt = 1;
- setsockopt(s, SOL_SOCKET, SO_OOBINLINE, (char *)&opt, sizeof(int));
+ qemu_setsockopt(s, SOL_SOCKET, SO_OOBINLINE, &opt, sizeof(int));
socket_set_nodelay(s);
so->so_fport = addr.sin_port;
diff --git a/udp.c b/udp.c
index 8206e02..dfc314a 100644
--- a/udp.c
+++ b/udp.c
@@ -362,7 +362,7 @@ struct socket *udp_listen(Slirp *slirp, uint32_t haddr, u_int hport,
udp_detach(so);
return NULL;
}
- setsockopt(so->s, SOL_SOCKET, SO_REUSEADDR, (char *)&opt, sizeof(int));
+ qemu_setsockopt(so->s, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(int));
getsockname(so->s, (struct sockaddr *)&addr, &addrlen);
so->so_fport = addr.sin_port;