mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
slirp: fix guest network access with darwin host
On Darwin, connect, sendto and friends want the exact size of the sockaddr, not more (and in particular, not sizeof(struct sockaddr_storaget)) This commit adds the sockaddr_size helper to be used when passing a sockaddr size to such function, and makes use of it int sendto and connect calls. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Reviewed-by: John Arbuckle <programmingkidx@gmail.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
8c4bf97580
commit
0d48dfedc5
4 changed files with 15 additions and 3 deletions
|
@ -122,6 +122,18 @@ static inline int sockaddr_equal(struct sockaddr_storage *a,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static inline socklen_t sockaddr_size(struct sockaddr_storage *a)
|
||||
{
|
||||
switch (a->ss_family) {
|
||||
case AF_INET:
|
||||
return sizeof(struct sockaddr_in);
|
||||
case AF_INET6:
|
||||
return sizeof(struct sockaddr_in6);
|
||||
default:
|
||||
g_assert_not_reached();
|
||||
}
|
||||
}
|
||||
|
||||
struct socket *solookup(struct socket **, struct socket *,
|
||||
struct sockaddr_storage *, struct sockaddr_storage *);
|
||||
struct socket *socreate(Slirp *);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue