summaryrefslogtreecommitdiff
path: root/print_group_req.c
blob: f0ce58b98538501880028fe5e72190d0737d25c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*
 * Copyright (c) 2015-2018 The strace developers.
 * All rights reserved.
 *
 * SPDX-License-Identifier: LGPL-2.1-or-later
 */

#include "defs.h"
#include <netinet/in.h>

#ifdef MCAST_JOIN_GROUP

# include DEF_MPERS_TYPE(struct_group_req)
typedef struct group_req struct_group_req;

#endif /* MCAST_JOIN_GROUP */

#include MPERS_DEFS

#ifdef MCAST_JOIN_GROUP

# include "print_fields.h"

MPERS_PRINTER_DECL(void, print_group_req, struct tcb *const tcp,
		   const kernel_ulong_t addr, const int len)
{
	struct_group_req greq;

	if (len < (int) sizeof(greq)) {
		printaddr(addr);
	} else if (!umove_or_printaddr(tcp, addr, &greq)) {
		PRINT_FIELD_IFINDEX("{", greq, gr_interface);
		PRINT_FIELD_SOCKADDR(", ", greq, gr_group);
		tprints("}");
	}
}

#endif /* MCAST_JOIN_GROUP */