aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-10-18 17:25:56 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2022-10-18 17:25:56 +0000
commita0c8af739d3dfc25c2b7aef54f128421919c5927 (patch)
tree234eafa496c67d7bd1666bdbe257107230caec04
parentc861bc58a39fe34d102277dc2a306e0f194852f6 (diff)
parent29b8c846dc135e55777417355472137b165c315f (diff)
downloadqemu-snap-temp-L45800000957368049.tar.gz
Merge "Merge cherrypicks of [2255239] into emu-31-release." into emu-31-releasesnap-temp-L45800000957368049
-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,