mirror of
https://github.com/samba-team/samba.git
synced 2025-03-26 18:50:30 +03:00
librpc: Add NETWORK_INTERFACE_INFO IDL data structure
This is in preparation for adding NETWORK_INTERFACE_INFO Ioctl smbtorture test case. This data structure is described in MS-SMB2 Sec. 2.2.32.5 Pair-Programmed-With: Stefan Metzmacher <metze@samba.org> Signed-off-by: Anubhav Rakshit <anubhav.rakshit@gmail.com> Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Volker Lendecke <vl@samba.org>
This commit is contained in:
parent
dbc1ad2965
commit
09fb44d122
@ -99,3 +99,48 @@ interface compression
|
||||
uint16 format;
|
||||
} compression_state;
|
||||
}
|
||||
|
||||
interface netinterface
|
||||
{
|
||||
typedef [bitmap32bit] bitmap {
|
||||
FSCTL_NET_IFACE_RSS_CAPABLE = 0x00000001,
|
||||
FSCTL_NET_IFACE_RDMA_CAPABLE = 0x00000002
|
||||
} fsctl_net_iface_capability;
|
||||
|
||||
typedef [enum16bit] enum {
|
||||
FSCTL_NET_IFACE_AF_INET = 0x0002,
|
||||
FSCTL_NET_IFACE_AF_INET6 = 0x0017
|
||||
} fsctl_sockaddr_af;
|
||||
|
||||
typedef [flag(NDR_NOALIGN)] struct {
|
||||
[value(0)] uint16 port;
|
||||
[flag(NDR_BIG_ENDIAN)] ipv4address ipv4;
|
||||
[value(0)] hyper reserved;
|
||||
} fsctl_sockaddr_in;
|
||||
|
||||
typedef [flag(NDR_NOALIGN)] struct {
|
||||
[value(0)] uint16 port;
|
||||
[value(0)] uint32 flowinfo;
|
||||
[flag(NDR_BIG_ENDIAN)] ipv6address ipv6;
|
||||
[value(0)] uint32 scopeid;
|
||||
} fsctl_sockaddr_in6;
|
||||
|
||||
typedef [nodiscriminant,flag(NDR_NOALIGN)] union {
|
||||
[case (FSCTL_NET_IFACE_AF_INET)] fsctl_sockaddr_in saddr_in;
|
||||
[case (FSCTL_NET_IFACE_AF_INET6)] fsctl_sockaddr_in6 saddr_in6;
|
||||
} fsctl_sockaddr_union;
|
||||
|
||||
typedef [flag(NDR_NOALIGN)] struct {
|
||||
fsctl_sockaddr_af family;
|
||||
[subcontext(0),subcontext_size(126),switch_is(family)] fsctl_sockaddr_union saddr;
|
||||
} fsctl_sockaddr_storage;
|
||||
|
||||
typedef [public,relative_base,noprint] struct {
|
||||
[relative] fsctl_net_iface_info *next;
|
||||
uint32 ifindex;
|
||||
fsctl_net_iface_capability capability;
|
||||
[value(0)] uint32 reserved;
|
||||
hyper linkspeed;
|
||||
fsctl_sockaddr_storage sockaddr;
|
||||
} fsctl_net_iface_info;
|
||||
}
|
||||
|
40
librpc/ndr/ndr_ioctl.c
Normal file
40
librpc/ndr/ndr_ioctl.c
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
Unix SMB/CIFS implementation.
|
||||
|
||||
Manually parsed structures for IOCTL/FSCTL
|
||||
|
||||
Copyright (C) Stefan Metzmacher 2014
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "includes.h"
|
||||
#include "librpc/gen_ndr/ndr_ioctl.h"
|
||||
|
||||
_PUBLIC_ void ndr_print_fsctl_net_iface_info(struct ndr_print *ndr, const char *name, const struct fsctl_net_iface_info *r)
|
||||
{
|
||||
ndr_print_struct(ndr, name, "fsctl_net_iface_info");
|
||||
if (r == NULL) { ndr_print_null(ndr); return; }
|
||||
ndr->depth++;
|
||||
ndr_print_ptr(ndr, "next", r->next);
|
||||
ndr_print_uint32(ndr, "ifindex", r->ifindex);
|
||||
ndr_print_fsctl_net_iface_capability(ndr, "capability", r->capability);
|
||||
ndr_print_uint32(ndr, "reserved", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0:r->reserved);
|
||||
ndr_print_hyper(ndr, "linkspeed", r->linkspeed);
|
||||
ndr_print_fsctl_sockaddr_storage(ndr, "sockaddr", &r->sockaddr);
|
||||
ndr->depth--;
|
||||
if (r->next) {
|
||||
ndr_print_fsctl_net_iface_info(ndr, "next", r->next);
|
||||
}
|
||||
}
|
@ -616,7 +616,7 @@ bld.SAMBA_SUBSYSTEM('RPC_NDR_DNSSERVER',
|
||||
)
|
||||
|
||||
bld.SAMBA_SUBSYSTEM('NDR_IOCTL',
|
||||
source='gen_ndr/ndr_ioctl.c',
|
||||
source='gen_ndr/ndr_ioctl.c ndr/ndr_ioctl.c',
|
||||
public_deps='ndr'
|
||||
)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user