[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 06/13] linux-user/strace: Dump AF_NETLINK soc
From: |
Laurent Vivier |
Subject: |
Re: [Qemu-devel] [PATCH v3 06/13] linux-user/strace: Dump AF_NETLINK sockaddr content |
Date: |
Mon, 2 Jul 2018 21:05:32 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 |
Le 02/07/2018 à 19:50, Philippe Mathieu-Daudé a écrit :
> Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
> Tested-By: Guido Günther <address@hidden>
> ---
> linux-user/syscall_defs.h | 7 +++++++
> linux-user/strace.c | 34 ++++++++++++++++++++++++++++++++++
> linux-user/syscall.c | 6 ++++--
> 3 files changed, 45 insertions(+), 2 deletions(-)
Could you split this patch in two parts:
- one to introduce target_sockaddr_nl and modify syscall.c
- one to add the strace part
> diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
> index 40bb60ef4c..5a0b76721f 100644
> --- a/linux-user/syscall_defs.h
> +++ b/linux-user/syscall_defs.h
> @@ -152,6 +152,13 @@ struct target_sockaddr_un {
> uint8_t sun_path[108];
> };
>
> +struct target_sockaddr_nl {
> + uint16_t nl_family; /* AF_NETLINK */
> + uint16_t __pad;
> + uint32_t nl_pid;
> + uint32_t nl_groups;
> +};
> +
> struct target_in_addr {
> uint32_t s_addr; /* big endian */
> };
> diff --git a/linux-user/strace.c b/linux-user/strace.c
> index 8a21d3bcfc..77e36467cd 100644
> --- a/linux-user/strace.c
> +++ b/linux-user/strace.c
> @@ -8,6 +8,7 @@
> #include <arpa/inet.h>
> #include <netinet/tcp.h>
> #include <linux/if_packet.h>
> +#include <linux/netlink.h>
> #include <sched.h>
> #include "qemu.h"
>
> @@ -398,6 +399,12 @@ print_sockaddr(abi_ulong addr, abi_long addrlen)
> gemu_log("}");
> break;
> }
> + case AF_NETLINK: {
> + struct target_sockaddr_nl *nl = (struct target_sockaddr_nl *)sa;
> + gemu_log("{nl_family=AF_NETLINK,nl_pid=%u,nl_groups=%u}",
> + nl->nl_pid, nl->nl_groups);
> + break;
> + }
> default:
> gemu_log("{sa_family=%d, sa_data={", sa->sa_family);
> for (i = 0; i < 13; i++) {
> @@ -424,6 +431,9 @@ print_socket_domain(int domain)
> case PF_INET:
> gemu_log("PF_INET");
> break;
> + case PF_NETLINK:
> + gemu_log("PF_NETLINK");
> + break;
> case PF_PACKET:
> gemu_log("PF_PACKET");
> break;
> @@ -473,6 +483,30 @@ print_socket_protocol(int domain, int type, int protocol)
> return;
> }
>
> + if (domain == AF_NETLINK) {
domain uses PF_NETLINK
> + switch (protocol) {
> + case NETLINK_ROUTE:
> + gemu_log("NETLINK_ROUTE");
> + break;
> + case NETLINK_AUDIT:
> + gemu_log("NETLINK_AUDIT");
> + break;
> + case NETLINK_NETFILTER:
> + gemu_log("NETLINK_NETFILTER");
> + break;
> + case NETLINK_RDMA:
> + gemu_log("NETLINK_RDMA");
> + break;
> + case NETLINK_CRYPTO:
> + gemu_log("NETLINK_CRYPTO");
> + break;
> + default:
> + gemu_log("%d", protocol);
> + break;
> + }
add NETLINK_KOBJECT_UEVENT, it is managed in syscall.c
Thanks,
Laurent
[Qemu-devel] [PATCH v3 02/13] linux-user/strace: Improve capget()/capset() output, Philippe Mathieu-Daudé, 2018/07/02
[Qemu-devel] [PATCH v3 05/13] linux-user/strace: Improve settimeofday(), Philippe Mathieu-Daudé, 2018/07/02
[Qemu-devel] [PATCH v3 06/13] linux-user/strace: Dump AF_NETLINK sockaddr content, Philippe Mathieu-Daudé, 2018/07/02
- Re: [Qemu-devel] [PATCH v3 06/13] linux-user/strace: Dump AF_NETLINK sockaddr content,
Laurent Vivier <=
[Qemu-devel] [PATCH v3 07/13] linux-user/strace: Improve recvmsg() output, Philippe Mathieu-Daudé, 2018/07/02
[Qemu-devel] [PATCH v3 10/13] linux-user/strace: Let print_sockaddr() have a 'last' argument, Philippe Mathieu-Daudé, 2018/07/02
[Qemu-devel] [PATCH v3 12/13] linux-user/strace: Improve getsockname() output, Philippe Mathieu-Daudé, 2018/07/02
[Qemu-devel] [PATCH v3 11/13] linux-user/strace: Add print_sockaddr_ptr() to handle plain/pointer addrlen, Philippe Mathieu-Daudé, 2018/07/02
[Qemu-devel] [PATCH v3 13/13] linux-user/strace: Improve recvfrom() output, Philippe Mathieu-Daudé, 2018/07/02
Message not available