diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-03-14 14:51:21 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2023-03-14 14:51:21 +0000 |
commit | b19a4b3e061909602ef8e1288a40f2765a2ffa38 (patch) | |
tree | 3a667ef994b72fadd36c98133b9f767d7a569490 | |
parent | 49511430cf12b5492c0d5fd07f2e51618300a3f2 (diff) | |
parent | cb72339aff184453abe759bc7b634108f672612f (diff) | |
download | qemu-snap-temp-L13100000959146164.tar.gz |
Merge "Merge cherrypicks of ['android-review.googlesource.com/2260304'] into emu-32-release." into emu-32-releasesnap-temp-L13100000959146164
-rw-r--r-- | android-qemu2-glue/qemu-setup-dns-servers.cpp | 3 | ||||
-rw-r--r-- | include/net/slirp.h | 3 | ||||
-rw-r--r-- | net/slirp.c | 12 |
3 files changed, 16 insertions, 2 deletions
diff --git a/android-qemu2-glue/qemu-setup-dns-servers.cpp b/android-qemu2-glue/qemu-setup-dns-servers.cpp index 2845b4507b..edaf079c1c 100644 --- a/android-qemu2-glue/qemu-setup-dns-servers.cpp +++ b/android-qemu2-glue/qemu-setup-dns-servers.cpp @@ -143,8 +143,7 @@ bool qemu_android_emulation_setup_dns_servers(const char* dns_servers, } void qemu_android_emulation_init_slirp(void) { - slirp_init_custom_dns_servers(static_cast<Slirp*>(net_slirp_state()), - s_dns_server_addresses, + net_slirp_init_custom_dns_servers(s_dns_server_addresses, s_num_dns_server_addresses); } diff --git a/include/net/slirp.h b/include/net/slirp.h index 018a230b82..ec134e2677 100644 --- a/include/net/slirp.h +++ b/include/net/slirp.h @@ -53,6 +53,9 @@ void net_slirp_set_shapers(void* out_opaque, void* in_opaque, SlirpShaperSendFunc in_send); +void net_slirp_init_custom_dns_servers(const struct sockaddr_storage* dns, + int dns_count); + #endif #endif /* QEMU_NET_SLIRP_H */ diff --git a/net/slirp.c b/net/slirp.c index 4ce02ac3a6..f2967e3956 100644 --- a/net/slirp.c +++ b/net/slirp.c @@ -1260,6 +1260,18 @@ int net_slirp_parse_legacy(QemuOptsList *opts_list, const char *optarg, int *ret return 1; } +void net_slirp_init_custom_dns_servers(const struct sockaddr_storage* dns, + int dns_count) { + SlirpState *s = NULL; + QTAILQ_FOREACH(s, &slirp_stacks, entry) { + if (!s || !s->slirp) { + qemu_abort("Trying to init custom DNS before slirp " + "initialization\n"); + } + slirp_init_custom_dns_servers(s->slirp, dns, dns_count); + } +} + void net_slirp_set_shapers(void* out_opaque, SlirpShaperSendFunc out_send, void* in_opaque, |