diff options
Diffstat (limited to 'gitlab/issues/target_missing/host_missing/accel_missing/1837.toml')
| -rw-r--r-- | gitlab/issues/target_missing/host_missing/accel_missing/1837.toml | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/gitlab/issues/target_missing/host_missing/accel_missing/1837.toml b/gitlab/issues/target_missing/host_missing/accel_missing/1837.toml new file mode 100644 index 000000000..63eb7fbb0 --- /dev/null +++ b/gitlab/issues/target_missing/host_missing/accel_missing/1837.toml @@ -0,0 +1,47 @@ +id = 1837 +title = "Support IP_MULTICAST_IF socket option in linux-user" +state = "opened" +created_at = "2023-08-18T13:15:51.932Z" +closed_at = "n/a" +labels = ["linux-user"] +url = "https://gitlab.com/qemu-project/qemu/-/issues/1837" +host-os = "n/a" +host-arch = "n/a" +qemu-version = "n/a" +guest-os = "n/a" +guest-arch = "n/a" +description = "n/a" +reproduce = "n/a" +additional = """I've run into this limitation in qemu-aarch64-static version Debian 1:6.2+dfsg-2ubuntu6.12, but from the link above, it doesn't seem to be implemented on master yet. + +Here's some source code that demonstrates the failure: +``` +#include <sys/socket.h> +#include <arpa/inet.h> +#include <netinet/ip.h> +#include <unistd.h> +#include <assert.h> +#include <stdio.h> + +int main() +{ + int fd, ret; + struct in_addr addr = {htonl(INADDR_LOOPBACK)}; + + fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); + assert(fd >= 0); + ret = setsockopt(fd, IPPROTO_IP, IP_MULTICAST_IF, &addr, sizeof(addr)); + if (ret < 0) + { + perror("setsockopt failed"); + return 1; + } + close(fd); + printf("Success!\\n"); + return 0; +} +``` + +When run under qemu, it gives the error `setsockopt failed: Protocol not available`. + +It doesn't look like it should be too hard to support (certainly no worse than IP_ADD_MEMBERSHIP). Let me know if I can help with a patch.""" |