aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-03-14 14:51:21 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2023-03-14 14:51:21 +0000
commitb19a4b3e061909602ef8e1288a40f2765a2ffa38 (patch)
tree3a667ef994b72fadd36c98133b9f767d7a569490
parent49511430cf12b5492c0d5fd07f2e51618300a3f2 (diff)
parentcb72339aff184453abe759bc7b634108f672612f (diff)
downloadqemu-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.cpp3
-rw-r--r--include/net/slirp.h3
-rw-r--r--net/slirp.c12
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,