Documentation ¶
Overview ¶
The dnsp package implements the DNSP client protocol.
Introduction ¶
The Domain Name Service (DNS) Server Management Protocol defines RPC interfaces that provide methods for remotely accessing and administering a DNS server. It is a client/server protocol based on RPC that is used in the configuration, management, and monitoring of a DNS server.
Overview ¶
The DNS Server Management Protocol is a client/server protocol that is used to remotely query, monitor and configure DNS server settings, its zones, and resource records. The protocol allows a client to access DNS server settings and properties and also to enumerate all DNS data stored on the server (DNS zones and DNS records).
The DNS Server Management Protocol is a simple protocol with no state shared across RPC method calls. Each RPC method call contains one complete request. Output from one method call can be used as input to another call but the DNS Server Management Protocol does not provide for locking of DNS data across method calls. For example, a client can enumerate DNS zones with one call and retrieve the properties of one or more of the enumerated DNS zones with another call. However, no guarantee is made that the zone has not been deleted by another DNS Server Management Protocol client between these two method calls.
When the DNS server is directory server-integrated, some client requests can require or trigger Lightweight Directory Access Protocol (LDAP) requests from the DNS server to the local directory server or another directory server.
In particular, the DNS server can use the defaultNamingContext of the directory server's rootDSE, a DNS domain partition named DnsDomainZones, or a DNS forest partition named DnsForestZones to store zone information and zone records. (See section 2.3 for a discussion of the schemas used to store this information.) A DNS Server integrated with a directory server creates and automatically enlists itself in these default application directory partitions. Alternatively, zone information and zone records can be stored in additional application directory partitions, which can be created (and removed) by the DNS Server Management Protocol client in order to control the granularity of zone replication. Zones created in these additional application directory partitions will only be visible to directory servers enlisted in those partitions, thus allowing for granular control over replication.
A typical remote management involves the client querying or setting the configuration parameters of the DNS server. The client can also enumerate DNS zones and the DNS records stored in one or more zones. The client can modify the configuration of the DNS server as required. The client can also add, delete, or modify DNS zones or the DNS records held in zones as required. For example, a remote management client can:
* Set or retrieve the server's forwarders ( a95b05da-f1fd-4db3-94b4-817fdaa1f642#gt_025cfacf-ebc5-4659-971a-ee2ab5903575 ).
* Set or retrieve various DNS server settings.
* Create or modify zones.
* Create or modify zone records.
This usually involves sending a request to the DNS server specifying the type of operation (get, set and execute are examples of types of operations) to perform and any specific parameters that are associated with that operation. The DNS server responds to the client with the result of the operation.
The following diagram shows an example of a remote client creating a zone on the DNS server using the DNS server Management Protocol. The client sends a request to the server with the operation type and parameters. The server responds with a success or an error.
Index ¶
- Variables
- type Addr
- type AddrArray
- type AutoConfigure
- type Buffer
- type ClientSubnetRecord
- type Criteria
- type CriteriaComparator
- type CriteriaEnum
- type DPEnum
- type DPInfo
- type DPList
- type DPReplica
- type EnlistDP
- type EnumScopeList
- type EnumVirtualizationInstanceList
- type EnumZoneScopeList
- type EnumZonesFilter
- type EnumeratePolicyList
- type FlatRecord
- type Forwarders
- type ForwardersLonghorn
- type ForwardersW2K
- type Forwarders_NET
- type IPValidate
- type IPv4Array
- type ImportOperationResult
- type KeySignScope
- type NameAndParam
- type Policy
- type PolicyActionType
- type PolicyCondition
- type PolicyContent
- type PolicyContentList
- type PolicyLevel
- type PolicyName
- type PolicyType
- type RRLModeEnum
- type RRLParams
- type RRLStats
- type Record
- type SKD
- type SKDList
- type SKDState
- type SKDStateEx
- type ServerInfo
- type ServerInfoLonghorn
- type ServerInfoW2K
- type ServerInfo_NET
- type SigningValidationError
- type Stat
- type StatHeader
- type SystemTime
- type TrustAnchor
- type TrustAnchorList
- type TrustAnchorState
- type TrustPoint
- type TrustPointList
- type TrustPointState
- type TypeID
- type UTF8StringList
- type UnicodeStringList
- type Union
- type Union_AddrArray
- type Union_AutoConfigure
- type Union_Buffer
- type Union_Database
- type Union_DatabaseW2K
- type Union_DirectoryPartition
- type Union_DirectoryPartitionEnum
- type Union_DirectoryPartitionList
- type Union_Dword
- type Union_EnlistDirectoryPartition
- type Union_EnumZonesFilter
- type Union_Forwarders
- type Union_ForwardersDotNet
- type Union_ForwardersW2K
- type Union_IPArray
- type Union_IPValidate
- type Union_NameAndParam
- type Union_Null
- type Union_Policy
- type Union_PolicyList
- type Union_PolicyName
- type Union_RRLParams
- type Union_SKD
- type Union_SKDList
- type Union_SKDState
- type Union_ScopeCreate
- type Union_ScopeInfo
- type Union_ScopeList
- type Union_Secondaries
- type Union_SecondariesDotNet
- type Union_SecondariesW2K
- type Union_ServerInfo
- type Union_ServerInfoDotNet
- type Union_ServerInfoW2K
- type Union_SigningValidationError
- type Union_Stats
- type Union_String
- type Union_SubnetList
- type Union_TrustAnchorList
- type Union_TrustPointList
- type Union_UTF8StringList
- type Union_UnicodeString
- type Union_UnicodeStringList
- type Union_VirtualizationInstance
- type Union_VirtualizationInstanceList
- type Union_Zone
- type Union_ZoneChangeDirectoryPartition
- type Union_ZoneCreate
- type Union_ZoneCreateDotNet
- type Union_ZoneCreateW2K
- type Union_ZoneDNSSecuritySettings
- type Union_ZoneExport
- type Union_ZoneInfo
- type Union_ZoneInfoDotNet
- type Union_ZoneInfoW2K
- type Union_ZoneList
- type Union_ZoneListW2K
- type Union_ZoneScopeList
- type Union_ZoneStats
- type Union_ZoneW2K
- type VirtualizationInstance
- type VirtualizationInstanceInfo
- type Zone
- type ZoneChangeDP
- type ZoneCreateInfo
- type ZoneCreateInfoLonghorn
- type ZoneCreateInfoW2K
- type ZoneCreateInfo_NET
- type ZoneDatabase
- type ZoneDatabaseW2K
- type ZoneDatabase_NET
- type ZoneDnssecSettings
- type ZoneExportInfo
- type ZoneInfo
- type ZoneInfoLonghorn
- type ZoneInfoW2K
- type ZoneInfo_NET
- type ZoneList
- type ZoneListW2K
- type ZoneList_NET
- type ZoneQueryStats
- type ZoneRRLStats
- type ZoneSKD
- type ZoneScopeCreateInfo
- type ZoneScopeCreateInfoV1
- type ZoneScopeInfo
- type ZoneScopeInfoV1
- type ZoneSecondaries
- type ZoneSecondariesLonghorn
- type ZoneSecondariesW2K
- type ZoneSecondaries_NET
- type ZoneStats
- type ZoneStatsType
- type ZoneStatsV1
- type ZoneTimeStats
- type ZoneTransferStats
- type ZoneUpdateStats
- type ZoneW2K
- type Zone_NET
Constants ¶
This section is empty.
Variables ¶
var DPAutocreated = 1
DPAutocreated represents the DNS_DP_AUTOCREATED RPC constant
var DPDeleted = 32
DPDeleted represents the DNS_DP_DELETED RPC constant
var DPDomainDefault = 4
DPDomainDefault represents the DNS_DP_DOMAIN_DEFAULT RPC constant
var DPEnlisted = 16
DPEnlisted represents the DNS_DP_ENLISTED RPC constant
var DPForestDefault = 8
DPForestDefault represents the DNS_DP_FOREST_DEFAULT RPC constant
var DPLegacy = 2
DPLegacy represents the DNS_DP_LEGACY RPC constant
var DPOperationCreate = 1
DPOperationCreate represents the DNS_DP_OP_CREATE RPC constant
var DPOperationCreateDomain = 5
DPOperationCreateDomain represents the DNS_DP_OP_CREATE_DOMAIN RPC constant
var DPOperationCreateForest = 6
DPOperationCreateForest represents the DNS_DP_OP_CREATE_FOREST RPC constant
var DPOperationDelete = 2
DPOperationDelete represents the DNS_DP_OP_DELETE RPC constant
var DPOperationEnlist = 3
DPOperationEnlist represents the DNS_DP_OP_ENLIST RPC constant
var DPOperationUnenlist = 4
DPOperationUnenlist represents the DNS_DP_OP_UNENLIST RPC constant
var DPStateOkay = 0
DPStateOkay represents the DNS_DP_STATE_OKAY RPC constant
var DPStateReplicationIncoming = 1
DPStateReplicationIncoming represents the DNS_DP_STATE_REPL_INCOMING RPC constant
var DPStateReplicationOutgoing = 2
DPStateReplicationOutgoing represents the DNS_DP_STATE_REPL_OUTGOING RPC constant
var DPStateUnknown = 3
DPStateUnknown represents the DNS_DP_STATE_UNKNOWN RPC constant
var EnumZoneScopeListVer = 1
EnumZoneScopeListVer represents the DNS_RPC_ENUM_ZONE_SCOPE_LIST_VER RPC constant
var (
// import guard
GoPackage = "dnsp"
)
var MaxRecordTypes = 32
MaxRecordTypes represents the MAX_RECORD_TYPES RPC constant
var MaxZoneTransferTypes = 2
MaxZoneTransferTypes represents the MAX_ZONE_TRANSFER_TYPES RPC constant
var ZoneScopeCreateInfoVer = 1
ZoneScopeCreateInfoVer represents the DNS_RPC_ZONE_SCOPE_CREATE_INFO_VER RPC constant
var ZoneScopeInfoVer = 1
ZoneScopeInfoVer represents the DNS_RPC_ZONE_SCOPE_INFO_VER RPC constant
var ZoneStatsVer = 1
ZoneStatsVer represents the DNS_RPC_ZONE_STATS_VER RPC constant
Functions ¶
This section is empty.
Types ¶
type Addr ¶
type Addr struct { // MaxSa: This field MUST be constructed as specified in DNS ADDR. MaxSA []byte `idl:"name:MaxSa" json:"max_sa"` // DnsAddrUserDword: This field MUST be constructed as specified in DNS ADD USER. // // Any field not specified above MUST be set to zero by the sender and ignored by the // receiver. DNSAddrUser []uint32 `idl:"name:DnsAddrUserDword" json:"dns_addr_user"` }
Addr structure represents DNS_ADDR RPC structure.
This DNS_ADDR structure is used to represent an IP address. The IP address is either IPv4 or IPv6.
The DNS ADDR structure is an IPv4 or IPv6 address used by DNS_ADDR MaxSa field (section 2.2.3.2.2).
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Address Family | Port Number | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | IPv4 Address | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | IPv6 Address (16 bytes) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Padding | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
type AddrArray ¶
type AddrArray struct { // MaxCount: The actual number of IP addresses that are present in the AddrArray member. MaxCount uint32 `idl:"name:MaxCount" json:"max_count"` // AddrCount: Must be set to the same value as MaxCount. AddrCount uint32 `idl:"name:AddrCount" json:"addr_count"` // Tag: This field is unused. Senders MUST set the value to zero and receivers MUST // ignore it. Tag uint32 `idl:"name:Tag" json:"tag"` // Family: The family of addresses present in the array, such as AF_INET or AF_INET6. // If this field is not specified, addresses with all families can be present. Family uint16 `idl:"name:Family" json:"family"` // Flags: This field is unused. Senders MUST set the value to zero and receivers MUST // ignore it. Flags uint32 `idl:"name:Flags" json:"flags"` // MatchFlag: This field is unused. Senders MUST set the value to zero and receivers // MUST ignore it. MatchFlag uint32 `idl:"name:MatchFlag" json:"match_flag"` // AddrArray: An array of DNS_ADDR (section 2.2.3.2.2) structures. The number of elements // in this array is specified by the AddrCount member. // // An empty DNS_ADDR_ARRAY is represented by AddrCount set to zero. Senders of an empty // DNS_ADR_ARRAY MUST set the other fields' values to zero (including a single entry // in AddrArray, which is set to binary zeros), and receivers MUST ignore them. AddrArray []*Addr `idl:"name:AddrArray;size_is:(AddrCount)" json:"addr_array"` // contains filtered or unexported fields }
AddrArray structure represents DNS_ADDR_ARRAY RPC structure.
The DNS_ADDR_ARRAY structure is used to represent an array of DNS_ADDR (section 2.2.3.2.2) structures. The DNS Server Management Protocol uses this structure to exchange lists of mixed IPv4 and IPv6 addresses between client and server.
func (*AddrArray) MarshalNDR ¶
func (*AddrArray) NDRSizeInfo ¶
type AutoConfigure ¶
type AutoConfigure struct { // dwRpcStructureVersion: The structure version number; this value MUST be set to 0x00000000. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // dwAutoConfigFlags: The autoconfiguration operation being requested by the client // as specified in DNS_RPC_AUTOCONFIG (section 2.2.8.1.1). AutoConfigFlags uint32 `idl:"name:dwAutoConfigFlags" json:"auto_config_flags"` // pszNewDomainName: A pointer to a null-terminated UTF-8 string which contains the // name of the directory server domain that this DNS server is about to join. NewDomainName string `idl:"name:pszNewDomainName;string" json:"new_domain_name"` // contains filtered or unexported fields }
AutoConfigure structure represents DNS_RPC_AUTOCONFIGURE RPC structure.
The DNS_RPC_AUTOCONFIGURE structure contains the information required to auto-configure the DNS server.
func (*AutoConfigure) MarshalNDR ¶
func (*AutoConfigure) UnmarshalNDR ¶
type Buffer ¶
type Buffer struct { // dwLength: The length, in bytes, of the data stored in Buffer. Length uint32 `idl:"name:dwLength" json:"length"` // Buffer: A variable length array of bytes of length specified by dwLength. The buffer // can contain one or more DNS_RPC_NODE structures (section 2.2.2.2.3). Each DNS_RPC_NODE // contains the length of that node, so the DNS_RPC_BUFFER dwLength can be larger to // indicate multiple DNS_RPC_NODE structures. Buffer []byte `idl:"name:Buffer;size_is:(dwLength)" json:"buffer"` }
Buffer structure represents DNS_RPC_BUFFER RPC structure.
The DNS_RPC_BUFFER structure contains a set of a specific type of structures. The DNS Server Management Protocol uses this structure to return information from the server, while processing R_DnssrvComplexOperation2 (section 3.1.4.8) method calls with operation type "Statistics".
func (*Buffer) NDRSizeInfo ¶
type ClientSubnetRecord ¶
type ClientSubnetRecord struct { // pwszClientSubnetName: (variable) A NULL-terminated Unicode string containing the // name of the client subnet record. ClientSubnetName string `idl:"name:pwszClientSubnetName" json:"client_subnet_name"` // pIPAddr: A pointer to a DNS_ADDR_ARRAY (section 2.2.3.2.3) structure that contains // a list of IP subnets contained in this client subnet record along with the SubnetLength // as defined in DNS ADD USER (section 2.2.3.2.2.2). IPAddr *AddrArray `idl:"name:pIPAddr" json:"ip_addr"` // pIPv6Addr: A pointer to a DNS_ADDR_ARRAY structure that contains a list of IPv6 subnets // contained in this client subnet record along with the SubnetLength as defined in // DNS ADD USER. IPv6Addr *AddrArray `idl:"name:pIPv6Addr" json:"ipv6_addr"` }
ClientSubnetRecord structure represents DNS_RPC_CLIENT_SUBNET_RECORD RPC structure.
The DNS_RPC_CLIENT_SUBNET_RECORD structure contains the IPv4 and IPv6 subnets that are grouped together.
func (*ClientSubnetRecord) MarshalNDR ¶
func (*ClientSubnetRecord) UnmarshalNDR ¶
type Criteria ¶
type Criteria struct { // type: This specifies the type of criteria associated with the DNS policy. The value // is of type DNS_RPC_CRITERIA_ENUM (section 2.2.15.1.1.6). Type CriteriaEnum `idl:"name:type" json:"type"` // pCriteria: A NULL-terminated Unicode string containing the DNS policy criteria details. Criteria string `idl:"name:pCriteria" json:"criteria"` }
Criteria structure represents DNS_RPC_CRITERIA RPC structure.
The DNS_RPC_CRITERIA structure contains the DNS policy criteria that is associated with a DNS policy.
func (*Criteria) MarshalNDR ¶
type CriteriaComparator ¶
type CriteriaComparator uint16
CriteriaComparator type represents DNS_RPC_CRITERIA_COMPARATOR RPC enumeration.
The DNS_RPC_CRITERIA_COMPARATOR enumeration specifies the logical condition which connects the DNS Policy Criteria evaluation during DNS Operations.
var ( // Equals: Specifies that the values in a criteria (DNS_RPC_POLICY section 2.2.15.2.5) // of a DNS policy are connected by a logical OR condition. CriteriaComparatorEquals CriteriaComparator = 1 // NotEquals: Specifies that the values in a criteria (DNS_RPC_POLICY section 2.2.15.2.5) // of a DNS Policy are connected by logical AND condition. CriteriaComparatorNotEquals CriteriaComparator = 2 )
func (CriteriaComparator) String ¶
func (o CriteriaComparator) String() string
type CriteriaEnum ¶
type CriteriaEnum uint16
CriteriaEnum type represents DNS_RPC_CRITERIA_ENUM RPC enumeration.
The DNS_RPC_CRITERIA_ENUM enumeration specifies the various criteria that a DNS server needs to match during a DNS operation to have a successful DNS policy match. For more information, see section 3.1.8.2.
var ( // DnsPolicyCriteriaSubnet: This specifies that the criteria for match of a DNS policy // is based on the client subnet record, derived from the IP address of a resolver [RFC1034] // section 2.4 in a DNS Operation. CriteriaEnumPolicyCriteriaSubnet CriteriaEnum = 0 // DnsPolicyCriteriaTransportProtocol: This specifies that the criteria for match of // a DNS policy is based on the transport layer protocol (TCP or UDP) used to send a // DNS query to the DNS server during a DNS operation. CriteriaEnumPolicyCriteriaTransportProtocol CriteriaEnum = 1 // DnsPolicyCriteriaNetworkProtocol: This specifies that the criteria for match of a // DNS policy is based on the Internet protocol used (IPv4 or IPv6) to send a DNS query // to the DNS server during a DNS operation. CriteriaEnumPolicyCriteriaNetworkProtocol CriteriaEnum = 2 // DnsPolicyCriteriaInterface: This specifies that the criteria for match of a DNS policy // is based on the IP address on which the DNS server receives the DNS query in a DNS // operation. CriteriaEnumPolicyCriteriaInterface CriteriaEnum = 3 // DnsPolicyCriteriaFqdn: This specifies that the criteria for match of a DNS policy // is based on the query name in the question section [RFC1034] section 3.7 of a DNS // query, in a DNS operation. CriteriaEnumPolicyCriteriaFQDN CriteriaEnum = 4 // DnsPolicyCriteriaQtype: This specifies that the criteria for match of a DNS policy // is based on the QTYPE [RFC1035] section 3.2.3 of a DNS query in a DNS operation. CriteriaEnumPolicyCriteriaQTYPE CriteriaEnum = 5 // DnsPolicyCriteriaTime: This specifies that the criteria for match of a DNS policy // is based on the time of day, in minutes, when the DNS server receives a DNS query // during a DNS operation. CriteriaEnumPolicyCriteriaTime CriteriaEnum = 6 // DnsPolicyCriteriaMax: This shows the maximum number of criteria type supported by // DNS policy. CriteriaEnumPolicyCriteriaMax CriteriaEnum = 7 )
func (CriteriaEnum) String ¶
func (o CriteriaEnum) String() string
type DPEnum ¶
type DPEnum struct { // dwRpcStructureVersion: As specified in section 2.2.7.2.1. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // pszDpFqdn: As specified in section 2.2.7.2.1. DPFQDN string `idl:"name:pszDpFqdn;string" json:"dp_fqdn"` // dwFlags: As specified in section 2.2.7.2.1. Flags uint32 `idl:"name:dwFlags" json:"flags"` // dwZoneCount: As specified in section 2.2.7.2.1. ZoneCount uint32 `idl:"name:dwZoneCount" json:"zone_count"` // contains filtered or unexported fields }
DPEnum structure represents DNS_RPC_DP_ENUM RPC structure.
The DNS_RPC_DP_ENUM structure contains abbreviated information about an application directory partition.<58>
type DPInfo ¶
type DPInfo struct { // dwRpcStructureVersion: The structure version number; this value MUST be set to 0x00000000. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // pszDpFqdn: A pointer to a null-terminated UTF-8 string that specifies the FQDN of // the application directory partition. This value is read from the dnsRoot attribute // of the partition crossRef object (see pszCrDn) converted to UTF-8 for this application // directory partition. DPFQDN string `idl:"name:pszDpFqdn;string" json:"dp_fqdn"` // pszDpDn: A pointer to a null-terminated Unicode string that specifies the distinguished // name for the application directory partition naming context root object. This is // the value of the nCName attribute of the application directory partition crossRef // object (see pszCrDn). DPDN string `idl:"name:pszDpDn;string" json:"dp_dn"` // pszCrDn: A pointer to a null-terminated Unicode string that specifies the distinguished // name for the application directory partition crossRef object (located beneath "CN=Partitions, // CN=Configuration, <Forest DN>"). CRDN string `idl:"name:pszCrDn;string" json:"cr_dn"` // dwFlags: The application directory partition properties; this MUST be set to a combination // of allowed values for DNS_RPC_DP_FLAGS (section 2.2.7.1.1). Flags uint32 `idl:"name:dwFlags" json:"flags"` // dwZoneCount: The number of zones from this application directory partition that are // loaded in the DNS server's memory. This value is incremented or decremented in the // Application Directory Partition Table whenever a DNS Zone Table entry corresponding // to a zone in this application directory partition is initialized or deleted, respectively. ZoneCount uint32 `idl:"name:dwZoneCount" json:"zone_count"` // dwState: The current state of this application directory partition. This MUST be // set to one of the following values: // // +---------------------------------------+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+ // | | | | // | VALUE | MEANING | SOURCE | // | | | | // +---------------------------------------+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+ // +---------------------------------------+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_DP_OKAY 0x00000000 | The application directory partition is running and ready for all operations. | The Application Directory Partition naming context root object's instanceType | // | | | attribute ([MS-ADA1] section 2.309) has neither DS_INSTANCETYPE_NC_COMING | // | | | (0x00000010), nor the DS_INSTANCETYPE_NC_GOING ( 0x00000020) bit set. | // +---------------------------------------+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_DP_STATE_REPL_INCOMING 0x00000001 | The application directory partition is replicating onto the directory server | The Application Directory Partition naming context root object's instanceType | // | | but has not completed an initial synchronization so will be ignored for the time | attribute has the (DS_INSTANCETYPE_NC_COMING ( 0x00000010) bit set. | // | | being. | | // +---------------------------------------+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_DP_STATE_REPL_OUTGOING 0x00000002 | The application directory partition is being deleted from the directory server | The Application Directory Partition naming context root object's instanceType | // | | and so will be ignored. | attribute has the DS_INSTANCETYPE_NC_GOING ( 0x00000020) bit set. | // +---------------------------------------+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_DP_STATE_UNKNOWN 0x00000003 | The application directory partition state is unavailable for unknown reasons. | The Application Directory Partition naming context root object's instanceType | // | | | attribute is unavailable due to an error condition. | // +---------------------------------------+----------------------------------------------------------------------------------+----------------------------------------------------------------------------------+ State uint32 `idl:"name:dwState" json:"state"` // dwReplicaCount: The number of replication locations for the application directory // partition. This value MUST be between 0 and 10000. This value is calculated from // the values of the msDS-NC-Replica-Locations and msDS-NC-RO-Replica-Locations<56>attributes // of the application directory partition crossRef object (see pszCrDn), as the sum // of the number of DNs listed in each attribute. ReplicaCount uint32 `idl:"name:dwReplicaCount" json:"replica_count"` // ReplicaArray: Array of DNS_RPC_DP_REPLICA (section 2.2.7.2.2), that contains information // about replication locations for this application directory partition. This structure // is populated from the values of the msDS-NC-Replica-Locations (section 2.382) and // msDS-NC-RO-Replica-Locations (section 2.383) attributes of the application directory // partition crossRef object (see pszCrDn). Failure to read any of those attributes // will be treated as if no replica exists for that attribute. ArrayReplica []*DPReplica `idl:"name:ReplicaArray;size_is:(dwReplicaCount)" json:"array_replica"` // contains filtered or unexported fields }
DPInfo structure represents DNS_RPC_DP_INFO RPC structure.
The DNS_RPC_DP_INFO structure SHOULD<55> represent the current state of an application directory partition on the directory server.
func (*DPInfo) NDRSizeInfo ¶
type DPList ¶
type DPList struct { // dwRpcStructureVersion: As specified in section 2.2.7.2.1. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // dwDpCount: The number of DNS_RPC_DP_ENUM (section 2.2.7.2.3) structures present in // the array pointed to by DpArray. DPCount uint32 `idl:"name:dwDpCount" json:"dp_count"` // DpArray: An array of DNS_RPC_DP_ENUM structures (section 2.2.7.2.3), containing information // about the application directory partitions available to the DNS server. DPArray []*DPEnum `idl:"name:DpArray;size_is:(dwDpCount)" json:"dp_array"` // contains filtered or unexported fields }
DPList structure represents DNS_RPC_DP_LIST RPC structure.
The DNS_RPC_DP_LIST structure contains a list of application directory partition information structures.<59>
func (*DPList) NDRSizeInfo ¶
type DPReplica ¶
type DPReplica struct { // pszReplicaDn: A pointer to a null-terminated Unicode string that specifies the distinguished // name that identifies a specific directory server. ReplicaDN string `idl:"name:pszReplicaDn;string" json:"replica_dn"` }
DPReplica structure represents DNS_RPC_DP_REPLICA RPC structure.
The DNS_RPC_DP_REPLICA structure contains information about an application directory partition replica by giving a distinguished name which can be used to uniquely identify the replica.<57>
func (*DPReplica) MarshalNDR ¶
type EnlistDP ¶
type EnlistDP struct { // dwRpcStructureVersion: The DNS management structure version number; this value MUST // be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // pszDpFqdn: As specified in section 2.2.7.2.1. DPFQDN string `idl:"name:pszDpFqdn;string" json:"dp_fqdn"` // dwOperation: The application directory partition operation to be performed by the // DNS server; this MUST be set to one of the following values: // // +------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +------------------------------------+----------------------------------------------------------------------------------+ // +------------------------------------+----------------------------------------------------------------------------------+ // | DNS_DP_OP_CREATE 0x00000001 | Create and enlist (DNS_DP_OP_ENLIST) a new application directory partition. | // +------------------------------------+----------------------------------------------------------------------------------+ // | DNS_DP_OP_DELETE 0x00000002 | Delete an existing application directory partition. If the application | // | | directory partition has been marked DNS_DP_AUTOCREATED, DNS_DP_LEGACY, | // | | DNS_DP_DOMAIN_DEFAULT, DNS_DP_FOREST_DEFAULT, or DNS_DP_DELETED, as specified in | // | | section 2.2.7.1.1, or if the DNS server cannot connect and bind to the FSMO role | // | | owner, then the server MUST return an error. | // +------------------------------------+----------------------------------------------------------------------------------+ // | DNS_DP_OP_ENLIST 0x00000003 | Enlist this DNS server in an existing application directory partition. | // | | If the application directory partition has been marked DNS_DP_ENLISTED or | // | | DNS_DP_DELETED, as specified in section 2.2.7.1.1, then the DNS server MUST | // | | return an error. | // +------------------------------------+----------------------------------------------------------------------------------+ // | DNS_DP_OP_UNENLIST 0x00000004 | Un-enlist this DNS server from an existing application directory partition. If | // | | the application directory partition has been marked DNS_DP_DELETED, as specified | // | | in section 2.2.7.1.1, then the DNS server MUST return an error. | // +------------------------------------+----------------------------------------------------------------------------------+ // | DNS_DP_OP_CREATE_DOMAIN 0x00000005 | Create a domain partition on the directory server if one does not already exist. | // +------------------------------------+----------------------------------------------------------------------------------+ // | DNS_DP_OP_CREATE_FOREST 0x00000006 | Create a forest partition on the directory server if it does not already exist. | // +------------------------------------+----------------------------------------------------------------------------------+ Operation uint32 `idl:"name:dwOperation" json:"operation"` // contains filtered or unexported fields }
EnlistDP structure represents DNS_RPC_ENLIST_DP RPC structure.
The DNS_RPC_ENLIST_DP structure contains the information required to create, delete, or enumerate application directory partitions.<60>
func (*EnlistDP) MarshalNDR ¶
type EnumScopeList ¶
type EnumScopeList struct { // dwRpcStructureVersion: The DNS management structure version number. This value MUST // be set to 0x00000000. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // dwScopeCount: The number of server scopes. ScopeCount uint32 `idl:"name:dwScopeCount" json:"scope_count"` // ScopeArray: An array containing the names of server scopes. ScopeArray []string `idl:"name:ScopeArray;size_is:(dwScopeCount)" json:"scope_array"` }
EnumScopeList structure represents DNS_RPC_ENUM_SCOPE_LIST RPC structure.
The DNS_RPC_ENUM_SCOPE_LIST structure<89> contains the list of server scopes configured on the DNS server.
func (*EnumScopeList) MarshalNDR ¶
func (*EnumScopeList) NDRSizeInfo ¶
func (o *EnumScopeList) NDRSizeInfo() []uint64
func (*EnumScopeList) UnmarshalNDR ¶
type EnumVirtualizationInstanceList ¶
type EnumVirtualizationInstanceList struct { // dwRpcStructureVersion: The DNS management structure version number. This value MUST // be set to 0x00000000. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // dwVirtualizationInstanceCount: An unsigned integer that specifies the total number // of DNS_RPC_VIRTUALIZATION_INSTANCE_INFO (section 2.2.17.1.2) elements. VirtualizationInstanceCount uint32 `idl:"name:dwVirtualizationInstanceCount" json:"virtualization_instance_count"` // VirtualizationInstanceArray: An array of pointers to DNS_RPC_VIRTUALIZATION_INSTANCE_INFO // (section 2.2.17.1.2) structures. VirtualizationInstanceArray []*VirtualizationInstanceInfo `idl:"name:VirtualizationInstanceArray;size_is:(dwVirtualizationInstanceCount)" json:"virtualization_instance_array"` }
EnumVirtualizationInstanceList structure represents DNS_RPC_ENUM_VIRTUALIZATION_INSTANCE_LIST RPC structure.
The DNS_RPC_ENUM_VIRTUALIZATION_INSTANCE_LIST structure contains information about all the virtualization instances in a DNS server (section 3.1.4.15).
func (*EnumVirtualizationInstanceList) MarshalNDR ¶
func (*EnumVirtualizationInstanceList) NDRSizeInfo ¶
func (o *EnumVirtualizationInstanceList) NDRSizeInfo() []uint64
func (*EnumVirtualizationInstanceList) UnmarshalNDR ¶
type EnumZoneScopeList ¶
type EnumZoneScopeList struct { // dwRpcStructureVersion: The DNS management structure version number. This value MUST // be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // dwZoneScopeCount: The number of zone scopes or cache scopes. ZoneScopeCount uint32 `idl:"name:dwZoneScopeCount" json:"zone_scope_count"` // ZoneScopeArray: An array containing the names of zone scopes or cache scopes. ZoneScopeArray []string `idl:"name:ZoneScopeArray;size_is:(dwZoneScopeCount)" json:"zone_scope_array"` }
EnumZoneScopeList structure represents DNS_RPC_ENUM_ZONE_SCOPE_LIST RPC structure.
The DNS_RPC_ENUM_ZONE_SCOPE_LIST structure<86> contains a list of zone scopes or cache scopes to be enumerated.
func (*EnumZoneScopeList) MarshalNDR ¶
func (*EnumZoneScopeList) NDRSizeInfo ¶
func (o *EnumZoneScopeList) NDRSizeInfo() []uint64
func (*EnumZoneScopeList) UnmarshalNDR ¶
type EnumZonesFilter ¶
type EnumZonesFilter struct { // dwRpcStructureVersion: The structure version number; this MUST be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // dwFilter: A filter value that specifies the zone types that are to be selected as // part of the output zone list. This value MUST be set to any combination of the ZONE_REQUEST_FILTERS // (section 2.2.5.1.4). Filter uint32 `idl:"name:dwFilter" json:"filter"` // pszPartitionFqdn: A pointer to a null-terminated UTF-8 string that specifies the // distinguished name for an application directory partition location from which the // server is to enumerate zones; if this is NULL then zone enumeration is not restricted // based on the application directory partition. PartitionFQDN string `idl:"name:pszPartitionFqdn;string" json:"partition_fqdn"` // pszQueryString: Reserved for future use. Server MUST set to zero and receiver MUST // ignore this value. QueryString string `idl:"name:pszQueryString;string" json:"query_string"` // contains filtered or unexported fields }
EnumZonesFilter structure represents DNS_RPC_ENUM_ZONES_FILTER RPC structure.
The DNS_RPC_ENUM_ZONES_FILTER structure specifies zone filtering criteria.
func (*EnumZonesFilter) MarshalNDR ¶
func (*EnumZonesFilter) UnmarshalNDR ¶
type EnumeratePolicyList ¶
type EnumeratePolicyList struct { // dwPolicyCount: An unsigned integer that specifies the total number of DNS_RPC_POLICY_NAME // structures (section 2.2.15.2.6). PolicyCount uint32 `idl:"name:dwPolicyCount" json:"policy_count"` // pPolicyArray: An array of pointers of DNS_RPC_POLICY_NAME (section 2.2.15.2.6) structures. PolicyArray []*PolicyName `idl:"name:pPolicyArray;size_is:(dwPolicyCount)" json:"policy_array"` }
EnumeratePolicyList structure represents DNS_RPC_ENUMERATE_POLICY_LIST RPC structure.
The DNS_RPC_ENUMERATE_POLICY_LIST structure contains all the DNS policies at a specified level (section 2.2.15.1.1.3).
func (*EnumeratePolicyList) MarshalNDR ¶
func (*EnumeratePolicyList) NDRSizeInfo ¶
func (o *EnumeratePolicyList) NDRSizeInfo() []uint64
func (*EnumeratePolicyList) UnmarshalNDR ¶
type FlatRecord ¶
type FlatRecord struct { DataLength uint16 `idl:"name:wDataLength" json:"data_length"` Type uint16 `idl:"name:wType" json:"type"` Flags uint32 `idl:"name:dwFlags" json:"flags"` Serial uint32 `idl:"name:dwSerial" json:"serial"` TTLSeconds uint32 `idl:"name:dwTtlSeconds" json:"ttl_seconds"` Timestamp uint32 `idl:"name:dwTimeStamp" json:"timestamp"` Buffer []byte `idl:"name:Buffer;size_is:(wDataLength)" json:"buffer"` // contains filtered or unexported fields }
FlatRecord structure represents DNS_FLAT_RECORD RPC structure.
func (*FlatRecord) MarshalNDR ¶
func (*FlatRecord) NDRSizeInfo ¶
func (o *FlatRecord) NDRSizeInfo() []uint64
func (*FlatRecord) UnmarshalNDR ¶
type Forwarders ¶
type Forwarders struct { RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` RecurseAfterForwarding uint32 `idl:"name:fRecurseAfterForwarding" json:"recurse_after_forwarding"` ForwardTimeout uint32 `idl:"name:dwForwardTimeout" json:"forward_timeout"` Forwarders *AddrArray `idl:"name:aipForwarders" json:"forwarders"` // contains filtered or unexported fields }
Forwarders structure represents DNS_RPC_FORWARDERS RPC structure.
The DNS_RPC_FORWARDERS structure contains information about forwarders configured on the DNS server. There are different versions of the DNS_RPC_FORWARDERS structure. The DNS server MUST use the structures corresponding to the value of dwClientVersion in DNS Server Management Protocol method calls (section 3.1.4) in the following table, or if the method call does not specify the value of dwClientVersion, the DNS_RPC_FORWARDERS_W2K version of the structure MUST be used.
+------------+----------------------------------------------------+ | | | | VALUE | STRUCTURE | | | | +------------+----------------------------------------------------+ +------------+----------------------------------------------------+ | 0x00000000 | DNS_RPC_FORWARDERS_W2K (section 2.2.5.2.10.1) | +------------+----------------------------------------------------+ | 0x00060000 | DNS_RPC_FORWARDERS_DOTNET (section 2.2.5.2.10.2) | +------------+----------------------------------------------------+ | 0x00070000 | DNS_RPC_FORWARDERS_LONGHORN (section 2.2.5.2.10.3) | +------------+----------------------------------------------------+
func (*Forwarders) MarshalNDR ¶
func (*Forwarders) UnmarshalNDR ¶
type ForwardersLonghorn ¶
type ForwardersLonghorn struct { // dwRpcStructureVersion: The structure version number. It MUST be set to 0x00000002. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` RecurseAfterForwarding uint32 `idl:"name:fRecurseAfterForwarding" json:"recurse_after_forwarding"` ForwardTimeout uint32 `idl:"name:dwForwardTimeout" json:"forward_timeout"` // aipForwarders: A pointer to a structure of type DNS_ADDR_ARRAY (section 2.2.3.2.3) // specifies a list of IP addresses that will be used as forwarders by the DNS server. Forwarders *AddrArray `idl:"name:aipForwarders" json:"forwarders"` // contains filtered or unexported fields }
ForwardersLonghorn structure represents DNS_RPC_FORWARDERS_LONGHORN RPC structure.
In the DNS_RPC_FORWARDERS_LONGHORN structure all fields have same definition as specified in section DNS_RPC_FORWARDERS_DOTNET (section 2.2.5.2.10.2), with the following exceptions:
func (*ForwardersLonghorn) MarshalNDR ¶
func (*ForwardersLonghorn) UnmarshalNDR ¶
type ForwardersW2K ¶
type ForwardersW2K struct { // fRecurseAfterForwarding: A value of 0x00000001 indicates that the DNS server is configured // to use normal recursion for name resolution if forwarders are not configured or are // unreachable; a value of 0x00000000 indicates it is not. RecurseAfterForwarding uint32 `idl:"name:fRecurseAfterForwarding" json:"recurse_after_forwarding"` // dwForwardTimeout: The time-interval, in seconds, for which the DNS server waits for // a response from each server in the forwarders list. No restrictions are applied to // the range for the dwForwardTimeout member when modifying its value through this structure. // If dwForwardTimeout is set to zero, then the server SHOULD<45> reset the forward // timeout to the default value, 3 minutes (180 seconds). ForwardTimeout uint32 `idl:"name:dwForwardTimeout" json:"forward_timeout"` // aipForwarders: The list of IP addresses that will be used as forwarders by the DNS // server. Forwarders *IPv4Array `idl:"name:aipForwarders" json:"forwarders"` }
ForwardersW2K structure represents DNS_RPC_FORWARDERS_W2K RPC structure.
The DNS_RPC_FORWARDERS_W2K structure specifies the set of DNS servers this DNS server will forward unresolved queries to.
func (*ForwardersW2K) MarshalNDR ¶
func (*ForwardersW2K) UnmarshalNDR ¶
type Forwarders_NET ¶
type Forwarders_NET struct { // dwRpcStructureVersion: The structure version number. It MUST be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` RecurseAfterForwarding uint32 `idl:"name:fRecurseAfterForwarding" json:"recurse_after_forwarding"` ForwardTimeout uint32 `idl:"name:dwForwardTimeout" json:"forward_timeout"` Forwarders *IPv4Array `idl:"name:aipForwarders" json:"forwarders"` // contains filtered or unexported fields }
Forwarders_NET structure represents DNS_RPC_FORWARDERS_DOTNET RPC structure.
In the DNS_RPC_FORWARDERS_DOTNET structure all fields have same definition as specified in section DNS_RPC_FORWARDERS_W2K (section 2.2.5.2.10.1), with the following exceptions:
func (*Forwarders_NET) MarshalNDR ¶
func (*Forwarders_NET) UnmarshalNDR ¶
type IPValidate ¶
type IPValidate struct { // dwRpcStructureVersion: The DNS management structure version number. This value MUST // be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // dwContext: The context or purpose for which addresses present in aipValidateAddrs // MUST be validated by the DNS server. This field MUST be set to one of the following // values: // // +---------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +---------------------------------------+----------------------------------------------------------------------------------+ // +---------------------------------------+----------------------------------------------------------------------------------+ // | DNS_IPVAL_DNS_SERVERS 0x00000000 | Validate that IP addresses are reachable and operational by the DNS servers. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | DNS_IPVAL_DNS_ROOTHINTS 0x00000001 | Validate that IP addresses are suitable as root hints. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | DNS_IPVAL_DNS_FORWARDERS 0x00000002 | Validate that IP addresses are server level forwarders. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | DNS_IPVAL_DNS_ZONE_MASTERS 0x00000003 | Validate that IP addresses are remote DNS servers hosting a zone, named as | // | | pointed to by pszContextName. | // +---------------------------------------+----------------------------------------------------------------------------------+ // | DNS_IPVAL_DNS_DELEGATIONS 0x00000004 | Validate that IP addresses are remote DNS servers are name-server for the | // | | delegated zone, named as pointed to by pszContextName. | // +---------------------------------------+----------------------------------------------------------------------------------+ Context uint32 `idl:"name:dwContext" json:"context"` // pszContextName: A pointer to a null-terminated ASCII character string that specifies // a zone name. The use of this zone name is specified by the dwContext member. ContextName string `idl:"name:pszContextName;string" json:"context_name"` // aipValidateAddrs: A pointer to a DNS_ADDR_ARRAY structure (section 2.2.3.2.3) contains // a list of IP addresses to be validated by the DNS server. ValidateAddrs *AddrArray `idl:"name:aipValidateAddrs" json:"validate_addrs"` // contains filtered or unexported fields }
IPValidate structure represents DNS_RPC_IP_VALIDATE RPC structure.
The DNS_RPC_IP_VALIDATE structure is used to request that the DNS server validate a number of IP addresses. This can be used by clients to determine if an IP address is suitable for use as a DNS server in the context specified by the dwContext member (see below). This structure is to request IP validation while processing the R_DnssrvComplexOperation2 (section 3.1.4.8) method call with operation type IpValidate.
func (*IPValidate) MarshalNDR ¶
func (*IPValidate) UnmarshalNDR ¶
type IPv4Array ¶
type IPv4Array struct { // AddrCount: The number of IPv4 addresses present in the AddrArray member. AddrCount uint32 `idl:"name:AddrCount" json:"addr_count"` // AddrArray: An array of IPv4 addresses. An IPv4 address is represented as a 32-bit // unsigned integer in network byte order. // // An empty IP4_ARRAY is represented by AddrCount set to zero and AddrArray unused. // Senders of an empty IP4_ARRAY MUST set AddrArray to a single entry containing binary // zeros, and receivers MUST ignore it. AddrArray []uint32 `idl:"name:AddrArray;size_is:(AddrCount)" json:"addr_array"` }
IPv4Array structure represents IP4_ARRAY RPC structure.
The IP4_ARRAY structure is used to represent an array of IPv4 addresses. This structure cannot represent IPv6 addresses.
func (*IPv4Array) MarshalNDR ¶
func (*IPv4Array) NDRSizeInfo ¶
type ImportOperationResult ¶
type ImportOperationResult uint16
ImportOperationResult type represents ImportOpResult RPC enumeration.
The ImportOpResult enumeration SHOULD<47> define the operations to be executed when the DNS_RPC_ZONE_DNSSEC_SETTINGS structure (section 2.2.6.2.9) is imported on a zone.
var ( // IMPORT_STATUS_NOOP: No change was detected in the imported signing settings or the // signing settings of the zone. ImportOperationResultStatusNoop ImportOperationResult = 0 // IMPORT_STATUS_SIGNING_READY: The zone is marked for re-signing. ImportOperationResultStatusSigningReady ImportOperationResult = 1 // IMPORT_STATUS_UNSIGNING_READY: The zone is marked for unsigning. ImportOperationResultStatusUnsigningReady ImportOperationResult = 2 // IMPORT_STATUS_CHANGED: The change was detected in signing settings imported and were // incorporated, but no re-signing or unsigning is required. ImportOperationResultStatusChanged ImportOperationResult = 3 )
func (ImportOperationResult) String ¶
func (o ImportOperationResult) String() string
type KeySignScope ¶
type KeySignScope uint16
KeySignScope type represents KeySignScope RPC enumeration.
The KeySignScope enumeration defines the scope of the key in a signed zone. It SHOULD<46> be used to indicate different signing and publishing scopes of the key.
var ( // SIGN_SCOPE_DEFAULT: The key is used for its default purpose: If the signing key descriptor's // fIsKSK field is set to 0x00000001, the key is used to sign only DNSKEY records in // the zone. If the signing key descriptor's fIsKSK field is set to 0x00000000, the // key is used to sign all records in the zone. KeySignScopeDefault KeySignScope = 0 // SIGN_SCOPE_DNSKEY_ONLY: The key is used to sign only DNSKEY records in the zone. KeySignScopeDNSKEYOnly KeySignScope = 1 // SIGN_SCOPE_ALL_RECORDS: The key is used to sign all records in the zone. KeySignScopeAllRecords KeySignScope = 2 // SIGN_SCOPE_ADD_ONLY: The key is published as a DNSKEY in the zone, but it is not // used to sign any records. KeySignScopeAddOnly KeySignScope = 3 // SIGN_SCOPE_DO_NOT_PUBLISH: The key is not published to the zone and is not used to // sign any records. KeySignScopeDoNotPublish KeySignScope = 4 // SIGN_SCOPE_REVOKED: The key is published as a DNSKEY in the zone with its Revoked // bit ([RFC5011] section 2.1) set. It is used to sign DNSKEY records. KeySignScopeRevoked KeySignScope = 5 )
func (KeySignScope) String ¶
func (o KeySignScope) String() string
type NameAndParam ¶
type NameAndParam struct { // dwParam: The requested new value for the server property specified by pszNodeName. Param uint32 `idl:"name:dwParam" json:"param"` // pszNodeName: Pointer to a null-terminated UTF-8 string that specifies the name of // the server property. NodeName string `idl:"name:pszNodeName;string" json:"node_name"` }
NameAndParam structure represents DNS_RPC_NAME_AND_PARAM RPC structure.
The DNS_RPC_NAME_AND_PARAM structure contains information about a simple server property that takes a DWORD value. The DNS Server Management Protocol uses this structure to exchange information about various properties that take an integer value, while processing the R_DnssrvOperation2 (section 3.1.4.6) method call with operation types "ResetDwordProperty", "DeleteNode", and "DeleteRecordSet".
func (*NameAndParam) MarshalNDR ¶
func (*NameAndParam) UnmarshalNDR ¶
type Policy ¶
type Policy struct { // pwszPolicyName: A NULL-terminated Unicode string containing the name of the DNS policy. // The name is unique across a level as specified in DNS_RPC_POLICY_LEVEL (section 2.2.15.1.1.3). PolicyName string `idl:"name:pwszPolicyName" json:"policy_name"` // level: This specifies whether the policy is configured for a zone (including a cache // zone) or is at server level. The value is of type DNS_RPC_POLICY_LEVEL. Level PolicyLevel `idl:"name:level" json:"level"` // appliesOn: This specifies the DNS operation for which the DNS policy is applicable. // The value is of type DNS_RPC_POLICY_TYPE (section 2.2.15.1.1.5). AppliesOn PolicyType `idl:"name:appliesOn" json:"applies_on"` // action: This specifies the action to be applied on a DNS operation when there is // a DNS policy match. The value is of type DNS_RPC_POLICY_ACTION_TYPE (section 2.2.15.1.1.4). Action PolicyActionType `idl:"name:action" json:"action"` // condition: This specifies the logical operation across the DNS policy criteria of // a DNS policy, which determines whether the DNS policy match has succeeded or failed. // The value is of type DNS_RPC_POLICY_CONDITION (section 2.2.15.1.1.2). Condition PolicyCondition `idl:"name:condition" json:"condition"` // isEnabled: A BOOL variable that specifies whether a DNS policy is enabled. TRUE indicates // that the DNS policy MUST be applied to the DNS operation; FALSE indicates that the // DNS policy is disabled and MUST NOT be applied to the DNS operation. IsEnabled bool `idl:"name:isEnabled" json:"is_enabled"` // dwProcessingOrder: An unsigned integer that specifies the order in which this DNS // policy is processed, along with 0 or more other DNS policies for a given level 2.2.15.1.1.3 // and DNS_RPC_POLICY_TYPE (section 2.2.15.1.1.5) during a DNS operation. ProcessingOrder uint32 `idl:"name:dwProcessingOrder" json:"processing_order"` // pszZoneName: A NULL-terminated string containing the name of the zone for which this // DNS policy is configured. ZoneName string `idl:"name:pszZoneName" json:"zone_name"` // pContentList: An object of type DNS_RPC_POLICY_CONTENT_LIST (section 2.2.15.2.3) // that has a list of zone scope, cache scope, or server scope with weight as defined // in DNS_RPC_POLICY_CONTENT (section 2.2.15.2.2). If the DNS policy matches the criteria // in pCriteriaList and its action is DnsPolicyAllow, then the zone scopes, cache scopes, // or server scopes contained in pContentList are used in the DNS operation as per their // dwWeight. ContentList *PolicyContentList `idl:"name:pContentList" json:"content_list"` // flags: This is used during update of a DNS policy. The various bits of flags show // which members of the DNS Policy are to be updated. For possible values of the bits // of flags. see section 2.2.15.1.1. For details on how this is used during a policy // update, see the operation UpdatePolicy in section 3.1.4.1. Flags uint64 `idl:"name:flags" json:"flags"` // dwCriteriaCount: An unsigned integer containing the number of DNS policy criteria // that are configured for this DNS policy. CriteriaCount uint32 `idl:"name:dwCriteriaCount" json:"criteria_count"` // pCriteriaList: An array of DNS_RPC_CRITERIA (section 2.2.15.2.4) that are compared // with each other using condition DNS_RPC_POLICY_CONDITION (section 2.2.15.1.1.2) to // match a DNS policy. CriteriaList []*Criteria `idl:"name:pCriteriaList;size_is:(dwCriteriaCount)" json:"criteria_list"` }
Policy structure represents DNS_RPC_POLICY RPC structure.
The DNS_RPC_POLICY structure contains all details associated with a DNS policy.
func (*Policy) NDRSizeInfo ¶
type PolicyActionType ¶
type PolicyActionType uint16
PolicyActionType type represents DNS_RPC_POLICY_ACTION_TYPE RPC enumeration.
The DNS_RPC_POLICY_ACTION_TYPE enumeration specifies the action to be applied when a DNS Policy is matched.
var ( // DnsPolicyDeny: Denies the specific DNS operation. PolicyActionTypeDeny PolicyActionType = 0 // DnsPolicyAllow: Allows a specific DNS operation. PolicyActionTypeAllow PolicyActionType = 1 PolicyActionTypeIgnore PolicyActionType = 2 // DnsPolicyActionMax: Shows the maximum action types supported. PolicyActionTypeMax PolicyActionType = 3 )
func (PolicyActionType) String ¶
func (o PolicyActionType) String() string
type PolicyCondition ¶
type PolicyCondition uint16
PolicyCondition type represents DNS_RPC_POLICY_CONDITION RPC enumeration.
The DNS_RPC_POLICY_CONDITION enumeration specifies the logical condition that connects the DNS Policy Criteria evaluation during DNS operations.
var ( // DNS_AND: While evaluating a DNS policy (section 2.2.15.2.5) during a DNS Operation, // all criteria (section 2.2.15.2.4) configured for that particular DNS Policy MUST // match. PolicyConditionAnd PolicyCondition = 0 // DNS_OR: While evaluating a DNS Policy during a DNS Operation, at least one configured // criterion MUST match. PolicyConditionOr PolicyCondition = 1 )
func (PolicyCondition) String ¶
func (o PolicyCondition) String() string
type PolicyContent ¶
type PolicyContent struct { // pwszScopeName: A NULL-terminated Unicode string containing the name of the zone scope, // cache scope or server scope. ScopeName string `idl:"name:pwszScopeName" json:"scope_name"` // dwWeight: A 32-bit unsigned integer that specifies the weight associated with the // scope name. The weight of a scope determines the number of responses that are sent // from that scope. For example, if a DNS_RPC_POLICY has pContentList with two DNS_RPC_POLICY_CONTENT // items having scope name and weight as {Scope1,2} and {Scope2,3}, then when the DNS // policy is a match, Scope1 is used to respond to the DNS operation for the first two // times the DNS policy is a match. Scope2 is used to respond to the DNS operation for // the next three times the DNS policy is a match. The sequence is repeated for further // matches of the DNS policy. If a dwWeight of a DNS_RPC_POLICY_CONTENT is not given. // its default weight is 1. So if two or more DNS_RPC_POLICY_CONTENT structures are // given during DNS_RPC_POLICY creation without a value for dwWeight, all of them will // get weight of 1 and the DNS operation will be performed from each scope in a round-robin // fashion. Allowed values for weight are any positive number from 1 and higher to 0xFFFFFFFF. // If 0 is sent as a weight, the DNS server returns the error DNS_ERROR_POLICY_INVALID_WEIGHT // (9981). Weight uint32 `idl:"name:dwWeight" json:"weight"` }
PolicyContent structure represents DNS_RPC_POLICY_CONTENT RPC structure.
The DNS_RPC_POLICY_CONTENT structure contains the zone scope, cache scope, or server scope details that are used to service the DNS operation if a DNS policy's DNS_RPC_POLICY_ACTION_TYPE (section 2.2.15.1.1.4) is DnsPolicyAllow.
func (*PolicyContent) MarshalNDR ¶
func (*PolicyContent) UnmarshalNDR ¶
type PolicyContentList ¶
type PolicyContentList struct { // dwContentCount: An unsigned integer specifying the number of DNS_RPC_POLICY_CONTENT // elements present. ContentCount uint32 `idl:"name:dwContentCount" json:"content_count"` // pContent: An array of pointers to DNS_RPC_POLICY_CONTENT structures. Content []*PolicyContent `idl:"name:pContent;size_is:(dwContentCount)" json:"content"` }
PolicyContentList structure represents DNS_RPC_POLICY_CONTENT_LIST RPC structure.
The DNS_RPC_POLICY_CONTENT_LIST structure contains a list of DNS_RPC_POLICY_CONTENT structures (section 2.2.15.2.2) configured for a DNS policy.
func (*PolicyContentList) MarshalNDR ¶
func (*PolicyContentList) NDRSizeInfo ¶
func (o *PolicyContentList) NDRSizeInfo() []uint64
func (*PolicyContentList) UnmarshalNDR ¶
type PolicyLevel ¶
type PolicyLevel uint16
PolicyLevel type represents DNS_RPC_POLICY_LEVEL RPC enumeration.
The DNS_RPC_POLICY_LEVEL enumeration specifies that the DNS Policy is applied for a zone, cache zone, or at server level.
var ( // DnsPolicyServerLevel: The DNS Policy is applicable at the server level for all DNS // operations. PolicyLevelServerLevel PolicyLevel = 0 // DnsPolicyZoneLevel: The DNS Policy is applicable only for a specified zone. It is // applicable for all DNS operations allowed for any zone. PolicyLevelZoneLevel PolicyLevel = 1 // DnsPolicyLevelMax: Shows the maximum level types supported. PolicyLevelMax PolicyLevel = 2 )
func (PolicyLevel) String ¶
func (o PolicyLevel) String() string
type PolicyName ¶
type PolicyName struct { // pwszPolicyName: A NULL-terminated Unicode string containing the name of the DNS policy. // The name is unique across a level as specified in DNS_RPC_POLICY_LEVEL (section 2.2.15.1.1.3). PolicyName string `idl:"name:pwszPolicyName" json:"policy_name"` // appliesOn: This specifies the DNS operation to which the DNS policy applies. The // value is of type DNS_RPC_POLICY_TYPE (section 2.2.15.1.1.5). AppliesOn PolicyType `idl:"name:appliesOn" json:"applies_on"` // fEnabled: A BOOL variable that specifies whether a DNS policy is enabled. Enabled bool `idl:"name:fEnabled" json:"enabled"` // processingOrder: An unsigned integer that specifies the order in which this DNS policy // is processed, along with 0 or more other DNS policies for a given level (section // 2.2.15.1.1.3) and DNS_RPC_POLICY_TYPE (section 2.2.15.1.1.5) during a DNS operation. ProcessingOrder uint32 `idl:"name:processingOrder" json:"processing_order"` }
PolicyName structure represents DNS_RPC_POLICY_NAME RPC structure.
The DNS_RPC_POLICY_NAME structure contains the details of the DNS policy when the DNS policies are enumerated at a specified level (section 2.2.15.1.1.3).
func (*PolicyName) MarshalNDR ¶
func (*PolicyName) UnmarshalNDR ¶
type PolicyType ¶
type PolicyType uint16
PolicyType type represents DNS_RPC_POLICY_TYPE RPC enumeration.
The DNS_RPC_POLICY_TYPE enumeration specifies the DNS operation for which the DNS policy is applicable.
+----------------------------+----------------------------------------------------------------------------------+ | ENUMERATOR | | | VALUE | DESCRIPTION | | | | +----------------------------+----------------------------------------------------------------------------------+ +----------------------------+----------------------------------------------------------------------------------+ | DnsPolicyQueryProcessing=0 | The DNS policy is applicable for DNS queries. | +----------------------------+----------------------------------------------------------------------------------+ | DnsPolicyZoneTransfer | The DNS policy is applicable for zone transfer. | +----------------------------+----------------------------------------------------------------------------------+ | DnsPolicyDynamicUpdate | The DNS policy is applicable for dynamic DNS updates. | +----------------------------+----------------------------------------------------------------------------------+ | DnsPolicyRecursion | The DNS policy is applicable for recursive queries. | +----------------------------+----------------------------------------------------------------------------------+ | DnsPolicyRRLExceptionList | The DNS policy is applicable for RRL Exceptionlisting. Exceptionlisting exempts | | | queries from response rate limiting. The queries can be exempted based on name, | | | source subnet, or the DNS server interface address where the query was received. | +----------------------------+----------------------------------------------------------------------------------+ | DnsPolicyMax | Shows the maximum DNS policies supported. | +----------------------------+----------------------------------------------------------------------------------+
var ( PolicyTypeQueryProcessing PolicyType = 0 PolicyTypeZoneTransfer PolicyType = 1 PolicyTypeDynamicUpdate PolicyType = 2 PolicyTypeRecursion PolicyType = 3 PolicyTypeMax PolicyType = 4 )
func (PolicyType) String ¶
func (o PolicyType) String() string
type RRLModeEnum ¶
type RRLModeEnum uint16
RRLModeEnum type represents DNS_RRL_MODE_ENUM RPC enumeration.
The DNS_RRL_MODE_ENUM enumeration controls the behavior and application of DNS Response Rate Limiting at the server level.
var ( // DnsRRLLogOnly: This is the simulation mode for RRL, where the impact of RRL is logged // in analytical channel logs but no actual action is taken (that is, responses are // not dropped). RRLModeEnumLogOnly RRLModeEnum = 0 // DnsRRLEnabled: In this mode, the RRL algorithm is applied to every incoming query. RRLModeEnumEnabled RRLModeEnum = 1 // DnsRRLDisabled: This mode ensures RRL is disabled and not applied to any incoming // query. RRLModeEnumDisabled RRLModeEnum = 2 )
func (RRLModeEnum) String ¶
func (o RRLModeEnum) String() string
type RRLParams ¶
type RRLParams struct { // dwResponsesPerSecond: The maximum number of responses a DNS server can give for each // successful "unique response" in one-second intervals. A DNS response is considered // a unique response if the combination of the following parameters is unique: the requestor's // IP address, masked according to either dwIPv4PrefixLength or dwIPv6PrefixLength; // an imputed domain name that is either a wildcard (if a wildcard match occurred), // the zone name (if no match occurred), or the query name; and a Boolean error indicator // (response code Refused, FormError, or ServFail). // // This parameter can be set any positive integer; the default value is 5. ResponsesPerSecond uint32 `idl:"name:dwResponsesPerSecond" json:"responses_per_second"` // dwErrorsPerSecond: The maximum number of responses a DNS server can give for queries // resulting in error (ServFail, FormError, Refused) in one-second intervals. This parameter // can be set to any positive integer; the default value is 5. ErrorsPerSecond uint32 `idl:"name:dwErrorsPerSecond" json:"errors_per_second"` // dwLeakRate: When a query would be dropped due to rate limiting, the DNS server responds // once per Leak Rate query. The default value for this parameter is 3. This parameter // can be set to any positive integer greater than 1. If the value is set to 0, this // behavior is disabled. LeakRate uint32 `idl:"name:dwLeakRate" json:"leak_rate"` // dwTCRate: When a query would be dropped due to rate limiting, the DNS server returns // a truncated response once per TC rate query. The default value for this parameter // is 2. The parameter can be set to any positive integer greater than 1. If the value // is set to 0, the behavior is disabled (see [RRL] section 2.2.8). TCRate uint32 `idl:"name:dwTCRate" json:"tc_rate"` // dwTotalResponsesInWindow: The maximum number of responses the DNS server can give // for each "unique response" in the defined window duration. See dwResponsesPerSecond // for the definition of "unique response". This includes responses given from leak // rate, truncation rate, and responses per second / errors per second. The default // value for this parameter is 1024. This parameter can be set any positive integer. TotalResponsesInWindow uint32 `idl:"name:dwTotalResponsesInWindow" json:"total_responses_in_window"` // dwWindowSize: The duration, in seconds, where the state of dwTotalResponsesInWindow // is maintained for each "unique response". See dwResponsesPerSecond for the definition // of "unique response". After this duration, the value for dwTotalResponsesInWindow // is reset to 0. The default value for this parameter is 5. The parameter can be set // to any positive integer (see [RRL] section 2.2.4). WindowSize uint32 `idl:"name:dwWindowSize" json:"window_size"` // dwIPv4PrefixLength: Controls how the DNS query source IPv4 addresses are grouped // into buckets of size (32 – dwIPv4PrefixLength) ^ 2. The default value for this // parameter is 24. The parameter can be set to any positive integer between 0 and 32. IPv4PrefixLength uint32 `idl:"name:dwIPv4PrefixLength" json:"ipv4_prefix_length"` // dwIPv6PrefixLength: Controls how DNS query source IPv6 addresses are grouped into // buckets of size (32 – dwIPv6PrefixLength) ^ 2. The default value for this parameter // is 56. This parameter can be set any positive integer between 0 and 128. IPv6PrefixLength uint32 `idl:"name:dwIPv6PrefixLength" json:"ipv6_prefix_length"` // eMode: The mode in which RRL functions on a DNS server. Mode RRLModeEnum `idl:"name:eMode" json:"mode"` // dwFlags: This is used during the update of a DNS Response Rate Limiting. The various // bits show which members of the DNS RRL are to be updated. For possible values, see // section 2.2.16.1.1. For details on how this is used for setting RRL, see the operation // SetRRL in section 3.1.4.1. If dwFlags is not set for a configuration parameter, default // values are applied as shown in the following table: // // +-----------------------------+-----------------+ // | RRL CONFIGURATION | DEFAULT | // | PARAMETER | VALUES | // +-----------------------------+-----------------+ // +-----------------------------+-----------------+ // | dwResponsesPerSecond | 5 | // +-----------------------------+-----------------+ // | dwErrorsPerSecond | 5 | // +-----------------------------+-----------------+ // | dwLeakRate | 3 | // +-----------------------------+-----------------+ // | dwTCRate | 2 | // +-----------------------------+-----------------+ // | dwTotalResponsesInWindow | 1024 | // +-----------------------------+-----------------+ // | dwWindowSize | 5 | // +-----------------------------+-----------------+ // | dwIPv4PrefixLength | 24 | // +-----------------------------+-----------------+ // | dwIPv6PrefixLength | 56 | // +-----------------------------+-----------------+ // | eMode | DnsRRLDisabled | // +-----------------------------+-----------------+ Flags uint32 `idl:"name:dwFlags" json:"flags"` // fSetDefault: Set this value to TRUE to set RRL parameters to their default values. // This parameter does not affect the eMode parameter of RRL. SetDefault bool `idl:"name:fSetDefault" json:"set_default"` }
RRLParams structure represents DNS_RPC_RRL_PARAMS RPC structure.
The DNS_RPC_RRL_PARAMS structure SHOULD<93> contain the configuration parameters for the Response Rate Limiting capability configured on the DNS server.
func (*RRLParams) MarshalNDR ¶
type RRLStats ¶
type RRLStats struct { // Header (8 bytes): A structure of type DNSSRV_STAT_HEADER (section 2.2.10.2.1). Header *StatHeader `idl:"name:Header" json:"header"` // TotalResponsesSent (4 bytes): The number of times the server responded to a valid // query since it last started. This counter is maintained and updated only when RRL // is enabled. After reaching 0xFFFFFFFF, the value increments to 0x00000000. TotalResponsesSent uint32 `idl:"name:TotalResponsesSent" json:"total_responses_sent"` // TotalResponsesDropped (4 bytes): The number of times the server dropped a valid query // due to Response Rate Limiting, since it last started. This counter is maintained // and updated only when RRL is enabled. After reaching 0xFFFFFFFF, the value increments // to 0x00000000. TotalResponsesDropped uint32 `idl:"name:TotalResponsesDropped" json:"total_responses_dropped"` // TotalResponsesTruncated (4 bytes): The number of times the server has responded to // a valid query with a truncation bit set, since it last started. This counter is maintained // and updated only when RRL is enabled. After reaching 0xFFFFFFFF, the value increments // to 0x00000000. TotalResponsesTruncated uint32 `idl:"name:TotalResponsesTruncated" json:"total_responses_truncated"` // TotalResponsesLeaked (4 bytes): The number of times the server has responded to a // valid query after using the total responses available within a given timeframe since // it last started. For details see DNS_RPC_RRL_PARAMS (section 2.2.16.2.1). This counter // is maintained and updated only when RRL is enabled. After reaching 0xFFFFFFFF, the // value increments to 0x00000000. TotalResponsesLeaked uint32 `idl:"name:TotalResponsesLeaked" json:"total_responses_leaked"` }
RRLStats structure represents DNSSRV_RRL_STATS RPC structure.
The DNSSRV_RRL_STATS structure SHOULD<78> contain DNS server statistics related to the Response Rate Limiting (RRL). This structure is formatted as follows:
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | Header | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | ... | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | TotalResponsesSent | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | TotalResponsesDropped | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | TotalResponsesTruncated | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | TotalResponsesLeaked | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*RRLStats) MarshalNDR ¶
type Record ¶
type Record struct { // wDataLength: The total size of the variable buffer, in bytes. Note that the DNS_RPC_RECORD // structure is always 4-byte aligned, which means there can be 0-3 bytes of padding // at the end of the structure. The pad bytes are not included in the wDataLength count. DataLength uint16 `idl:"name:wDataLength" json:"data_length"` // wType: The type of the resource record, as specified in section 2.2.2.1.1 DNS_RECORD_TYPE. Type uint16 `idl:"name:wType" json:"type"` // dwFlags: Resource record properties. This field can contain one of the RANK* flags // in the low-order bits and one of the DNS_RPC_FLAGS* in the high-order bits. // // +--------------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +--------------------------------------------+----------------------------------------------------------------------------------+ // +--------------------------------------------+----------------------------------------------------------------------------------+ // | RANK_CACHE_BIT 0x00000001 | The record came from the cache. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | RANK_ROOT_HINT 0x00000008 | The record is a preconfigured root hint. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | RANK_OUTSIDE_GLUE 0x00000020 | This value is not used. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | RANK_CACHE_NA_ADDITIONAL 0x00000031 | The record was cached from the additional section of a non-authoritative | // | | response. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | RANK_CACHE_NA_AUTHORITY 0x00000041 | The record was cached from the authority section of a non-authoritative | // | | response. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | RANK_CACHE_A_ADDITIONAL 0x00000051 | The record was cached from the additional section of an authoritative response. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | RANK_CACHE_NA_ANSWER 0x00000061 | The record was cached from the answer section of a non-authoritative response. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | RANK_CACHE_A_AUTHORITY 0x00000071 | The record was cached from the authority section of an authoritative response. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | RANK_GLUE 0x00000080 | The record is a glue record in an authoritative zone. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | RANK_NS_GLUE 0x00000082 | The record is a delegation (type NS) record in an authoritative zone. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | RANK_CACHE_A_ANSWER 0x000000C1 | The record was cached from the answer section of an authoritative response. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | RANK_ZONE 0x000000F0 | The record comes from an authoritative zone. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_RPC_FLAG_ZONE_ROOT 0x40000000 | The record is at the root of a zone (not necessarily a zone hosted by this | // | | server; the record could have come from the cache). | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_RPC_FLAG_AUTH_ZONE_ROOT 0x20000000 | The record is at the root of a zone that is locally hosted on this server. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_RPC_FLAG_CACHE_DATA 0x80000000 | The record came from the cache. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_RPC_FLAG_RECORD_WIRE_FORMAT 0x00100000 | The record SHOULD<25> be treated as a resource record of unknown type ([RFC3597] | // | | section 2) by the DNS server. | // +--------------------------------------------+----------------------------------------------------------------------------------+ Flags uint32 `idl:"name:dwFlags" json:"flags"` // dwSerial: This MUST be set to 0x00000000 when sent by the client or server, and ignored // on receipt by the server or client. Serial uint32 `idl:"name:dwSerial" json:"serial"` // dwTtlSeconds: The duration, in seconds, after which this record will expire. TTLSeconds uint32 `idl:"name:dwTtlSeconds" json:"ttl_seconds"` // dwTimeStamp: The time stamp, in hours, for the record when it received the last update. Timestamp uint32 `idl:"name:dwTimeStamp" json:"timestamp"` // Buffer: Record data in DNS_RPC_RECORD_DATA (section 2.2.2.2.4) format where type // is specified by the value wType.<26> // // +----------------------------+--------------------------------+ // | | | // | VALUE | MEANING | // | | | // +----------------------------+--------------------------------+ // +----------------------------+--------------------------------+ // | DNS_TYPE_ZERO 0x0000 | DNS_RPC_RECORD_TS | // +----------------------------+--------------------------------+ // | DNS_TYPE_A 0x0001 | DNS_RPC_RECORD_A | // +----------------------------+--------------------------------+ // | DNS_TYPE_NS 0x0002 | DNS_RPC_RECORD_NODE_NAME | // +----------------------------+--------------------------------+ // | DNS_TYPE_MD 0x0003 | DNS_RPC_RECORD_NODE_NAME | // +----------------------------+--------------------------------+ // | DNS_TYPE_MF 0x0004 | DNS_RPC_RECORD_NODE_NAME | // +----------------------------+--------------------------------+ // | DNS_TYPE_CNAME 0x0005 | DNS_RPC_RECORD_NODE_NAME | // +----------------------------+--------------------------------+ // | DNS_TYPE_SOA 0x0006 | DNS_RPC_RECORD_SOA | // +----------------------------+--------------------------------+ // | DNS_TYPE_MB 0x0007 | DNS_RPC_RECORD_NODE_NAME | // +----------------------------+--------------------------------+ // | DNS_TYPE_MG 0x0008 | DNS_RPC_RECORD_NODE_NAME | // +----------------------------+--------------------------------+ // | DNS_TYPE_MR 0x0009 | DNS_RPC_RECORD_NODE_NAME | // +----------------------------+--------------------------------+ // | DNS_TYPE_NULL 0x000A | DNS_RPC_RECORD_NULL | // +----------------------------+--------------------------------+ // | DNS_TYPE_WKS 0x000B | DNS_RPC_RECORD_WKS | // +----------------------------+--------------------------------+ // | DNS_TYPE_PTR 0x000C | DNS_RPC_RECORD_NODE_NAME | // +----------------------------+--------------------------------+ // | DNS_TYPE_HINFO 0x000D | DNS_RPC_RECORD_STRING | // +----------------------------+--------------------------------+ // | DNS_TYPE_MINFO 0x000E | DNS_RPC_RECORD_MAIL_ERROR | // +----------------------------+--------------------------------+ // | DNS_TYPE_MX 0x000F | DNS_RPC_RECORD_NAME_PREFERENCE | // +----------------------------+--------------------------------+ // | DNS_TYPE_TXT 0x0010 | DNS_RPC_RECORD_STRING | // +----------------------------+--------------------------------+ // | DNS_TYPE_RP 0x0011 | DNS_RPC_RECORD_MAIL_ERROR | // +----------------------------+--------------------------------+ // | DNS_TYPE_AFSDB 0x0012 | DNS_RPC_RECORD_NAME_PREFERENCE | // +----------------------------+--------------------------------+ // | DNS_TYPE_X25 0x0013 | DNS_RPC_RECORD_STRING | // +----------------------------+--------------------------------+ // | DNS_TYPE_ISDN 0x0014 | DNS_RPC_RECORD_STRING | // +----------------------------+--------------------------------+ // | DNS_TYPE_RT 0x0015 | DNS_RPC_RECORD_NAME_PREFERENCE | // +----------------------------+--------------------------------+ // | DNS_TYPE_SIG 0x0018 | DNS_RPC_RECORD_SIG | // +----------------------------+--------------------------------+ // | DNS_TYPE_KEY 0x0019 | DNS_RPC_RECORD_KEY | // +----------------------------+--------------------------------+ // | DNS_TYPE_AAAA 0x001C | DNS_RPC_RECORD_AAAA | // +----------------------------+--------------------------------+ // | DNS_TYPE_NXT 0x001E | DNS_RPC_RECORD_NXT | // +----------------------------+--------------------------------+ // | DNS_TYPE_SRV 0x0021 | DNS_RPC_RECORD_SRV | // +----------------------------+--------------------------------+ // | DNS_TYPE_ATMA 0x0022 | DNS_RPC_RECORD_ATMA | // +----------------------------+--------------------------------+ // | DNS_TYPE_NAPTR 0x0023 | DNS_RPC_RECORD_NAPTR | // +----------------------------+--------------------------------+ // | DNS_TYPE_DNAME 0x0027 | DNS_RPC_RECORD_NODE_NAME | // +----------------------------+--------------------------------+ // | DNS_TYPE_DS 0x002B | DNS_RPC_RECORD_DS | // +----------------------------+--------------------------------+ // | DNS_TYPE_RRSIG 0x002E | DNS_RPC_RECORD_RRSIG | // +----------------------------+--------------------------------+ // | DNS_TYPE_NSEC 0x002F | DNS_RPC_RECORD_NSEC | // +----------------------------+--------------------------------+ // | DNS_TYPE_DNSKEY 0x0030 | DNS_RPC_RECORD_DNSKEY | // +----------------------------+--------------------------------+ // | DNS_TYPE_DHCID 0x0031 | DNS_RPC_RECORD_DHCID | // +----------------------------+--------------------------------+ // | DNS_TYPE_NSEC3 0x0032 | DNS_RPC_RECORD_NSEC3 | // +----------------------------+--------------------------------+ // | DNS_TYPE_NSEC3PARAM 0x0033 | DNS_RPC_RECORD_NSEC3PARAM | // +----------------------------+--------------------------------+ // | DNS_TYPE_TLSA 0x0034 | DNS_RPC_RECORD_TLSA | // +----------------------------+--------------------------------+ // | DNS_TYPE_WINS 0xFF01 | DNS_RPC_RECORD_WINS | // +----------------------------+--------------------------------+ // | DNS_TYPE_WINSR 0xFF02 | DNS_RPC_RECORD_WINSR | // +----------------------------+--------------------------------+ Buffer []byte `idl:"name:Buffer;size_is:(wDataLength)" json:"buffer"` // contains filtered or unexported fields }
Record structure represents DNS_RPC_RECORD RPC structure.
The DNS_RPC_RECORD structure is used to specify a single DNS record's parameters and data. This structure is returned by the DNS server in response to an R_DnssrvEnumRecords2 (section 3.1.4.9) method call.
func (*Record) NDRSizeInfo ¶
type SKD ¶
type SKD struct { // dwRpcStructureVersion: The structure version number; this MUST be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // Guid: A unique identifier for this signing key descriptor. GUID *dtyp.GUID `idl:"name:Guid" json:"guid"` // pwszKeyStorageProvider: The Key Storage Provider that will be used to generate and // store keys for this signing key descriptor. KeyStorageProvider string `idl:"name:pwszKeyStorageProvider;string" json:"key_storage_provider"` // fStoreKeysInDirectory: A value of 0x00000001 indicates that the DNS server exports // keys generated for this signing key descriptor and stores them on the DNS zone object // in Active Directory. A value of 0x00000000 indicates that the DNS server stores keys // in self-signed certificates in the local machine certificate store. StoreKeysInDirectory bool `idl:"name:fStoreKeysInDirectory" json:"store_keys_in_directory"` // fIsKSK: A value of 0x00000001 indicates that this signing key descriptor describes // a key signing key (KSK); a value of 0x00000000 indicates a zone signing key [RFC4641]. IsKSK bool `idl:"name:fIsKSK" json:"is_ksk"` // bSigningAlgorithm: The cryptographic algorithm used to generate signing keys. The // DNS server SHOULD<48> support all values given by [IANA-DNSSECAN] and [DRAFT-DNSSEC-ECDSA]. SigningAlgorithm uint8 `idl:"name:bSigningAlgorithm" json:"signing_algorithm"` // dwKeyLength: The length, in bits, of cryptographic signing keys. This value MUST // be ignored if the signing algorithm does not have variable key length. KeyLength uint32 `idl:"name:dwKeyLength" json:"key_length"` // dwInitialRolloverOffset: The amount of time, in seconds, to delay the first scheduled // key rollover for this signing key descriptor. The value SHOULD be limited to the // range 0x00000000 to 0x00278D00 (30 days), inclusive, but it can be any value. The // default value SHOULD be 0x00000000, and the value zero MUST be allowed and treated // literally. InitialRolloverOffset uint32 `idl:"name:dwInitialRolloverOffset" json:"initial_rollover_offset"` // dwDNSKEYSignatureValidityPeriod: The number of seconds that signatures covering DNSKEY // record sets generated for this signing key descriptor's keys are valid, as defined // by [RFC4034] section 3.1.5. The value SHOULD be limited to the range 0x00005460 (6 // hours) to 0x00093A80 (7 days), inclusive, but it can be any value. The default value // SHOULD be 0x0003F480 (3 days). DNSKEYSignatureValidityPeriod uint32 `idl:"name:dwDNSKEYSignatureValidityPeriod" json:"dnskey_signature_validity_period"` // dwDSSignatureValidityPeriod: The number of seconds that signatures covering DS record // sets generated for this signing key descriptor's keys are valid, as defined by [RFC4034] // section 3.1.5. The value SHOULD be limited to the range 0x00005460 (6 hours) to 0x00093A80 // (7 days), inclusive, but it can be any value. The default value SHOULD be 0x0003F480 // (3 days). DSSignatureValidityPeriod uint32 `idl:"name:dwDSSignatureValidityPeriod" json:"ds_signature_validity_period"` // dwStandardSignatureValidityPeriod: The number of seconds that signatures covering // record sets not of type DNSKEY or DS generated for this signing key descriptor's // keys are valid, as defined by [RFC4034] section 3.1.5. The value SHOULD be limited // to the range 0x00005460 (6 hours) to 0x00278D00 (30 days), inclusive, but it can // be any value. The default value SHOULD be 0x000D2F00 (10 days). StandardSignatureValidityPeriod uint32 `idl:"name:dwStandardSignatureValidityPeriod" json:"standard_signature_validity_period"` // dwRolloverType: When sent, this value MUST be set to one of the allowed values specified // in ZONE_SKD_ROLLOVER_TYPE (section 2.2.5.1.5) as follows: this value MUST be DNS_ROLLOVER_TYPE_PREPUBLISH // if fIsKSK is 0x00000000 and MUST be DNS_ROLLOVER_TYPE_DOUBLE_SIGNATURE if fIsKSK // is 0x00000001. On receipt, this value MUST be ignored. RolloverType uint32 `idl:"name:dwRolloverType" json:"rollover_type"` // dwRolloverPeriod: The number of seconds between scheduled key rollovers, or 0xFFFFFFFF // to disable automatic key rollovers. This value SHOULD be limited to the range 0x00093A80 // (1 week) to 0x25980600 (20 years), inclusive, in addition to 0xFFFFFFFF, when fIsKSK // is 0x00000001, and the range 0x00093A80 (1 week) to 0x09660180 (5 years), inclusive, // in addition to 0xFFFFFFFF, when fIsKSK is 0x00000000. The default SHOULD be 0x02022900 // (13 months) when fIsKSK is 0x00000001, and 0x0x00278D00 (1 month) when fIsKSK is // 0x00000000. RolloverPeriod uint32 `idl:"name:dwRolloverPeriod" json:"rollover_period"` // dwNextRolloverAction: This value describes the next key rollover action that the // DNS server will take for this signing key descriptor. This value MUST be set to one // of the allowed values specified in ZONE_SKD_ROLLOVER_ACTION (section 2.2.5.1.6). NextRolloverAction uint32 `idl:"name:dwNextRolloverAction" json:"next_rollover_action"` // contains filtered or unexported fields }
SKD structure represents DNS_RPC_SKD RPC structure.
The DNS_RPC_SKD structure specifies a signing key descriptor.
type SKDList ¶
type SKDList struct { // dwRpcStructureVersion: The structure version number; this MUST be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // dwCount: The number of signing key descriptors present in the array of signing key // descriptors pointed to by SkdArray. Count uint32 `idl:"name:dwCount" json:"count"` // SkdArray: An array of structures of type DNS_RPC_SKD (section 2.2.6.2.1). Each element // of the array represents one signing key descriptor. SKDArray []*SKD `idl:"name:SkdArray;size_is:(dwCount)" json:"skd_array"` // contains filtered or unexported fields }
SKDList structure represents DNS_RPC_SKD_LIST RPC structure.
The DNS_RPC_SKD_LIST structure contains the information about a list of signing key descriptors that are present for a particular zone on the DNS server.
func (*SKDList) NDRSizeInfo ¶
type SKDState ¶
type SKDState struct { // dwRpcStructureVersion: The structure version number; this MUST be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // Guid: A unique identifier for this signing key descriptor. GUID *dtyp.GUID `idl:"name:Guid" json:"guid"` // ftLastRolloverTime: The time at which the last successful rollover event was performed // for this signing key descriptor. This value MUST be 0 if no rollover has been performed // on this signing key descriptor. LastRolloverTime *dtyp.Filetime `idl:"name:ftLastRolloverTime" json:"last_rollover_time"` // ftNextRolloverTime: The time at which the next rollover for this signing key descriptor // is scheduled. This MAY be 0 if no rollover event is scheduled. When the time comes // for a key rollover to start, the signing key descriptor is added to the Rollover // Queue, and its dwCurrentRolloverStatus is changed to DNS_SKD_STATUS_QUEUED. If another // signing key descriptor in the zone is in the process of rolling, ftNextRolloverTime // MAY represent a time in the past. NextRolloverTime *dtyp.Filetime `idl:"name:ftNextRolloverTime" json:"next_rollover_time"` // dwState: The current state of this signing key descriptor. This MUST be set to one // of the following values.<49> // // +----------------------------------+---------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +----------------------------------+---------------------------------------------------------------------------------+ // +----------------------------------+---------------------------------------------------------------------------------+ // | DNS_SKD_STATE_ACTIVE 0x00000000 | The signing key descriptor is active and in use for online signing of the zone. | // +----------------------------------+---------------------------------------------------------------------------------+ // | DNS_SKD_STATE_RETIRED 0x00000001 | The signing key descriptor is no longer in use for online signing. | // +----------------------------------+---------------------------------------------------------------------------------+ State uint32 `idl:"name:dwState" json:"state"` // dwCurrentRolloverStatus: The current rollover status of this signing key descriptor. // This MUST be set to one of the following values, representing the various stages // of key rollover as described in [RFC4641] and [RFC5011]: // // +-----------------------------------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +-----------------------------------------------------------------+----------------------------------------------------------------------------------+ // +-----------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_STATUS_NOT_ROLLING 0x00000000 | The signing key descriptor is not currently in the process of rolling over keys. | // +-----------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_STATUS_QUEUED 0x00000001 | This signing key descriptor is waiting for another rollover to complete | // | | before its rollover can begin. After the signing key descriptor reaches the | // | | head of the Rollover Queue, the signing key descriptor will move into the | // | | DNS_SKD_STATUS_ROLL_STARTED state. | // +-----------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_STATUS_ROLL_STARTED 0x00000002 | This signing key descriptor has begun the process of key rollover. | // | | Signing key descriptors representing ZSKs will move from this state | // | | to the DNS_SKD_STATUS_ZSK_WAITING_FOR_DNSKEY_TTL state, and signing | // | | key descriptors representing KSKs will move from this state to the | // | | DNS_SKD_STATUS_KSK_WAITING_FOR_DS_UPDATE state. | // +-----------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_STATUS_ZSK_WAITING_FOR_DNSKEY_TTL 0x00000003 | This ZSK signing key descriptor is waiting for the previous key to expire in all | // | | caching resolvers (it is waiting for the DNSKEY TTL to expire). The signing key | // | | descriptor will next move into the DNS_SKD_STATUS_ZSK_WAITING_FOR_MAXZONE_TTL | // | | state. | // +-----------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_STATUS_ZSK_WAITING_FOR_MAXZONE_TTL 0x00000004 | This ZSK signing key descriptor is waiting for the signatures using the previous | // | | key to expire in all caching resolvers (it is waiting for the largest record | // | | TTL to expire). This is the final state for ZSK rollovers. The signing key | // | | descriptor will move into the DNS_SKD_STATUS_NOT_ROLLING state when this portion | // | | of key rollover is complete. | // +-----------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_STATUS_KSK_WAITING_FOR_DS_UPDATE 0x00000005 | This KSK signing key descriptor is waiting for a DS record corresponding to | // | | the new key to appear in the parent zone. If DS records are found in the parent | // | | zone, the server MUST set the zone's "ParentHasSecureDelegation" property | // | | to 0x00000001 and continue to wait until the parent's DS record set includes | // | | the new key, at which point the signing key descriptor will move into the | // | | DNS_SKD_STATUS_KSK_WAITING_FOR_DS_TTL state. If no DS records are found in | // | | the parent zone, the server MUST set the zone's "ParentHasSecureDelegation" | // | | property to 0x00000000 and transition the signing key descriptor into the | // | | DNS_SKD_STATUS_KSK_WAITING_FOR_DNSKEY_TTL state. If there is an error or if the | // | | presence of a DS record set in the parent zone cannot be determined, the server | // | | MUST continue to attempt to query for this record set for up to 15 minutes | // | | if the zone's "ParentHasSecureDelegation" property is 0x00000000 or until the | // | | PokeZoneKeyRollover command is received if it is 0x00000001. | // +-----------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_STATUS_KSK_WAITING_FOR_DS_TTL 0x00000006 | This KSK signing key descriptor is waiting for the DS record set in | // | | the parent zone to expire in all caching resolvers (it is waiting | // | | for the parent DS TTL to expire). If the zone's "RFC5011KeyRollovers" | // | | property is TRUE, the signing key descriptor will next move into the | // | | DNS_SKD_STATUS_WAITING_FOR_5011_REMOVE_HOLD_DOWN state. Otherwise, this is a | // | | final state for KSK rollovers, and signing key descriptors will move into the | // | | DNS_SKD_STATUS_NOT_ROLLING state when this portion of key rollover is complete. | // +-----------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_STATUS_KSK_WAITING_FOR_DNSKEY_TTL 0x00000007 | This KSK signing key descriptor is waiting for the previous key to expire in | // | | all caching resolvers (it is waiting for the DNSKEY TTL to expire). This is a | // | | final state for KSK rollovers, and signing key descriptors will move into the | // | | DNS_SKD_STATUS_NOT_ROLLING state when this portion of key rollover is complete. | // +-----------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_STATUS_KSK_WAITING_FOR_5011_REMOVE_HOLD_DOWN 0x00000008 | This KSK signing key descriptor is waiting for the RFC5011 remove hold-down | // | | time before the revoked previous key can be removed. This is a final | // | | state for KSK rollovers, and signing key descriptors will move into the | // | | DNS_SKD_STATUS_NOT_ROLLING state when this portion of key rollover is complete. | // +-----------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_STATUS_ROLL_ERROR 0x00000009 | This signing key descriptor experienced an unrecoverable error during the key | // | | rollover. | // +-----------------------------------------------------------------+----------------------------------------------------------------------------------+ CurrentRolloverStatus uint32 `idl:"name:dwCurrentRolloverStatus" json:"current_rollover_status"` // pwszActiveKey: Signing key pointer string for the signing key descriptor's currently // active key. This is the key that is currently being used to sign zone records. ActiveKey string `idl:"name:pwszActiveKey;string" json:"active_key"` // pwszStandbyKey: Signing key pointer string for the signing key descriptor's standby // key. The key represented by this string has several different roles depending on // the associated signing key descriptor's fIsKSK flag and its dwRolloverStatus: // // * If the signing key descriptor's fIsKSK flag is TRUE, pwszStandbyKey represents // the "double signature" key as described in [RFC4641] section 4.2.2, also depicted // as the "standby" key in [RFC5011] section 6. // // * If the signing key descriptor's fIsKSK flag is FALSE, *pwszStandbyKey* will generally // be NULL unless the SKD is in the process of key rollover: // // * If the signing key descriptor's dwRolloverStatus is DNS_SKD_STATUS_ZSK_WAITING_FOR_DNSKEY_TTL, // *pwszStandbyKey* represents the "pre-publish" key as described in [RFC4641] section // 4.2.1.1. // // * If the signing key descriptor's dwRolloverStatus is DNS_SKD_STATUS_ZSK_WAITING_FOR_MAXZONE_TTL, // *pwszStandbyKey* represents the previously active key during the "new RRSIGs" phase // of Pre-Publish Key Rollover, as described in [RFC4641] section 4.2.1.1. StandbyKey string `idl:"name:pwszStandbyKey;string" json:"standby_key"` // pwszNextKey: Signing key pointer string for the signing key descriptor's next key. // The key represented by this string has several different roles depending on the associated // signing key descriptor's fIsKSK flag: // // * If the signing key descriptor's fIsKSK flag is TRUE, *pwszNextKey* represents the // next key that will be consumed during key rollover. It is not published in the zone // and is not used to sign any other records. If the zone's "RFC5011KeyRollovers" property // is TRUE, this key becomes the next "standby" key according to [RFC5011]. Otherwise, // this key is used as the "double signature" key according to [RFC4641] as the signing // key descriptor's key rollover process begins. // // * If the signing key descriptor's fIsKSK flag is FALSE, *pwszNextKey* represents // the "pre-publish" key as described in [RFC4641] section 4.2.1.1. When the SKD is // in the process of key rollover, *pwszNextKey* can be populated with a newly generated // post-rollover "pre-publish" key. NextKey string `idl:"name:pwszNextKey;string" json:"next_key"` // contains filtered or unexported fields }
SKDState structure represents DNS_RPC_SKD_STATE RPC structure.
The DNS_RPC_SKD_STATE structure contains information about the current state of a signing key descriptor.
func (*SKDState) MarshalNDR ¶
type SKDStateEx ¶
type SKDStateEx struct { // dwRpcStructureVersion: The structure version number; this MUST be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // Guid: A unique identifier for this signing key descriptor. GUID *dtyp.GUID `idl:"name:Guid" json:"guid"` // dwCurrentRollState: The current rollover status of this signing key descriptor. Note // that these are DNS Server Management Protocol implementations of the protocol specified // rollover states of SKDs in DNS_RPC_SKD_STATE. // // +-------------------------------------------------------------+----------------------------------------------------------------------------------+ // | | MAPPING IN | // | VALUE | DNS RPC SKD STATE | // | | | // +-------------------------------------------------------------+----------------------------------------------------------------------------------+ // +-------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_ROLL_STATE_NOT_STARTED 0x00000000 | DNS_SKD_STATUS_NOT_ROLLING | // +-------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_ROLL_STATE_ZSK_SWAP_ACTIVE_WITH_ROLLOVER 0x00000001 | DNS_SKD_STATUS_ZSK_WAITING_FOR_DNSKEY_TTL | // +-------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_ROLL_STATE_ZSK_FINISH 0x00000002 | DNS_SKD_STATUS_ZSK_WAITING_FOR_MAXZONE_TTL | // +-------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_ROLL_STATE_KSK_WAITING_FOR_DS 0x00000003 | DNS_SKD_STATUS_KSK_WAITING_FOR_DS_UPDATE | // +-------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_ROLL_STATE_KSK_REVOKE 0x00000004 | DNS_SKD_STATUS_KSK_WAITING_FOR_DS_TTL The key is revoked once the rollover is | // | | completed. | // +-------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_ROLL_STATE_KSK_FINISH 0x00000005 | DNS_SKD_STATUS_KSK_WAITING_FOR_DS_TTL The key is not revoked and is used with | // | | the rolled over key-set. | // +-------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_ROLL_STATE_MAX 0x00000005 | DNS_SKD_STATUS_KSK_WAITING_FOR_DS_TTL | // +-------------------------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_SKD_STATUS_ROLL_ERROR 0x00000009 | This signing key descriptor experienced an unrecoverable error during the key | // | | rollover. | // +-------------------------------------------------------------+----------------------------------------------------------------------------------+ CurrentRollState uint32 `idl:"name:dwCurrentRollState" json:"current_roll_state"` // fManualTrigger: TRUE if the rollover was triggered manually. ManualTrigger uint32 `idl:"name:fManualTrigger" json:"manual_trigger"` // dwPreRollEventFired: Specifies which prerollover event has been fired. PreRollEventFired uint32 `idl:"name:dwPreRollEventFired" json:"pre_roll_event_fired"` // ftNextKeyGenerationTime: The time at which the next key was added to the zone. NextKeyGenerationTime *dtyp.Filetime `idl:"name:ftNextKeyGenerationTime" json:"next_key_generation_time"` // dwRevokedOrSwappedDnskeysLength: The length of the revoked or swapped DNSKEY RRSet. RevokedOrSwappedDNSKeysLength uint32 `idl:"name:dwRevokedOrSwappedDnskeysLength" json:"revoked_or_swapped_dns_keys_length"` // pRevokedOrSwappedDnskeysBuffer: Presigned DNSKEY RRSet for ZSK swap. This is a pointer // to a pointer that points to a buffer containing the enumerated records. The buffer // is a series of structures beginning with a DNS_RPC_NODE structure (section 2.2.2.2.3). // The records for the node will be represented by a series of DNS_RPC_RECORD structures // (section 2.2.2.2.5). The number of DNS_RPC_RECORD structures following a DNS_RPC_NODE // structure is given by the wRecordCount member of DNS_RPC_NODE. RevokedOrSwappedDNSKeysBuffer []byte `idl:"name:pRevokedOrSwappedDnskeysBuffer;size_is:(dwRevokedOrSwappedDnskeysLength)" json:"revoked_or_swapped_dns_keys_buffer"` // dwFinalDnskeysLength: Length of presigned DNSKEY RRSet. FinalDNSKeysLength uint32 `idl:"name:dwFinalDnskeysLength" json:"final_dns_keys_length"` // pFinalDnskeys: Presigned DNSKEY RRSet Post Rollover. This is a pointer to a pointer // that points to a buffer containing the enumerated records. The buffer is a series // of structures beginning with a DNS_RPC_NODE structure. The records for the node will // be represented by a series of DNS_RPC_RECORD structures. The number of DNS_RPC_RECORD // structures following a DNS_RPC_NODE structure is given by the wRecordCount member // of DNS_RPC_NODE. FinalDNSKeys []byte `idl:"name:pFinalDnskeys;size_is:(dwFinalDnskeysLength)" json:"final_dns_keys"` // eActiveKeyScope: Signing key scope for the SKD's active key. The signing key scope // is defined in KeySignScope (section 2.2.6.1.2). ActiveKeyScope KeySignScope `idl:"name:eActiveKeyScope" json:"active_key_scope"` // eStandByKeyScope: Signing key scope for the SKD's standby key. The signing key scope // is defined in KeySignScope. StandByKeyScope KeySignScope `idl:"name:eStandByKeyScope" json:"stand_by_key_scope"` // eNextKeyScope: Signing key scope for the SKD's next key. The signing key scope is // defined in KeySignScope. NextKeyScope KeySignScope `idl:"name:eNextKeyScope" json:"next_key_scope"` // contains filtered or unexported fields }
SKDStateEx structure represents DNS_RPC_SKD_STATE_EX RPC structure.
The DNS_RPC_SKD_STATE_EX structure <52> represents the collection of extended dynamic configuration information of a signing key descriptor state.
func (*SKDStateEx) MarshalNDR ¶
func (*SKDStateEx) UnmarshalNDR ¶
type ServerInfo ¶
type ServerInfo struct { RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` Version uint32 `idl:"name:dwVersion" json:"version"` BootMethod uint8 `idl:"name:fBootMethod" json:"boot_method"` AdminConfigured bool `idl:"name:fAdminConfigured" json:"admin_configured"` AllowUpdate bool `idl:"name:fAllowUpdate" json:"allow_update"` DSAvailable bool `idl:"name:fDsAvailable" json:"ds_available"` ServerName string `idl:"name:pszServerName;string" json:"server_name"` DSContainer string `idl:"name:pszDsContainer;string" json:"ds_container"` ServerAddrs *AddrArray `idl:"name:aipServerAddrs" json:"server_addrs"` ListenAddrs *AddrArray `idl:"name:aipListenAddrs" json:"listen_addrs"` Forwarders *AddrArray `idl:"name:aipForwarders" json:"forwarders"` LogFilter *AddrArray `idl:"name:aipLogFilter" json:"log_filter"` LogFilePath string `idl:"name:pwszLogFilePath;string" json:"log_file_path"` DomainName string `idl:"name:pszDomainName;string" json:"domain_name"` ForestName string `idl:"name:pszForestName;string" json:"forest_name"` DomainDirectoryPartition string `idl:"name:pszDomainDirectoryPartition;string" json:"domain_directory_partition"` ForestDirectoryPartition string `idl:"name:pszForestDirectoryPartition;string" json:"forest_directory_partition"` Extensions string `idl:"name:pExtensions;string" json:"extensions"` LogLevel uint32 `idl:"name:dwLogLevel" json:"log_level"` DebugLevel uint32 `idl:"name:dwDebugLevel" json:"debug_level"` ForwardTimeout uint32 `idl:"name:dwForwardTimeout" json:"forward_timeout"` RPCProtocol uint32 `idl:"name:dwRpcProtocol" json:"rpc_protocol"` NameCheckFlag uint32 `idl:"name:dwNameCheckFlag" json:"name_check_flag"` AddressAnswerLimitCount uint32 `idl:"name:cAddressAnswerLimit" json:"address_answer_limit_count"` RecursionRetry uint32 `idl:"name:dwRecursionRetry" json:"recursion_retry"` RecursionTimeout uint32 `idl:"name:dwRecursionTimeout" json:"recursion_timeout"` MaxCacheTTL uint32 `idl:"name:dwMaxCacheTtl" json:"max_cache_ttl"` DSPollingInterval uint32 `idl:"name:dwDsPollingInterval" json:"ds_polling_interval"` LocalNetPriorityNetMask uint32 `idl:"name:dwLocalNetPriorityNetMask" json:"local_net_priority_net_mask"` ScavengingInterval uint32 `idl:"name:dwScavengingInterval" json:"scavenging_interval"` DefaultRefreshInterval uint32 `idl:"name:dwDefaultRefreshInterval" json:"default_refresh_interval"` DefaultNoRefreshInterval uint32 `idl:"name:dwDefaultNoRefreshInterval" json:"default_no_refresh_interval"` LastScavengeTime uint32 `idl:"name:dwLastScavengeTime" json:"last_scavenge_time"` EventLogLevel uint32 `idl:"name:dwEventLogLevel" json:"event_log_level"` LogFileMaxSize uint32 `idl:"name:dwLogFileMaxSize" json:"log_file_max_size"` DSForestVersion uint32 `idl:"name:dwDsForestVersion" json:"ds_forest_version"` DSDomainVersion uint32 `idl:"name:dwDsDomainVersion" json:"ds_domain_version"` DSDSAVersion uint32 `idl:"name:dwDsDsaVersion" json:"ds_dsa_version"` ReadOnlyDC bool `idl:"name:fReadOnlyDC" json:"read_only_dc"` AutoReverseZones bool `idl:"name:fAutoReverseZones" json:"auto_reverse_zones"` AutoCacheUpdate bool `idl:"name:fAutoCacheUpdate" json:"auto_cache_update"` RecurseAfterForwarding bool `idl:"name:fRecurseAfterForwarding" json:"recurse_after_forwarding"` ForwardDelegations bool `idl:"name:fForwardDelegations" json:"forward_delegations"` NoRecursion bool `idl:"name:fNoRecursion" json:"no_recursion"` SecureResponses bool `idl:"name:fSecureResponses" json:"secure_responses"` RoundRobin bool `idl:"name:fRoundRobin" json:"round_robin"` LocalNetPriority bool `idl:"name:fLocalNetPriority" json:"local_net_priority"` BindSecondaries bool `idl:"name:fBindSecondaries" json:"bind_secondaries"` WriteAuthorityNS bool `idl:"name:fWriteAuthorityNs" json:"write_authority_ns"` StrictFileParsing bool `idl:"name:fStrictFileParsing" json:"strict_file_parsing"` LooseWildcarding bool `idl:"name:fLooseWildcarding" json:"loose_wildcarding"` DefaultAgingState bool `idl:"name:fDefaultAgingState" json:"default_aging_state"` // contains filtered or unexported fields }
ServerInfo structure represents DNS_RPC_SERVER_INFO RPC structure.
The DNS_RPC_SERVER_INFO structure contains information about the DNS server's configuration and state. There are different versions of the DNS_RPC_SERVER_INFO structure. The DNS server MUST use one of the structures corresponding to the value of the dwClientVersion field in DNS Server Management Protocol method calls (section 3.1.4) as shown in the following table. If the method call does not specify the value of dwClientVersion, the DNS_RPC_SERVER_INFO_W2K version of the structure MUST be used.
+------------+----------------------------------------------------+ | | | | VALUE | STRUCTURE | | | | +------------+----------------------------------------------------+ +------------+----------------------------------------------------+ | 0x00000000 | DNS_RPC_SERVER_INFO_W2K (section 2.2.4.2.2.1) | +------------+----------------------------------------------------+ | 0x00060000 | DNS_RPC_SERVER_INFO_DOTNET (section 2.2.4.2.2.2) | +------------+----------------------------------------------------+ | 0x00070000 | DNS_RPC_SERVER_INFO_LONGHORN (section 2.2.4.2.2.3) | +------------+----------------------------------------------------+
func (*ServerInfo) MarshalNDR ¶
func (*ServerInfo) UnmarshalNDR ¶
type ServerInfoLonghorn ¶
type ServerInfoLonghorn struct { RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` Version uint32 `idl:"name:dwVersion" json:"version"` BootMethod uint8 `idl:"name:fBootMethod" json:"boot_method"` AdminConfigured bool `idl:"name:fAdminConfigured" json:"admin_configured"` AllowUpdate bool `idl:"name:fAllowUpdate" json:"allow_update"` DSAvailable bool `idl:"name:fDsAvailable" json:"ds_available"` ServerName string `idl:"name:pszServerName;string" json:"server_name"` DSContainer string `idl:"name:pszDsContainer;string" json:"ds_container"` ServerAddrs *AddrArray `idl:"name:aipServerAddrs" json:"server_addrs"` ListenAddrs *AddrArray `idl:"name:aipListenAddrs" json:"listen_addrs"` Forwarders *AddrArray `idl:"name:aipForwarders" json:"forwarders"` LogFilter *AddrArray `idl:"name:aipLogFilter" json:"log_filter"` LogFilePath string `idl:"name:pwszLogFilePath;string" json:"log_file_path"` DomainName string `idl:"name:pszDomainName;string" json:"domain_name"` ForestName string `idl:"name:pszForestName;string" json:"forest_name"` DomainDirectoryPartition string `idl:"name:pszDomainDirectoryPartition;string" json:"domain_directory_partition"` ForestDirectoryPartition string `idl:"name:pszForestDirectoryPartition;string" json:"forest_directory_partition"` Extensions string `idl:"name:pExtensions;string" json:"extensions"` LogLevel uint32 `idl:"name:dwLogLevel" json:"log_level"` DebugLevel uint32 `idl:"name:dwDebugLevel" json:"debug_level"` ForwardTimeout uint32 `idl:"name:dwForwardTimeout" json:"forward_timeout"` RPCProtocol uint32 `idl:"name:dwRpcProtocol" json:"rpc_protocol"` NameCheckFlag uint32 `idl:"name:dwNameCheckFlag" json:"name_check_flag"` AddressAnswerLimitCount uint32 `idl:"name:cAddressAnswerLimit" json:"address_answer_limit_count"` RecursionRetry uint32 `idl:"name:dwRecursionRetry" json:"recursion_retry"` RecursionTimeout uint32 `idl:"name:dwRecursionTimeout" json:"recursion_timeout"` MaxCacheTTL uint32 `idl:"name:dwMaxCacheTtl" json:"max_cache_ttl"` DSPollingInterval uint32 `idl:"name:dwDsPollingInterval" json:"ds_polling_interval"` LocalNetPriorityNetMask uint32 `idl:"name:dwLocalNetPriorityNetMask" json:"local_net_priority_net_mask"` ScavengingInterval uint32 `idl:"name:dwScavengingInterval" json:"scavenging_interval"` DefaultRefreshInterval uint32 `idl:"name:dwDefaultRefreshInterval" json:"default_refresh_interval"` DefaultNoRefreshInterval uint32 `idl:"name:dwDefaultNoRefreshInterval" json:"default_no_refresh_interval"` LastScavengeTime uint32 `idl:"name:dwLastScavengeTime" json:"last_scavenge_time"` EventLogLevel uint32 `idl:"name:dwEventLogLevel" json:"event_log_level"` LogFileMaxSize uint32 `idl:"name:dwLogFileMaxSize" json:"log_file_max_size"` DSForestVersion uint32 `idl:"name:dwDsForestVersion" json:"ds_forest_version"` DSDomainVersion uint32 `idl:"name:dwDsDomainVersion" json:"ds_domain_version"` DSDSAVersion uint32 `idl:"name:dwDsDsaVersion" json:"ds_dsa_version"` // fReadOnlyDC: A Boolean value that indicates whether the DNS server has access to // a directory server that is running in read-only mode, that is, whether the server // does not accept directory server write operations. The DNS server detects whether // this is the case by reading the supportedCapabilities attribute of the server's rootDse // object, looking for LDAP_CAP_ACTIVE_DIRECTORY_PARTIAL_SECRETS_OID (See [MS-ADTS] // section 3.1.1.3.4.3.6). ReadOnlyDC bool `idl:"name:fReadOnlyDC" json:"read_only_dc"` AutoReverseZones bool `idl:"name:fAutoReverseZones" json:"auto_reverse_zones"` AutoCacheUpdate bool `idl:"name:fAutoCacheUpdate" json:"auto_cache_update"` RecurseAfterForwarding bool `idl:"name:fRecurseAfterForwarding" json:"recurse_after_forwarding"` ForwardDelegations bool `idl:"name:fForwardDelegations" json:"forward_delegations"` NoRecursion bool `idl:"name:fNoRecursion" json:"no_recursion"` SecureResponses bool `idl:"name:fSecureResponses" json:"secure_responses"` RoundRobin bool `idl:"name:fRoundRobin" json:"round_robin"` LocalNetPriority bool `idl:"name:fLocalNetPriority" json:"local_net_priority"` BindSecondaries bool `idl:"name:fBindSecondaries" json:"bind_secondaries"` WriteAuthorityNS bool `idl:"name:fWriteAuthorityNs" json:"write_authority_ns"` StrictFileParsing bool `idl:"name:fStrictFileParsing" json:"strict_file_parsing"` LooseWildcarding bool `idl:"name:fLooseWildcarding" json:"loose_wildcarding"` DefaultAgingState bool `idl:"name:fDefaultAgingState" json:"default_aging_state"` // contains filtered or unexported fields }
ServerInfoLonghorn structure represents DNS_RPC_SERVER_INFO_LONGHORN RPC structure.
In the DNS_RPC_SERVER_INFO_LONGHORN structure all fields have same definition as specified in section DNS_RPC_SERVER_INFO_DOTNET (section 2.2.4.2.2.2 ), with the following exceptions:<33>
func (*ServerInfoLonghorn) MarshalNDR ¶
func (*ServerInfoLonghorn) UnmarshalNDR ¶
type ServerInfoW2K ¶
type ServerInfoW2K struct { // dwVersion: The operating system version of the DNS server in DNSSRV_VERSION (section // 2.2.4.2.1). Version uint32 `idl:"name:dwVersion" json:"version"` // fBootMethod: The method by which the DNS server obtains information at the start // time. This MUST be set to one of the possible values as specified in DNS_BOOT_METHODS // (section 2.2.4.1.1). BootMethod uint8 `idl:"name:fBootMethod" json:"boot_method"` // fAdminConfigured: A Boolean field that specifies whether the DNS server has been // configured by an administrator. On a fresh installed server this value MUST be set // to FALSE. This value MUST be set to TRUE whenever a zone is created, or a record // is modified, or an Active Directory domain controller promotion (DCPROMO) configures // the DNS server. AdminConfigured bool `idl:"name:fAdminConfigured" json:"admin_configured"` // fAllowUpdate: A Boolean field that indicates whether the DNS server allows dynamic // DNS updates. This field MUST be set to FALSE if the server does not allow dynamic // zone-updates, otherwise set to TRUE. AllowUpdate bool `idl:"name:fAllowUpdate" json:"allow_update"` // fDsAvailable: A Boolean field that specifies whether a directory server is available // to the DNS server. It MUST be set to FALSE, if the server does not have access to // a directory server. DSAvailable bool `idl:"name:fDsAvailable" json:"ds_available"` // pszServerName: A pointer to a null-terminated UTF-8 string that contains the FQDN // of the DNS server. ServerName string `idl:"name:pszServerName;string" json:"server_name"` // pszDsContainer: A pointer to a null-terminated Unicode string that points to the // DNS server's container path as a distinguished name (DN) in the directory server. // If no directory server is configured, this value MUST be set to NULL. This value // is synthesized by the server by concatenating a constant container relative distinguished // name (RDN) and the result of an LDAP search operation to retrieve the defaultNamingContext // of the Active Directory server's rootDSE.<31> DSContainer string `idl:"name:pszDsContainer;string" json:"ds_container"` // aipServerAddrs: The list of IP addresses that are available on the server. ServerAddrs *IPv4Array `idl:"name:aipServerAddrs" json:"server_addrs"` // aipListenAddrs: The list of IP addresses that are explicitly configured by the administrator // on the DNS server that listens for the DNS requests. If this value is set to NULL // then the server listens to all available IP addresses. ListenAddrs *IPv4Array `idl:"name:aipListenAddrs" json:"listen_addrs"` // aipForwarders: The list of remote DNS servers to which this DNS server will forward // unresolved DNS requests. Forwarders *IPv4Array `idl:"name:aipForwarders" json:"forwarders"` // pExtension1: Reserved for future use and MUST be ignored by receiver. Extension1 uint32 `idl:"name:pExtension1" json:"extension1"` // pExtension2: Reserved for future use and MUST be ignored by receiver. Extension2 uint32 `idl:"name:pExtension2" json:"extension2"` // pExtension3: Reserved for future use and MUST be ignored by receiver. Extension3 uint32 `idl:"name:pExtension3" json:"extension3"` // pExtension4: Reserved for future use and MUST be ignored by receiver. Extension4 uint32 `idl:"name:pExtension4" json:"extension4"` // pExtension5: Reserved for future use and MUST be ignored by receiver. Extension5 uint32 `idl:"name:pExtension5" json:"extension5"` // dwLogLevel: This indicates which DNS packets will be logged and how they will be // logged. This field MUST be set to either zero or a combination (by bitwise OR) of // the possible values as specified under DNS_LOG_LEVELS (section 2.2.9.1.1). If this // value is set to zero, then no logging will be performed for DNS packets. LogLevel uint32 `idl:"name:dwLogLevel" json:"log_level"` // dwDebugLevel: Unused. Receivers MUST ignore. DebugLevel uint32 `idl:"name:dwDebugLevel" json:"debug_level"` // dwForwardTimeout: The time interval, in seconds, for which the DNS server waits for // a response from each server in the forwarders list. ForwardTimeout uint32 `idl:"name:dwForwardTimeout" json:"forward_timeout"` // dwRpcProtocol: This value indicates what RPC protocols this DNS server will accept // connections on. This value MUST be set to any combination of values specified in // DNS_RPC_PROTOCOLS (section 2.2.1.1.2). RPCProtocol uint32 `idl:"name:dwRpcProtocol" json:"rpc_protocol"` // dwNameCheckFlag: The level of domain name checking and validation enforced by the // DNS server. This value MUST be set one of the allowed values that are specified in // DNS_NAME_CHECK_FLAGS (section 2.2.4.1.2). NameCheckFlag uint32 `idl:"name:dwNameCheckFlag" json:"name_check_flag"` // cAddressAnswerLimit: The configured value for the maximum number of type A IP address // resource records that the DNS server can insert in the answer section of a response // to a UDP query of type A. If this value is set to 0x00000000 then the DNS server // MUST NOT enforce any artificial limit on number of records in a response and if response // becomes larger than the DNS UDP packet size then the truncation bit MUST be set [RFC1035]. // If this property value is not 0x00000000 and the DNS server is unable to add the // specified number of records to the response message due to message size limitations, // it MUST return as many records as will fit in the message and the truncation bit // MUST NOT be set. The DNS server MUST NOT enforce this limit if the query is not of // type A. If the value of this property is not 0x00000000 the DNS server MUST enforce // this limit for UDP queries and MUST NOT enforce this limit for TCP queries. If the // LocalNetPriority property value is set to TRUE, the DNS server first orders the address // records as per the LocalNetPriority property and then MUST select the first cAddressAnswerLimit // type A records in this sorted list for inclusion in the response. The value MUST // be either zero or between 0x00000005 and 0x0000001C inclusive. AddressAnswerLimitCount uint32 `idl:"name:cAddressAnswerLimit" json:"address_answer_limit_count"` // dwRecursionRetry: The time-interval, in seconds, for which the DNS server waits before // it retries a recursive query to the remote DNS server from which it did not receive // a response. The values MUST be between 1 and 15 seconds inclusive. RecursionRetry uint32 `idl:"name:dwRecursionRetry" json:"recursion_retry"` // dwRecursionTimeout: The time-interval, in seconds, for which the DNS server waits // for a recursive query-response from a remote DNS server. The values MUST be between // 1 and 15 seconds inclusive. RecursionTimeout uint32 `idl:"name:dwRecursionTimeout" json:"recursion_timeout"` // dwMaxCacheTtl: The maximum time duration, in seconds, for which the DNS server will // cache a resource record obtained from a remote server in a successful query response. // The values for this MUST be between 0 to 30 days (but specified in seconds) inclusive. MaxCacheTTL uint32 `idl:"name:dwMaxCacheTtl" json:"max_cache_ttl"` // dwDsPollingInterval: The interval, in seconds, at which the DNS server will poll // a directory server to obtain updated information for any changes that have occurred // to zones loaded in the server. The values MUST be between 30 and 3600 seconds inclusive. DSPollingInterval uint32 `idl:"name:dwDsPollingInterval" json:"ds_polling_interval"` // dwScavengingInterval: The scavenging interval, in hours, on the DNS server. This // is the interval at which the server will execute the cleanup of stale DNS records. // The value MUST be between 0 and 8760 hours (1 year). If this value is zero then scavenging // is disabled. ScavengingInterval uint32 `idl:"name:dwScavengingInterval" json:"scavenging_interval"` // dwDefaultRefreshInterval: The default value of the refresh interval, in hours, for // new zones created on the DNS server. For any primary zone created on the server by // default this value is used as the refresh interval. DefaultRefreshInterval uint32 `idl:"name:dwDefaultRefreshInterval" json:"default_refresh_interval"` // dwDefaultNoRefreshInterval: The default value of the NoRefresh interval, in hours, // for new zones created on the DNS server. For any primary zone created on the server // by default this value is used as the NoRefresh interval. DefaultNoRefreshInterval uint32 `idl:"name:dwDefaultNoRefreshInterval" json:"default_no_refresh_interval"` // fAutoReverseZones: A Boolean value that indicates whether the DNS server is configured // to automatically create standard reverse lookup zones at boot time. AutoReverseZones bool `idl:"name:fAutoReverseZones" json:"auto_reverse_zones"` // fAutoCacheUpdate: A Boolean value that indicates whether the DNS server is configured // to automatically write-back cached root hints and delegation data to persistent storage. AutoCacheUpdate bool `idl:"name:fAutoCacheUpdate" json:"auto_cache_update"` // fRecurseAfterForwarding: A Boolean value that indicates whether the DNS server is // configured to use recursion in addition to forwarding. If this value is TRUE (0x01) // then if the DNS server does not have any forwarders configured or if forwarders are // unreachable then it MUST return failure, otherwise it MUST perform normal recursive // processing for this query as specified in [RFC1034] section 4.3.1. RecurseAfterForwarding bool `idl:"name:fRecurseAfterForwarding" json:"recurse_after_forwarding"` // fForwardDelegations: A Boolean value indicates whether or not the DNS server will // forward queries about delegated subzones to servers outside of its authoritative // zone. If this value is set to TRUE, then the DNS server forwards all name queries // about delegated subzones to forwarding servers in other zones; otherwise it will // send such queries within its authoritative zone to the corresponding subzone only. ForwardDelegations bool `idl:"name:fForwardDelegations" json:"forward_delegations"` // fNoRecursion: A Boolean value that indicates whether the DNS server will perform // recursive resolution for queries. If this value is TRUE then recursion MUST NOT be // performed even if the Recursion Desired (RD) bit ([RFC1035] section 4.1.1) is set // in the DNS query packet header. If this value is FALSE then recursion will be performed // as per [RFC1035]. NoRecursion bool `idl:"name:fNoRecursion" json:"no_recursion"` // fSecureResponses: A Boolean value that indicates if the DNS server needs to screen // DNS records received in remote query responses against the zone of authority for // the remote server to prevent cache pollution. If it is set to TRUE, the DNS server // caches only the records that are in zone of authority for the remote server that // was queried. When set to FALSE, all records in the cache are saved. SecureResponses bool `idl:"name:fSecureResponses" json:"secure_responses"` // fRoundRobin: A Boolean value that indicates if the DNS server is configured to rotate // the order of DNS records it returns for a given name. If this value is set to FALSE // no round robin will be performed and DNS records will be returned in static, arbitrary // order. RoundRobin bool `idl:"name:fRoundRobin" json:"round_robin"` // fLocalNetPriority: A Boolean value that indicates if the DNS server is configured // to prioritize address records in a response based on the IP address of the DNS client // that submitted the query. If this is set to TRUE the DNS server will return address // records in the order of their closeness to the querying client's IP address by applying // the network mask pointed to by LocalNetPriorityNetMask. If this value is set to 0 // then the DNS server returns records in the order in which they are obtained from // the database. LocalNetPriority bool `idl:"name:fLocalNetPriority" json:"local_net_priority"` // fBindSecondaries: A Boolean value that indicates if the DNS server allows zone transfers // to secondary DNS servers running older non-Microsoft software. If this value is set // to TRUE the DNS server sends zone transfer to secondaries via a slower mechanism, // with one resource record in each message. BindSecondaries bool `idl:"name:fBindSecondaries" json:"bind_secondaries"` // fWriteAuthorityNs: A Boolean value that indicates if the DNS server is enabled to // write NS records in the authority section of all successful authoritative responses. // If this value is TRUE then NS records will be included in the authority section of // responses, otherwise NS records will only be included in referral responses. WriteAuthorityNS bool `idl:"name:fWriteAuthorityNs" json:"write_authority_ns"` // fStrictFileParsing: A Boolean value that indicates if the DNS server is configured // to perform strict file parsing. When this value is set to TRUE and a record parsing // error is detected server will quit after indicating error. If this value is FALSE // parsing errors will cause that specific record to be ignored and the server will // continue to load the rest of the database. StrictFileParsing bool `idl:"name:fStrictFileParsing" json:"strict_file_parsing"` // fLooseWildcarding: A Boolean value that indicates if the DNS server is configured // to perform loose wildcarding [RFC1035], otherwise it returns FALSE. When a server // does not find a resource record that matches the name and type specified in the query // in the authoritative zone, then it searches for related wildcard records, ([RFC1034] // section 4.3.3), if configured to perform loose wildcarding will return the first // node it finds that has matching resource-record type, whereas if it is not then it // will return the first node that has any resource record. LooseWildcarding bool `idl:"name:fLooseWildcarding" json:"loose_wildcarding"` // fDefaultAgingState: A Boolean value that indicates if the default value of ageing // state for new primary zones created on the DNS server. For any primary zone created // on the server this value is used as its default aging state. If this is FALSE then // timestamps of records in the zone will not be tracked whereas when this value is // TRUE then the timestamps of records in the zone will be tracked. DefaultAgingState bool `idl:"name:fDefaultAgingState" json:"default_aging_state"` // contains filtered or unexported fields }
ServerInfoW2K structure represents DNS_RPC_SERVER_INFO_W2K RPC structure.
The DNS_RPC_SERVER_INFO_W2K structure is used to specify general DNS server state and configuration.
func (*ServerInfoW2K) MarshalNDR ¶
func (*ServerInfoW2K) UnmarshalNDR ¶
type ServerInfo_NET ¶
type ServerInfo_NET struct { // dwRpcStructureVersion: The DNS management structure version number. The following // are possible values: // // +------------+--------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +------------+--------------------------------------------------------------------------+ // +------------+--------------------------------------------------------------------------+ // | 0x00000001 | Structure is of type DNS_RPC_SERVER_INFO_DOTNET (section 2.2.4.2.2.2). | // +------------+--------------------------------------------------------------------------+ // | 0x00000002 | Structure is of type DNS_RPC_SERVER_INFO_LONGHORN (section 2.2.4.2.2.3). | // +------------+--------------------------------------------------------------------------+ RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` Version uint32 `idl:"name:dwVersion" json:"version"` BootMethod uint8 `idl:"name:fBootMethod" json:"boot_method"` AdminConfigured bool `idl:"name:fAdminConfigured" json:"admin_configured"` AllowUpdate bool `idl:"name:fAllowUpdate" json:"allow_update"` DSAvailable bool `idl:"name:fDsAvailable" json:"ds_available"` ServerName string `idl:"name:pszServerName;string" json:"server_name"` DSContainer string `idl:"name:pszDsContainer;string" json:"ds_container"` ServerAddrs *IPv4Array `idl:"name:aipServerAddrs" json:"server_addrs"` ListenAddrs *IPv4Array `idl:"name:aipListenAddrs" json:"listen_addrs"` Forwarders *IPv4Array `idl:"name:aipForwarders" json:"forwarders"` // aipLogFilter: The list of IP addresses used for debug log filtering. The DNS server // will log DNS traffic that is sent to or received from for these IP addresses and // will not log DNS traffic to or from other IP addresses. If this value is set to NULL // then the DNS server will not perform IP filtering when logging DNS traffic. LogFilter *IPv4Array `idl:"name:aipLogFilter" json:"log_filter"` // pwszLogFilePath: A pointer to a null-terminated Unicode string that contains an absolute // pathname or relative pathname or filename for the operational log file on the DNS // server. If this value is set to NULL, the log SHOULD be logged to an implementation // specific log file. LogFilePath string `idl:"name:pwszLogFilePath;string" json:"log_file_path"` // pszDomainName: A pointer to a null-terminated UTF-8 string that contains the name // of the directory server domain to which the DNS server belongs if directory server // is available. This value will be NULL if no directory server is available. DomainName string `idl:"name:pszDomainName;string" json:"domain_name"` // pszForestName: A pointer to a null-terminated UTF-8 string that contains the name // of the directory server forest to which the DNS server belongs if directory server // is available. This value will be NULL if no directory server is available. ForestName string `idl:"name:pszForestName;string" json:"forest_name"` // pszDomainDirectoryPartition: A pointer to a null-terminated UTF-8 string that contains // the base name for the domain wide DNS application directory partition. DomainDirectoryPartition string `idl:"name:pszDomainDirectoryPartition;string" json:"domain_directory_partition"` // pszForestDirectoryPartition: A pointer to a null-terminated UTF-8 string that contains // the base name for the forest-wide DNS application directory partition. ForestDirectoryPartition string `idl:"name:pszForestDirectoryPartition;string" json:"forest_directory_partition"` // pExtensions: Reserved for future use. Senders MUST set this to NULL and it MUST be // ignored by the receiver. Extensions string `idl:"name:pExtensions;string" json:"extensions"` LogLevel uint32 `idl:"name:dwLogLevel" json:"log_level"` DebugLevel uint32 `idl:"name:dwDebugLevel" json:"debug_level"` ForwardTimeout uint32 `idl:"name:dwForwardTimeout" json:"forward_timeout"` RPCProtocol uint32 `idl:"name:dwRpcProtocol" json:"rpc_protocol"` NameCheckFlag uint32 `idl:"name:dwNameCheckFlag" json:"name_check_flag"` AddressAnswerLimitCount uint32 `idl:"name:cAddressAnswerLimit" json:"address_answer_limit_count"` RecursionRetry uint32 `idl:"name:dwRecursionRetry" json:"recursion_retry"` RecursionTimeout uint32 `idl:"name:dwRecursionTimeout" json:"recursion_timeout"` MaxCacheTTL uint32 `idl:"name:dwMaxCacheTtl" json:"max_cache_ttl"` DSPollingInterval uint32 `idl:"name:dwDsPollingInterval" json:"ds_polling_interval"` // dwLocalNetPriorityNetMask: The net mask used by the DNS server to prioritize address // records in responses when the server is configured to enforce LocalNetPriority as // mentioned above. LocalNetPriorityNetMask uint32 `idl:"name:dwLocalNetPriorityNetMask" json:"local_net_priority_net_mask"` ScavengingInterval uint32 `idl:"name:dwScavengingInterval" json:"scavenging_interval"` DefaultRefreshInterval uint32 `idl:"name:dwDefaultRefreshInterval" json:"default_refresh_interval"` DefaultNoRefreshInterval uint32 `idl:"name:dwDefaultNoRefreshInterval" json:"default_no_refresh_interval"` // dwLastScavengeTime: The timestamp at which the last scavenging cycle was executed // on the DNS server. If this value is set to 0 then no scavenging cycle has been run // since the server was last started. LastScavengeTime uint32 `idl:"name:dwLastScavengeTime" json:"last_scavenge_time"` // dwEventLogLevel: This value indicates what level of events will be logged by the // DNS server. This value MUST be set to one of the combination of the possible values // for this defined in DNS_EVENTLOG_TYPES (section 2.2.9.1.2). EventLogLevel uint32 `idl:"name:dwEventLogLevel" json:"event_log_level"` // dwLogFileMaxSize: The maximum allowed size, in bytes, for the log file. LogFileMaxSize uint32 `idl:"name:dwLogFileMaxSize" json:"log_file_max_size"` // dwDsForestVersion: This value indicates the directory server forest version being // used by the DNS server, stored in the ForceForestBehaviorVersion property. DSForestVersion uint32 `idl:"name:dwDsForestVersion" json:"ds_forest_version"` // dwDsDomainVersion: This value indicates the directory server domain version being // used by the DNS server, stored in the ForceDomainBehaviorVersion property. DSDomainVersion uint32 `idl:"name:dwDsDomainVersion" json:"ds_domain_version"` // dwDsDsaVersion: This value indicates the directory server local server version being // used by the DNS server, stored in the ForceDsaBehaviorVersion property. DSDSAVersion uint32 `idl:"name:dwDsDsaVersion" json:"ds_dsa_version"` AutoReverseZones bool `idl:"name:fAutoReverseZones" json:"auto_reverse_zones"` AutoCacheUpdate bool `idl:"name:fAutoCacheUpdate" json:"auto_cache_update"` RecurseAfterForwarding bool `idl:"name:fRecurseAfterForwarding" json:"recurse_after_forwarding"` ForwardDelegations bool `idl:"name:fForwardDelegations" json:"forward_delegations"` NoRecursion bool `idl:"name:fNoRecursion" json:"no_recursion"` SecureResponses bool `idl:"name:fSecureResponses" json:"secure_responses"` RoundRobin bool `idl:"name:fRoundRobin" json:"round_robin"` LocalNetPriority bool `idl:"name:fLocalNetPriority" json:"local_net_priority"` BindSecondaries bool `idl:"name:fBindSecondaries" json:"bind_secondaries"` WriteAuthorityNS bool `idl:"name:fWriteAuthorityNs" json:"write_authority_ns"` StrictFileParsing bool `idl:"name:fStrictFileParsing" json:"strict_file_parsing"` LooseWildcarding bool `idl:"name:fLooseWildcarding" json:"loose_wildcarding"` DefaultAgingState bool `idl:"name:fDefaultAgingState" json:"default_aging_state"` // contains filtered or unexported fields }
ServerInfo_NET structure represents DNS_RPC_SERVER_INFO_DOTNET RPC structure.
In the DNS_RPC_SERVER_INFO_DOTNET structure all fields have same definition as specified in DNS_RPC_SERVER_INFO_W2K (section 2.2.4.2.2.1), with the following exceptions:<32>
func (*ServerInfo_NET) MarshalNDR ¶
func (*ServerInfo_NET) UnmarshalNDR ¶
type SigningValidationError ¶
type SigningValidationError struct { // dwRpcStructureVersion: The structure version number; this MUST be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // guidSKD: The unique identifier for the signing key descriptor that caused the validation // error. SKD *dtyp.GUID `idl:"name:guidSKD" json:"skd"` // pwszSigningKeyPointerString: The signing key pointer string of the signing key that // caused the validation error. SigningKeyPointerString string `idl:"name:pwszSigningKeyPointerString;string" json:"signing_key_pointer_string"` // dwExtendedError: MUST be set to zero when sent. ExtendedError uint32 `idl:"name:dwExtendedError" json:"extended_error"` // contains filtered or unexported fields }
SigningValidationError structure represents DNS_RPC_SIGNING_VALIDATION_ERROR RPC structure.
The DNS_RPC_SIGNING_VALIDATION_ERROR structure describes an error that occurred during the use of an SKD.
func (*SigningValidationError) MarshalNDR ¶
func (*SigningValidationError) UnmarshalNDR ¶
type Stat ¶
type Stat struct { StatID uint32 `idl:"name:StatId" json:"stat_id"` Length uint16 `idl:"name:wLength" json:"length"` Clear bool `idl:"name:fClear" json:"clear"` // Buffer: A variable length array of bytes that contains information specific to the // type of DNS server statistics, as specified by the StatId value in the Header. Buffer []byte `idl:"name:Buffer;size_is:(wLength)" json:"buffer"` // contains filtered or unexported fields }
Stat structure represents DNSSRV_STAT RPC structure.
The DNSSRV_STATS structure carries server statistics information. This structure MUST be interpreted as one of the more specific statistics structures specified in sections 2.2.10.2.4 through 2.2.10.2.24, depending upon the StatId value in the Header member. This structure MUST be formatted as follows:
type StatHeader ¶
type StatHeader struct { // StatId: The type of statistics contained in the DNSSRV_STATS structure. This value // MUST be set to one of the allowed values specified in section 2.2.10.1.1. StatID uint32 `idl:"name:StatId" json:"stat_id"` // wLength: The length, in bytes, of the Buffer member in the DNSSRV_STATS structure // (section 2.2.10.2.2). Length uint16 `idl:"name:wLength" json:"length"` // fClear: A Boolean value that indicates whether the server is to clear the statistics // buffer for the server attribute indicated at by StatId. Clear bool `idl:"name:fClear" json:"clear"` // contains filtered or unexported fields }
StatHeader structure represents DNSSRV_STAT_HEADER RPC structure.
The DNSSRV_STAT_HEADER structure precedes each DNSSRV_STATS structure (section 2.2.10.2.2) which provides DNS server runtime statistics. This structure MUST be formatted as follows:
func (*StatHeader) MarshalNDR ¶
func (*StatHeader) UnmarshalNDR ¶
type SystemTime ¶
type SystemTime struct { // wYear (2 bytes): The year, as a 16-bit, unsigned integer. Valid values are from 1601 // to 30827. Year uint16 `idl:"name:wYear" json:"year"` // wMonth (2 bytes): The month from 1 (January) to 12 (December), as a 16-bit, unsigned // integer. Month uint16 `idl:"name:wMonth" json:"month"` // wDayOfWeek (2 bytes): The day of the week from 0 (Sunday) to 6 (Saturday), as a 16-bit, // unsigned integer. DayOfWeek uint16 `idl:"name:wDayOfWeek" json:"day_of_week"` // wDay (2 bytes): The day of the month from 1 to 31, as a 16-bit, unsigned integer. Day uint16 `idl:"name:wDay" json:"day"` // wHour (2 bytes): The hour from 0 to 23, as a 16-bit, unsigned integer. Hour uint16 `idl:"name:wHour" json:"hour"` // wMinute (2 bytes): The minute from 0 to 59, as a 16-bit, unsigned integer. Minute uint16 `idl:"name:wMinute" json:"minute"` // wSecond (2 bytes): The second from 0 to 59, as a 16-bit, unsigned integer. Second uint16 `idl:"name:wSecond" json:"second"` Milliseconds uint16 `idl:"name:wMilliseconds" json:"milliseconds"` }
SystemTime structure represents DNS_SYSTEMTIME RPC structure.
The DNS_SYSTEMTIME structure stores time values for DNS statistics. It is always populated by the server, which MUST supply valid values. This structure MUST be formatted as follows:
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 2 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 3 | 1 | | | | | | | | | | | | 0 | | | | | | | | | | 0 | | | | | | | | | | 0 | | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | wYear | wMonth | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | wDayOfWeek | wDay | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | wHour | wMinute | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | wSecond | wMillisecond | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
func (*SystemTime) MarshalNDR ¶
func (*SystemTime) UnmarshalNDR ¶
type TrustAnchor ¶
type TrustAnchor struct { // dwRpcStructureVersion: The structure version number; this MUST be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // wTrustAnchorType: The DNS record type corresponding to the trust anchor. This MUST // be set to one of the following values. // // +------------------------+---------------------------------+ // | | | // | VALUE | MEANING | // | | | // +------------------------+---------------------------------+ // +------------------------+---------------------------------+ // | DNS_TYPE_DS 0x002B | A DS record type [RFC4034]. | // +------------------------+---------------------------------+ // | DNS_TYPE_DNSKEY 0x0030 | A DNSKEY record type [RFC4034]. | // +------------------------+---------------------------------+ TrustAnchorType uint16 `idl:"name:wTrustAnchorType" json:"trust_anchor_type"` // wKeyTag: The DNSSEC key tag for this trust anchor. The key tag for a DS record trust // anchor MUST match the value of the record’s "Key Tag" field (see [RFC4034]). The // key tag for a DNSKEY record trust anchor MUST match the value calculated for the // DNSKEY record (see [RFC4034] Appendix B), with the exception that the REVOKE bit // of the DNSKEY flags field MUST be set to zero before the calculation. KeyTag uint16 `idl:"name:wKeyTag" json:"key_tag"` // wRRLength: The length of the RRData array. RRLength uint16 `idl:"name:wRRLength" json:"rr_length"` // eTrustAnchorState: The current state of the trust anchor. This MUST be one of the // following TRUSTANCHOR_STATE enumeration values (section 2.2.1.1.4). // // +----------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +----------------------------------------+----------------------------------------------------------------------------------+ // +----------------------------------------+----------------------------------------------------------------------------------+ // | TRUSTANCHOR_STATE_DSPENDING 0x00000001 | This trust anchor can be replaced with a matching DNSKEY trust anchor when the | // | | associated trust point has had a successful active refresh. If this state is | // | | set, wTrustAnchorType MUST be DNS_TYPE_DS. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | TRUSTANCHOR_STATE_DSINVALID 0x00000002 | The associated trust point has had a successful active refresh, but no | // | | DNSKEY record was found that matches this trust anchor. If this state is set, | // | | wTrustAnchorType MUST be DNS_TYPE_DS. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | TRUSTANCHOR_STATE_ADDPEND 0x00000003 | This trust anchor will become valid after the expiration of the RFC 5011 add | // | | hold-down time (see [RFC5011]). This corresponds to the "AddPend" state in RFC | // | | 5011. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | TRUSTANCHOR_STATE_VALID 0x00000004 | This trust anchor is trusted for DNSSEC proofs because it was either explicitly | // | | added by the administrator or became valid after the expiration of the RFC 5011 | // | | add hold-down time (see [RFC5011]). This corresponds to the Valid state in RFC | // | | 5011. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | TRUSTANCHOR_STATE_MISSING 0x00000005 | This trust anchor was in the TRUSTANCHOR_STATE_VALID state but was missing in | // | | the last successful active refresh. It is still trusted for DNSSEC proofs. This | // | | corresponds to the Valid state in [RFC5011]. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | TRUSTANCHOR_STATE_REVOKED 0x00000006 | This trust anchor has been marked as revoked by the administrator for the trust | // | | point's zone. It can never again be trusted for DNSSEC proofs. This corresponds | // | | to the Revoked state in [RFC5011]. | // +----------------------------------------+----------------------------------------------------------------------------------+ TrustAnchorState TrustAnchorState `idl:"name:eTrustAnchorState" json:"trust_anchor_state"` // i64EnteredStateTime: The time at which this trust anchor entered its current state. // This is a 64-bit value representing the number of 100-nanosecond intervals since // January 1, 1601 (UTC). EnteredStateTime int64 `idl:"name:i64EnteredStateTime" json:"entered_state_time"` // i64NextStateTime: The time at which this trust anchor is scheduled to exit the current // state. This is a 64-bit value representing the number of 100-nanosecond intervals // since January 1, 1601 (UTC). The meaning is dependent on the value of eTrustAnchorState. // // +----------------------------------------+----------------------------------------------------------------------------------+ // | VALUE OF | | // | ETRUSTANCHORSTATE | MEANING | // | | | // +----------------------------------------+----------------------------------------------------------------------------------+ // +----------------------------------------+----------------------------------------------------------------------------------+ // | TRUSTANCHOR_STATE_DSPENDING 0x00000001 | Reserved. The value of i64NextStateTime MUST be set to zero when sent and MUST | // | | be ignored on receipt. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | TRUSTANCHOR_STATE_DSINVALID 0x00000002 | Reserved. The value of i64NextStateTime MUST be set to zero when sent and MUST | // | | be ignored on receipt. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | TRUSTANCHOR_STATE_ADDPEND 0x00000003 | This trust anchor is scheduled to enter the TRUSTANCHOR_STATE_VALID state on | // | | or after the value of i64NextStateTime. This MUST be equivalent to the value | // | | of i64EnteredStateTime added to the value of the add hold-down time (see | // | | [RFC5011]). | // +----------------------------------------+----------------------------------------------------------------------------------+ // | TRUSTANCHOR_STATE_VALID 0x00000004 | Reserved. The value of i64NextStateTime MUST be set to zero when sent and MUST | // | | be ignored on receipt. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | TRUSTANCHOR_STATE_MISSING 0x00000005 | Reserved. The value of i64NextStateTime MUST be set to zero when sent and MUST | // | | be ignored on receipt. | // +----------------------------------------+----------------------------------------------------------------------------------+ // | TRUSTANCHOR_STATE_REVOKED 0x00000006 | This trust anchor will become eligible for deletion on or after the value of | // | | i64NextStateTime. This MUST be equivalent to the value of i64EnteredStateTime | // | | added to the value of the remove hold-down time (see [RFC5011]). | // +----------------------------------------+----------------------------------------------------------------------------------+ NextStateTime int64 `idl:"name:i64NextStateTime" json:"next_state_time"` // RRData: Binary data in the same format as DNS_RPC_RECORD_DNSKEY (section 2.2.2.2.4.15) // if wTrustAnchorType is DNS_TYPE_DNSKEY, or binary data in the same format as DNS_RPC_RECORD_DS // (section 2.2.2.2.4.12) if wTrustAnchorType is DNS_TYPE_DS. RRData []byte `idl:"name:RRData;size_is:(wRRLength)" json:"rr_data"` // contains filtered or unexported fields }
TrustAnchor structure represents DNS_RPC_TRUST_ANCHOR RPC structure.
The DNS_RPC_TRUST_ANCHOR structure contains information about a trust anchor.
func (*TrustAnchor) MarshalNDR ¶
func (*TrustAnchor) NDRSizeInfo ¶
func (o *TrustAnchor) NDRSizeInfo() []uint64
func (*TrustAnchor) UnmarshalNDR ¶
type TrustAnchorList ¶
type TrustAnchorList struct { // dwRpcStructureVersion: The structure version number; this MUST be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // dwTrustAnchorCount: The size of the TrustAnchorArray array. TrustAnchorCount uint32 `idl:"name:dwTrustAnchorCount" json:"trust_anchor_count"` // TrustAnchorArray: An array of pointers to DNS_RPC_TRUST_ANCHOR structures (section // 2.2.6.2.6). TrustAnchorArray []*TrustAnchor `idl:"name:TrustAnchorArray;size_is:(dwTrustAnchorCount)" json:"trust_anchor_array"` // contains filtered or unexported fields }
TrustAnchorList structure represents DNS_RPC_TRUST_ANCHOR_LIST RPC structure.
The DNS_RPC_TRUST_ANCHOR_LIST structure contains zero or more DNS_RPC_TRUST_ANCHOR structures.
func (*TrustAnchorList) MarshalNDR ¶
func (*TrustAnchorList) NDRSizeInfo ¶
func (o *TrustAnchorList) NDRSizeInfo() []uint64
func (*TrustAnchorList) UnmarshalNDR ¶
type TrustAnchorState ¶
type TrustAnchorState uint16
TrustAnchorState type represents TRUSTANCHOR_STATE RPC enumeration.
The TRUSTANCHOR_STATE enumeration identifies the current state of the life cycle of a DNSSEC trust anchor. All states other than TRUSTANCHOR_STATE_DSPENDING and TRUSTANCHOR_STATE_DSINVALID correspond to the states given in [RFC5011] section 4.2. Only the TRUSTANCHOR_STATE_VALID and TRUSTANCHOR_STATE_MISSING trust anchors affect the DNS protocol (by acting as a DNSSEC trust anchor). None of the states affect the LDAP protocol [RFC4511].
var ( // TRUSTANCHOR_STATE_INITIALIZED: Reserved. MUST NOT be sent by the server, MUST be // ignored by the receiver. TrustAnchorStateInitialized TrustAnchorState = 0 // TRUSTANCHOR_STATE_DSPENDING: Indicates a DS trust anchor that can be replaced by // the DNSKEY trust anchor that matches the hash of the DS trust anchor after the next // [RFC5011] active refresh. TrustAnchorStateDspending TrustAnchorState = 1 // TRUSTANCHOR_STATE_DSINVALID: Indicates a DS trust anchor that matches a DNSKEY record // that is not valid as a trust anchor because the SEP flag is not set or because the // algorithm is unsupported. TrustAnchorStateDsinvalid TrustAnchorState = 2 // TRUSTANCHOR_STATE_ADDPEND: Indicates a DNSKEY trust anchor that has not exceeded // the [RFC5011] add-hold-down time. This trust anchor can become a valid trust anchor // after the hold-down time has been exceeded. TrustAnchorStateAddpend TrustAnchorState = 3 // TRUSTANCHOR_STATE_VALID: Indicates a DNSKEY trust anchor that has exceeded the [RFC5011] // add-hold-down time, has been matched to (and has replaced) a DS trust anchor, or // has been added by the administrator. This trust anchor is trusted for DNSSEC operations, // and a copy exists in the TrustAnchors zone. TrustAnchorStateValid TrustAnchorState = 4 // TRUSTANCHOR_STATE_MISSING: Indicates a DNSKEY trust anchor that is valid but was // not seen in the last [RFC5011] active refresh. This trust anchor is trusted for DNSSEC // operations, and a copy exists in the TrustAnchors zone. TrustAnchorStateMissing TrustAnchorState = 5 // TRUSTANCHOR_STATE_REVOKED: Indicates a DNSKEY trust anchor that has been revoked // by the authoritative zone administrator according to [RFC5011]. This trust anchor // will be deleted when the [RFC5011] remove-hold-down time is exceeded. TrustAnchorStateRevoked TrustAnchorState = 6 // TRUSTANCHOR_STATE_DELETED: Reserved. MUST NOT be sent by the server, MUST be ignored // by the receiver. TrustAnchorStateDeleted TrustAnchorState = 7 )
func (TrustAnchorState) String ¶
func (o TrustAnchorState) String() string
type TrustPoint ¶
type TrustPoint struct { // dwRpcStructureVersion: The structure version number; it MUST be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // pszTrustPointName: The FQDN of the trust point or node in the TrustAnchors zone represented // by this structure. This MUST be a non-empty, non-NULL string. TrustPointName string `idl:"name:pszTrustPointName;string" json:"trust_point_name"` // eTrustPointState: A TRUSTPOINT_STATE enumeration value (section 2.2.1.1.3) containing // the current trust point state. This MUST be set to one of the following values. For // the TRUSTANCHOR_STATE enumeration values see section 2.2.1.1.4. // // +--------------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +--------------------------------------------+----------------------------------------------------------------------------------+ // +--------------------------------------------+----------------------------------------------------------------------------------+ // | TRUSTPOINT_STATE_INITIALIZED 0x00000000 | This structure represents a node in the TrustAnchors zone that does not contain | // | | any trust anchors. This node is not a trust point. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | TRUSTPOINT_STATE_DSPENDING 0x00000001 | This trust point contains only DS trust anchors (trust anchors in the | // | | TRUSTANCHOR_STATE_DSPENDING or TRUSTANCHOR_STATE_DSINVALID state), rendering it | // | | unusable for DNSSEC proofs. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | TRUSTPOINT_STATE_ACTIVE 0x00000002 | This trust point contains at least one trust anchor in the | // | | TRUSTANCHOR_STATE_VALID or TRUSTANCHOR_STATE_MISSING state. | // +--------------------------------------------+----------------------------------------------------------------------------------+ // | TRUSTPOINT_STATE_DELETE_PENDING 0x00000003 | This trust point contains only trust anchors in the TRUSTANCHOR_STATE_REVOKED | // | | state. | // +--------------------------------------------+----------------------------------------------------------------------------------+ TrustPointState TrustPointState `idl:"name:eTrustPointState" json:"trust_point_state"` // i64LastActiveRefreshTime: The time of the last active refresh. This is set to zero // to indicate that no active refresh has occurred. This is a 64-bit value representing // the number of 100-nanosecond intervals since January 1, 1601 Coordinated Universal // Time (UTC). LastActiveRefreshTime int64 `idl:"name:i64LastActiveRefreshTime" json:"last_active_refresh_time"` // i64NextActiveRefreshTime: The scheduled time of the next active refresh, or zero // to indicate that no active refresh is scheduled. This is a 64-bit value representing // the number of 100-nanosecond intervals since January 1, 1601 (UTC). NextActiveRefreshTime int64 `idl:"name:i64NextActiveRefreshTime" json:"next_active_refresh_time"` // i64LastSuccessfulActiveRefreshTime: The time of the last successful active refresh, // or zero to indicate that no active refresh has occurred. This is a 64-bit value representing // the number of 100-nanosecond intervals since January 1, 1601 (UTC). A successful // active refresh is defined as an active refresh resulting in retrieval of one or more // DNSKEY records for the trust point and, if this trust point has trust anchors in // the TRUSTANCHOR_STATE_VALID state, signifies that one or more of the retrieved DNSKEY // records was validated by DNSSEC. LastSuccessfulActiveRefreshTime int64 `idl:"name:i64LastSuccessfulActiveRefreshTime" json:"last_successful_active_refresh_time"` // dwLastActiveRefreshResult: The result of the last active refresh, either ERROR_SUCCESS // or a nonzero value to indicate that an error has occurred. LastActiveRefreshResult uint32 `idl:"name:dwLastActiveRefreshResult" json:"last_active_refresh_result"` // contains filtered or unexported fields }
TrustPoint structure represents DNS_RPC_TRUST_POINT RPC structure.
The DNS_RPC_TRUST_POINT structure contains information about a trust point or a node in the TrustAnchors zone ([RFC5011]).
func (*TrustPoint) MarshalNDR ¶
func (*TrustPoint) UnmarshalNDR ¶
type TrustPointList ¶
type TrustPointList struct { // dwRpcStructureVersion: The structure version number; this MUST be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // dwTrustPointCount: The size of the TrustPointArray array. TrustPointCount uint32 `idl:"name:dwTrustPointCount" json:"trust_point_count"` // TrustPointArray: An array of pointers to DNS_RPC_TRUST_POINT structures. TrustPointArray []*TrustPoint `idl:"name:TrustPointArray;size_is:(dwTrustPointCount)" json:"trust_point_array"` // contains filtered or unexported fields }
TrustPointList structure represents DNS_RPC_TRUST_POINT_LIST RPC structure.
The DNS_RPC_TRUST_POINT_LIST structure contains zero or more DNS_RPC_TRUST_POINT structures.
func (*TrustPointList) MarshalNDR ¶
func (*TrustPointList) NDRSizeInfo ¶
func (o *TrustPointList) NDRSizeInfo() []uint64
func (*TrustPointList) UnmarshalNDR ¶
type TrustPointState ¶
type TrustPointState uint16
TrustPointState type represents TRUSTPOINT_STATE RPC enumeration.
The TRUSTPOINT_STATE enumeration identifies the current state of the life cycle of a DNSSEC trust point. The state of the trust point is determined by the states of its trust anchors and is given for informational purposes only; it does not affect the DNS or LDAP protocol.
var ( // TRUSTPOINT_STATE_INITIALIZED: Indicates a trust point that has no trust anchors but // has child nodes that do have trust anchors. TrustPointStateInitialized TrustPointState = 0 // TRUSTPOINT_STATE_DSPENDING: Indicates a trust point that has only DS trust anchors // and is therefore ineffective for DNSSEC operations. TrustPointStateDspending TrustPointState = 1 // TRUSTPOINT_STATE_ACTIVE: Indicates a trust point that has one or more DNSKEY trust // anchors. Queries covered by this trust point will be validated using the DNSKEY trust // anchors. TrustPointStateActive TrustPointState = 2 // TRUSTPOINT_STATE_DELETE_PENDING: Indicates a trust point containing only revoked // DNSKEY trust anchors. When the [RFC5011] remove-hold-down time is exceeded for all // revoked trust anchors, this trust point will be deleted. TrustPointStateDeletePending TrustPointState = 3 // TRUSTPOINT_STATE_DELETED: Reserved. MUST NOT be sent by the server, MUST be ignored // by the receiver. TrustPointStateDeleted TrustPointState = 4 )
func (TrustPointState) String ¶
func (o TrustPointState) String() string
type TypeID ¶
type TypeID uint16
TypeID type represents DNS_RPC_TYPEID RPC enumeration.
The DNS Server Management Protocol RPC methods use a generic and extensible data structure of type DNSSRV_RPC_UNION structure (section 2.2.1.2.6), which is a union of pointers to different data types. A DNS_RPC_TYPEID enumeration value is used to specify what data is being stored in an instance of the DNSSRV_RPC_UNION structure. When combined with a DNSSRV_RPC_UNION structure, the DNS_RPC_TYPEID enumeration allows the DNS RPC interface to communicate many different types of DNS server configuration and data in a single structure.
var ( // DNSSRV_TYPEID_ANY: Type is invalid. TypeIDAny TypeID = 1 // DNSSRV_TYPEID_NULL: No data is provided. TypeIDNull TypeID = 0 // DNSSRV_TYPEID_DWORD: A DWORD value. TypeIDDword TypeID = 1 // DNSSRV_TYPEID_LPSTR: A pointer to a null-terminated UTF-8 [RFC3629] string. TypeIDString TypeID = 2 // DNSSRV_TYPEID_LPWSTR: A pointer to a null-terminated Unicode string. TypeIDUnicodeString TypeID = 3 // DNSSRV_TYPEID_IPARRAY: A pointer to an IP4_ARRAY. This structure is used to specify // a list of IPv4 addresses. TypeIDIPArray TypeID = 4 // DNSSRV_TYPEID_BUFFER: A pointer to a DNS_RPC_BUFFER (section 2.2.1.2.2). This structure // is used to hold a generic buffer of the DNS server information. Interpretation of // the buffer depends upon the request. TypeIDBuffer TypeID = 5 // DNSSRV_TYPEID_SERVER_INFO_W2K: A pointer to a structure of type DNS_RPC_SERVER_INFO_W2K // (section 2.2.4.2.2.1). This structure is used to specify general DNS server state // and configuration. TypeIDServerInfoW2K TypeID = 6 // DNSSRV_TYPEID_STATS: A pointer to a structure of type DNSSRV_STATS (section 2.2.10.2.2). // The structure exposes internal statistics and counters. TypeIDStats TypeID = 7 // DNSSRV_TYPEID_FORWARDERS_W2K: A pointer to a structure of type DNS_RPC_FORWARDERS_W2K // (section 2.2.5.2.10.1). This structure specifies the set of DNS servers this DNS // server will forward unresolved queries to. TypeIDForwardersW2K TypeID = 8 // DNSSRV_TYPEID_ZONE_W2K: A pointer to a structure of type DNS_RPC_ZONE_W2K (section // 2.2.5.2.1.1). This structure is used to specify basic information about a DNS zone. TypeIDZoneW2K TypeID = 9 // DNSSRV_TYPEID_ZONE_INFO_W2K: A pointer to a structure of type DNS_RPC_ZONE_INFO_W2K // (section 2.2.5.2.4.1). This structure is used to specify detailed DNS zone information. TypeIDZoneInfoW2K TypeID = 10 // DNSSRV_TYPEID_ZONE_SECONDARIES_W2K: A pointer to a structure of type DNS_RPC_ZONE_SECONDARIES_W2K // (section 2.2.5.2.5.1). This structure is used to specify information about the secondary // servers for a primary DNS zone. TypeIDZoneSecondariesW2K TypeID = 11 // DNSSRV_TYPEID_ZONE_DATABASE_W2K: A pointer to a structure of type DNS_RPC_ZONE_DATABASE_W2K // (section 2.2.5.2.6.1). This structure specifies how a DNS zone is stored in persistent // storage. TypeIDZoneDatabaseW2K TypeID = 12 // DNSSRV_TYPEID_ZONE_TYPE_RESET_W2K: This value is not used. TypeIDZoneTypeResetW2K TypeID = 13 // DNSSRV_TYPEID_ZONE_CREATE_W2K: A pointer to a structure of type DNS_RPC_ZONE_CREATE_INFO_W2K // (section 2.2.5.2.7.1). This structure is used to specify parameters required when // creating a new DNS zone. TypeIDZoneCreateW2K TypeID = 14 // DNSSRV_TYPEID_NAME_AND_PARAM: A pointer to a structure of type DNS_RPC_NAME_AND_PARAM // (section 2.2.1.2.5). This is a general purpose structure used to associate a parameter // name with a DWORD value. TypeIDNameAndParam TypeID = 15 // DNSSRV_TYPEID_ZONE_LIST_W2K: A pointer to a structure of type DNS_RPC_ZONE_LIST_W2K // (section 2.2.5.2.3.1). This structure is used to enumerate zones. TypeIDZoneListW2K TypeID = 16 // DNSSRV_TYPEID_ZONE_RENAME: This value is not used. TypeIDZoneRename TypeID = 17 // DNSSRV_TYPEID_ZONE_EXPORT: A pointer to a structure of type DNS_RPC_ZONE_EXPORT_INFO // (section 2.2.5.2.8). This structure is used to specify how to export a zone to a // file. TypeIDZoneExport TypeID = 18 // DNSSRV_TYPEID_SERVER_INFO_DOTNET: A pointer to a structure of type DNS_RPC_SERVER_INFO_DOTNET // (section 2.2.4.2.2.2). This structure is used to specify general DNS server state // and configuration. TypeIDServerInfoNet TypeID = 19 // DNSSRV_TYPEID_FORWARDERS_DOTNET: A pointer to a structure of type DNS_RPC_FORWARDERS_DOTNET // (section 2.2.5.2.10.2). This structure specifies the set of DNS servers this DNS // server will forward unresolved queries to. TypeIDForwardersNet TypeID = 20 // DNSSRV_TYPEID_ZONE: A pointer to a structure of type DNS_RPC_ZONE (section 2.2.5.2.1). // This structure is used to specify basic information and a DNS zone. TypeIDZone TypeID = 21 // DNSSRV_TYPEID_ZONE_INFO_DOTNET: A pointer to a structure of type DNS_RPC_ZONE_INFO_DOTNET // (section 2.2.5.2.4.2). This structure is used to specify detailed information about // a DNS zone. TypeIDZoneInfoNet TypeID = 22 // DNSSRV_TYPEID_ZONE_SECONDARIES_DOTNET: A pointer to a structure of type DNS_RPC_ZONE_SECONDARIES_DOTNET // (section 2.2.5.2.5.2). This structure is used to specify information about the secondary // servers for a primary DNS zone. TypeIDZoneSecondariesNet TypeID = 23 // DNSSRV_TYPEID_ZONE_DATABASE: A pointer to a structure of type DNS_RPC_ZONE_DATABASE // (section 2.2.5.2.6). This structure specifies how a DNS zone is stored in persistent // storage. TypeIDZoneDatabase TypeID = 24 // DNSSRV_TYPEID_ZONE_TYPE_RESET_DOTNET: This value is not used. TypeIDZoneTypeResetNet TypeID = 25 // DNSSRV_TYPEID_ZONE_CREATE_DOTNET: A pointer to a structure of type DNS_RPC_ZONE_CREATE_INFO_DOTNET. // This structure is used to specify parameters required when creating a new DNS zone. TypeIDZoneCreateNet TypeID = 26 // DNSSRV_TYPEID_ZONE_LIST: A pointer to a structure of type DNS_RPC_ZONE_LIST (section // 2.2.5.2.3). This structure is used to enumerate zones. TypeIDZoneList TypeID = 27 // DNSSRV_TYPEID_DP_ENUM: A pointer to a structure of type DNS_RPC_DP_ENUM (section // 2.2.7.2.3). This structure is used to specify basic information about an application // directory partition. TypeIDIddpEnum TypeID = 28 // DNSSRV_TYPEID_DP_INFO: A pointer to a structure of type DNS_RPC_DP_INFO (section // 2.2.7.2.1). This structure specifies detailed information about a single application // directory partition. TypeIDIddpInfo TypeID = 29 // DNSSRV_TYPEID_DP_LIST: A pointer to a structure of type DNS_RPC_DP_LIST (section // 2.2.7.2.4). This structure is used to enumerate application directory partitions. TypeIDIddpList TypeID = 30 // DNSSRV_TYPEID_ENLIST_DP: A pointer to a structure of type DNS_RPC_ENLIST_DP (section // 2.2.7.2.5). This structure is used to request enlistment changes for an application // directory partition. TypeIDEnlistDP TypeID = 31 // DNSSRV_TYPEID_ZONE_CHANGE_DP: A pointer to a structure of type DNS_RPC_ZONE_CHANGE_DP // (section 2.2.7.2.6). This structure is used to request that a DNS zone be moved from // one application directory partition to another. TypeIDZoneChangeDP TypeID = 32 // DNSSRV_TYPEID_ENUM_ZONES_FILTER: A pointer to a structure of type DNS_RPC_ENUM_ZONES_FILTER // (section 2.2.5.2.9). This structure is used to filter DNS zones during enumeration. TypeIDEnumZonesFilter TypeID = 33 // DNSSRV_TYPEID_ADDRARRAY: A pointer to a structure of type DNS_ADDR_ARRAY (section // 2.2.3.2.3). This structure is used to specify a list of IPv4 or IPv6 addresses. TypeIDAddrArray TypeID = 34 // DNSSRV_TYPEID_SERVER_INFO: A pointer to a structure of type DNS_RPC_SERVER_INFO (section // 2.2.4.2.2). This structure is used to specify general DNS server state and configuration. TypeIDServerInfo TypeID = 35 // DNSSRV_TYPEID_ZONE_INFO: A pointer to a structure of type DNS_RPC_ZONE_INFO (section // 2.2.5.2.4). This structure is used to specify detailed information about a DNS zone. TypeIDZoneInfo TypeID = 36 // DNSSRV_TYPEID_FORWARDERS: A pointer to a structure of type DNS_RPC_FORWARDERS (section // 2.2.5.2.10). This structure specifies the set of DNS servers this DNS server will // forward unresolved queries to. TypeIDForwarders TypeID = 37 // DNSSRV_TYPEID_ZONE_SECONDARIES: A pointer to a structure of type DNS_RPC_ZONE_SECONDARIES // (section 2.2.5.2.5). This structure is used to specify information about the secondary // servers for a primary DNS zone. TypeIDZoneSecondaries TypeID = 38 // DNSSRV_TYPEID_ZONE_TYPE_RESET: This value is not used. TypeIDZoneTypeReset TypeID = 39 // DNSSRV_TYPEID_ZONE_CREATE: A pointer to a structure of type DNS_RPC_ZONE_CREATE_INFO // (section 2.2.5.2.7). This structure is used to specify parameters required when creating // a new DNS zone. TypeIDZoneCreate TypeID = 40 // DNSSRV_TYPEID_IP_VALIDATE: A pointer to a structure of type DNS_RPC_IP_VALIDATE (section // 2.2.3.2.4). This structure is used to request IP validation and to return the results // of IP validation. TypeIDIPValidate TypeID = 41 // DNSSRV_TYPEID_AUTOCONFIGURE: A pointer to a structure of type DNS_RPC_AUTOCONFIGURE // (section 2.2.8.2.1). This structure is used to request DNS server autoconfiguration. TypeIDAutoConfigure TypeID = 42 // DNSSRV_TYPEID_UTF8_STRING_LIST: A pointer to a structure of type DNS_RPC_UTF8_STRING_LIST // (section 2.2.1.2.3). This structure is used to represent a list of UTF-8 [RFC3629] // strings. TypeIDUTF8StringList TypeID = 43 // DNSSRV_TYPEID_UNICODE_STRING_LIST: A pointer to a structure of type DNS_RPC_UNICODE_STRING_LIST // (section 2.2.1.2.4). This structure is used to represent a list of Unicode strings. TypeIDUnicodeStringList TypeID = 44 // DNSSRV_TYPEID_SKD: A pointer to a structure of type DNS_RPC_SKD (section 2.2.6.2.1). // This structure is used to specify detailed signing key descriptor (SKD) information. TypeIDSKD TypeID = 45 // DNSSRV_TYPEID_SKD_LIST: A pointer to a structure of type DNS_RPC_SKD_LIST (section // 2.2.6.2.2). This structure is used to enumerate signing key descriptors. TypeIDSKDList TypeID = 46 // DNSSRV_TYPEID_SKD_STATE: A pointer to a structure of type DNS_RPC_SKD_STATE (section // 2.2.6.2.3). This structure is used to specify detailed signing key descriptor state // information. TypeIDSKDState TypeID = 47 // DNSSRV_TYPEID_SIGNING_VALIDATION_ERROR: A pointer to a structure of type DNS_RPC_SIGNING_VALIDATION_ERROR // (section 2.2.6.2.8). This structure is used to specify signing key descriptor validation // error information. TypeIDSigningValidationError TypeID = 48 // DNSSRV_TYPEID_TRUST_POINT_LIST: A pointer to a structure of type DNS_RPC_TRUST_POINT_LIST // (section 2.2.6.2.5). This structure is used to enumerate trust points. TypeIDTrustPointList TypeID = 49 // DNSSRV_TYPEID_TRUST_ANCHOR_LIST: A pointer to a structure of type DNS_RPC_TRUST_ANCHOR_LIST // (section 2.2.6.2.7). This structure is used to enumerate trust anchors. TypeIDTrustAnchorList TypeID = 50 // DNSSRV_TYPEID_ZONE_SIGNING_SETTINGS: A pointer to a structure of type DNS_RPC_ZONE_DNSSEC_SETTINGS // (section 2.2.6.2.9). This structure is used to specify the DNSSEC settings for file-backed // zones. TypeIDZoneSigningSettings TypeID = 51 // DNSSRV_TYPEID_ZONE_SCOPE_ENUM: A pointer to a structure of type DNS_RPC_ENUM_ZONE_SCOPE_LIST // (section 2.2.13.1.1). This structure is used to enumerate zone scopes or cache scopes. TypeIDZoneScopeEnum TypeID = 52 // DNSSRV_TYPEID_ZONE_STATS: A pointer to a structure of type DNS_RPC_ZONE_STATS_V1 // (section 2.2.12.2.5). This structure is used to enumerate the zone statistics. TypeIDZoneStats TypeID = 53 // DNSSRV_TYPEID_ZONE_SCOPE_CREATE: A pointer to a structure of type DNS_RPC_ZONE_SCOPE_CREATE_INFO_V1 // (section 2.2.13.1.2.1). This structure is used to create the zone scope or cache // scope. TypeIDZoneScopeCreate TypeID = 54 // DNSSRV_TYPEID_ZONE_SCOPE_INFO: A pointer to a structure of type DNS_RPC_ZONE_SCOPE_INFO_V1 // (section 2.2.13.1.3.1). This structure is used to get the zone scope or cache scope // information. TypeIDZoneScopeInfo TypeID = 55 // DNSSRV_TYPEID_SCOPE_ENUM: A pointer to a structure of type DNS_RPC_ENUM_SCOPE_LIST // (section 2.2.14.1.1). The structure is used to enumerate the server scopes configured // on the DNS server. TypeIDScopeEnum TypeID = 56 // DNSSRV_TYPEID_CLIENT_SUBNET_RECORD: A pointer to a structure of type DNS_RPC_CLIENT_SUBNET_RECORD // (section 2.2.15.2.1). The structure is used to enumerate the client subnet records // configured on the DNS server. TypeIDClientSubnetRecord TypeID = 57 // DNSSRV_TYPEID_POLICY: A pointer to a structure of type DNS_RPC_POLICY (section 2.2.15.2.5). TypeIDPolicy TypeID = 58 // DNSSRV_TYPEID_POLICY_NAME: A pointer to a structure of type DNS_RPC_POLICY_NAME (section // 2.2.15.2.6). TypeIDPolicyName TypeID = 59 // DNSSRV_TYPEID_POLICY_ENUM: A pointer to a structure of type DNS_RPC_ENUMERATE_POLICY_LIST // (section 2.2.15.2.7). The structure is used to enumerate the DNS policy configured // on the DNS server. TypeIDPolicyEnum TypeID = 60 // DNSSRV_TYPEID_RRL: A pointer to a structure of type DNS_RPC_RRL_PARAMS (section 2.2.16.2.1). // This structure is used to configure parameters for Response Rate Limiting (RRL). TypeIDRRL TypeID = 61 // DNSSRV_TYPEID_VIRTUALIZATION_INSTANCE:A pointer to a structure of type DNS_RPC_VIRTUALIZATION_INSTANCE // (section 2.2.17.1.1). TypeIDVirtualizationInstance TypeID = 62 // DNSSRV_TYPEID_VIRTUALIZATION_INSTANCE_ENUM: A pointer to a structure of type DNS_RPC_ENUM_VIRTUALIZATION_INSTANCE_LIST // (section 2.2.17.1.3). This structure is used to enumerate the virtualization instances // in the DNS Server. // // Clients and servers of the DNS Server Management Protocol SHOULD<5> support all values // above. TypeIDVirtualizationInstanceEnum TypeID = 63 )
type UTF8StringList ¶
type UTF8StringList struct { // dwCount: The number of strings present in the pszStrings array. Count uint32 `idl:"name:dwCount" json:"count"` // pszStrings: A variable length array of pointers to null-terminated UTF-8 strings. Strings string `idl:"name:pszStrings;size_is:(dwCount);string" json:"strings"` }
UTF8StringList structure represents DNS_RPC_UTF8_STRING_LIST RPC structure.
The DNS_RPC_UTF8_STRING_LIST structure contains a list of null-terminated UTF-8 strings. This structure is used by the DNS Server Management Protocol while processing R_DnssrvOperations2 (section 3.1.4.6) and R_DnssrvQuery2 (section 3.1.4.7) method calls, with operations type "GlobalQueryBlockList".
func (*UTF8StringList) MarshalNDR ¶
func (*UTF8StringList) UnmarshalNDR ¶
type UnicodeStringList ¶
type UnicodeStringList struct { // dwCount: The number of strings present in the pwszStrings array. Count uint32 `idl:"name:dwCount" json:"count"` // pwszStrings: A variable-length array of pointers to null-terminated Unicode strings. Strings string `idl:"name:pwszStrings;size_is:(dwCount);string" json:"strings"` }
UnicodeStringList structure represents DNS_RPC_UNICODE_STRING_LIST RPC structure.
The DNS_RPC_UNICODE_STRING_LIST structure contains a list of null-terminated Unicode strings. This structure is used by the DNS Server Management Protocol while processing the R_DnssrvComplexOperation2 (section 3.1.4.8) method call, with operations of type "EnumerateKeyStorageProviders".
func (*UnicodeStringList) MarshalNDR ¶
func (*UnicodeStringList) UnmarshalNDR ¶
type Union ¶
type Union struct { // Types that are assignable to Value // // *Union_Null // *Union_Dword // *Union_String // *Union_UnicodeString // *Union_IPArray // *Union_Buffer // *Union_ServerInfoW2K // *Union_Stats // *Union_ForwardersW2K // *Union_ZoneW2K // *Union_ZoneInfoW2K // *Union_SecondariesW2K // *Union_DatabaseW2K // *Union_ZoneCreateW2K // *Union_NameAndParam // *Union_ZoneListW2K // *Union_ServerInfoDotNet // *Union_ForwardersDotNet // *Union_Zone // *Union_ZoneInfoDotNet // *Union_SecondariesDotNet // *Union_Database // *Union_ZoneCreateDotNet // *Union_ZoneList // *Union_ZoneExport // *Union_DirectoryPartition // *Union_DirectoryPartitionEnum // *Union_DirectoryPartitionList // *Union_EnlistDirectoryPartition // *Union_ZoneChangeDirectoryPartition // *Union_EnumZonesFilter // *Union_AddrArray // *Union_ServerInfo // *Union_ZoneCreate // *Union_Forwarders // *Union_Secondaries // *Union_IPValidate // *Union_ZoneInfo // *Union_AutoConfigure // *Union_UTF8StringList // *Union_UnicodeStringList // *Union_SKD // *Union_SKDList // *Union_SKDState // *Union_SigningValidationError // *Union_TrustPointList // *Union_TrustAnchorList // *Union_ZoneDNSSecuritySettings // *Union_ZoneScopeList // *Union_ZoneStats // *Union_ScopeCreate // *Union_ScopeInfo // *Union_ScopeList // *Union_SubnetList // *Union_Policy // *Union_PolicyName // *Union_PolicyList // *Union_RRLParams // *Union_VirtualizationInstance // *Union_VirtualizationInstanceList Value is_Union `json:"value"` }
Union structure represents DNSSRV_RPC_UNION RPC union.
The DNSSRV_RPC_UNION specifies a collection of all possible messages structures that can be exchanged between a client and server communicating using the DNS Server Management Protocol. This is used by the R_DnssrvOperation2 (section 3.1.4.6), R_DnssrvQuery2 (section 3.1.4.7) and R_DnssrvComplexOperation2 (section 3.1.4.8) method calls. The exact message format inside DNSSRV_RPC_UNION is identified by an accompanying DNS_RPC_TYPEID (section 2.2.1.1.1) value. Clients and servers of the DNS Server Management Protocol SHOULD<7> support all members of DNSSRV_RPC_UNION.
func (*Union) MarshalUnionNDR ¶
func (*Union) NDRSwitchValue ¶
type Union_AddrArray ¶
type Union_AddrArray struct { // AddrArray: A pointer to a structure of type DNS_ADDR_ARRAY (section 2.2.3.2.3). This // structure is used to specify a list of IPv4 or IPv6 addresses. AddrArray *AddrArray `idl:"name:AddrArray" json:"addr_array"` }
Union_AddrArray structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 34
func (*Union_AddrArray) MarshalNDR ¶
func (*Union_AddrArray) UnmarshalNDR ¶
type Union_AutoConfigure ¶
type Union_AutoConfigure struct { // AutoConfigure: A pointer to a structure of type DNS_RPC_AUTOCONFIGURE (section 2.2.8.2.1). // This structure is used to request DNS server autoconfiguration. AutoConfigure *AutoConfigure `idl:"name:AutoConfigure" json:"auto_configure"` }
Union_AutoConfigure structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 42
func (*Union_AutoConfigure) MarshalNDR ¶
func (*Union_AutoConfigure) UnmarshalNDR ¶
type Union_Buffer ¶
type Union_Buffer struct { // Buffer: A pointer to a DNS_RPC_BUFFER (section 2.2.1.2.2). Buffer *Buffer `idl:"name:Buffer" json:"buffer"` }
Union_Buffer structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 5
func (*Union_Buffer) MarshalNDR ¶
func (*Union_Buffer) UnmarshalNDR ¶
type Union_Database ¶
type Union_Database struct { // Database: A pointer to a structure of type DNS_RPC_ZONE_DATABASE (section 2.2.5.2.6). // This structure specifies how a DNS zone is stored in persistent storage. Database *ZoneDatabase `idl:"name:Database" json:"database"` }
Union_Database structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 24
func (*Union_Database) MarshalNDR ¶
func (*Union_Database) UnmarshalNDR ¶
type Union_DatabaseW2K ¶
type Union_DatabaseW2K struct { // DatabaseW2K: A pointer to a structure of type DNS_RPC_ZONE_DATABASE_W2K (section // 2.2.5.2.6.1). This structure specifies how a DNS zone is stored in persistent storage. DatabaseW2K *ZoneDatabaseW2K `idl:"name:DatabaseW2K" json:"database_w2k"` }
Union_DatabaseW2K structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 12
func (*Union_DatabaseW2K) MarshalNDR ¶
func (*Union_DatabaseW2K) UnmarshalNDR ¶
type Union_DirectoryPartition ¶
type Union_DirectoryPartition struct { // DirectoryPartition: A pointer to a structure of type DNS_RPC_DP_INFO (section 2.2.7.2.1). // This structure specifies detailed information about a single application directory // partition. DirectoryPartition *DPInfo `idl:"name:DirectoryPartition" json:"directory_partition"` }
Union_DirectoryPartition structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 29
func (*Union_DirectoryPartition) MarshalNDR ¶
func (*Union_DirectoryPartition) UnmarshalNDR ¶
type Union_DirectoryPartitionEnum ¶
type Union_DirectoryPartitionEnum struct { // DirectoryPartitionEnum: A pointer to a structure of type DNS_RPC_DP_ENUM (section // 2.2.7.2.3). This structure is used to specify basic information about an application // directory partition. DirectoryPartitionEnum *DPEnum `idl:"name:DirectoryPartitionEnum" json:"directory_partition_enum"` }
Union_DirectoryPartitionEnum structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 28
func (*Union_DirectoryPartitionEnum) MarshalNDR ¶
func (*Union_DirectoryPartitionEnum) UnmarshalNDR ¶
type Union_DirectoryPartitionList ¶
type Union_DirectoryPartitionList struct { // DirectoryPartitionList: A pointer to a structure of type DNS_RPC_DP_LIST (section // 2.2.7.2.4). This structure is used to enumerate the Application Directory Partition // Table. DirectoryPartitionList *DPList `idl:"name:DirectoryPartitionList" json:"directory_partition_list"` }
Union_DirectoryPartitionList structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 30
func (*Union_DirectoryPartitionList) MarshalNDR ¶
func (*Union_DirectoryPartitionList) UnmarshalNDR ¶
type Union_Dword ¶
type Union_Dword struct { // Dword: Data is a DWORD value. Dword uint32 `idl:"name:Dword" json:"dword"` }
Union_Dword structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 1
func (*Union_Dword) MarshalNDR ¶
func (*Union_Dword) UnmarshalNDR ¶
type Union_EnlistDirectoryPartition ¶
type Union_EnlistDirectoryPartition struct { // EnlistDirectoryPartition: A pointer to a structure of type DNS_RPC_ENLIST_DP (section // 2.2.7.2.5). This structure is used to request enlistment changes for an application // directory partition. EnlistDirectoryPartition *EnlistDP `idl:"name:EnlistDirectoryPartition" json:"enlist_directory_partition"` }
Union_EnlistDirectoryPartition structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 31
func (*Union_EnlistDirectoryPartition) MarshalNDR ¶
func (*Union_EnlistDirectoryPartition) UnmarshalNDR ¶
type Union_EnumZonesFilter ¶
type Union_EnumZonesFilter struct { // EnumZonesFilter: A pointer to a structure of type DNS_RPC_ENUM_ZONES_FILTER (section // 2.2.5.2.9). This structure is used to filter DNS zones during enumeration. EnumZonesFilter *EnumZonesFilter `idl:"name:EnumZonesFilter" json:"enum_zones_filter"` }
Union_EnumZonesFilter structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 33
func (*Union_EnumZonesFilter) MarshalNDR ¶
func (*Union_EnumZonesFilter) UnmarshalNDR ¶
type Union_Forwarders ¶
type Union_Forwarders struct { // Forwarders: A pointer to a structure of type DNS_RPC_FORWARDERS (section 2.2.5.2.10). // This structure specifies the set of DNS servers this DNS server will forward unresolved // queries to. Forwarders *Forwarders `idl:"name:Forwarders" json:"forwarders"` }
Union_Forwarders structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 37
func (*Union_Forwarders) MarshalNDR ¶
func (*Union_Forwarders) UnmarshalNDR ¶
type Union_ForwardersDotNet ¶
type Union_ForwardersDotNet struct { // ForwardersDotNet: A pointer to a structure of type DNS_RPC_FORWARDERS_DOTNET (section // 2.2.5.2.10.2). This structure specifies the set of DNS servers this DNS server will // forward unresolved queries to. ForwardersDotNet *Forwarders_NET `idl:"name:ForwardersDotNet" json:"forwarders_dot_net"` }
Union_ForwardersDotNet structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 20
func (*Union_ForwardersDotNet) MarshalNDR ¶
func (*Union_ForwardersDotNet) UnmarshalNDR ¶
type Union_ForwardersW2K ¶
type Union_ForwardersW2K struct { // ForwardersW2K: A pointer to a structure of type DNS_RPC_FORWARDERS_W2K (section 2.2.5.2.10.1). // This structure specifies the set of DNS servers this DNS server will forward unresolved // queries to. ForwardersW2K *ForwardersW2K `idl:"name:ForwardersW2K" json:"forwarders_w2k"` }
Union_ForwardersW2K structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 8
func (*Union_ForwardersW2K) MarshalNDR ¶
func (*Union_ForwardersW2K) UnmarshalNDR ¶
type Union_IPArray ¶
type Union_IPArray struct { // IpArray: An array of IPv4 addresses in IP4_ARRAY (section 2.2.3.2.1) format. IPArray *IPv4Array `idl:"name:IpArray" json:"ip_array"` }
Union_IPArray structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 4
func (*Union_IPArray) MarshalNDR ¶
func (*Union_IPArray) UnmarshalNDR ¶
type Union_IPValidate ¶
type Union_IPValidate struct { // IpValidate: A pointer to a structure of type DNS_RPC_IP_VALIDATE (section 2.2.3.2.4). // This structure is used to request IP validation and to return the results of IP validation. IPValidate *IPValidate `idl:"name:IpValidate" json:"ip_validate"` }
Union_IPValidate structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 41
func (*Union_IPValidate) MarshalNDR ¶
func (*Union_IPValidate) UnmarshalNDR ¶
type Union_NameAndParam ¶
type Union_NameAndParam struct { // NameAndParam: A pointer to a structure of type DNS_RPC_NAME_AND_PARAM (section 2.2.1.2.5). // This is a general purpose structure used to associate a parameter name with a DWORD // value. NameAndParam *NameAndParam `idl:"name:NameAndParam" json:"name_and_param"` }
Union_NameAndParam structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 15
func (*Union_NameAndParam) MarshalNDR ¶
func (*Union_NameAndParam) UnmarshalNDR ¶
type Union_Null ¶
type Union_Null struct { // Null: No data is provided. Null uint8 `idl:"name:Null" json:"null"` }
Union_Null structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 0
func (*Union_Null) MarshalNDR ¶
func (*Union_Null) UnmarshalNDR ¶
type Union_Policy ¶
type Union_Policy struct { // pPolicy: A pointer to a structure of type DNS_RPC_POLICY (section 2.2.15.2.5). This // structure is used to retrieve details of a DNS Policy in the DNS server. Policy *Policy `idl:"name:pPolicy" json:"policy"` }
Union_Policy structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 58
func (*Union_Policy) MarshalNDR ¶
func (*Union_Policy) UnmarshalNDR ¶
type Union_PolicyList ¶
type Union_PolicyList struct { // pPolicyList: A pointer to a structure of type DNS_RPC_ENUMERATE_POLICY_LIST (section // 2.2.15.2.7). This structure contains a list of DNS_RPC_POLICY_NAME structures. PolicyList *EnumeratePolicyList `idl:"name:pPolicyList" json:"policy_list"` }
Union_PolicyList structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 60
func (*Union_PolicyList) MarshalNDR ¶
func (*Union_PolicyList) UnmarshalNDR ¶
type Union_PolicyName ¶
type Union_PolicyName struct { // pPolicyName: A pointer to a structure of type DNS_RPC_POLICY_NAME (section 2.2.15.2.6). // This structure is used while enumerating DNS Policies in a DNS server per level. PolicyName *PolicyName `idl:"name:pPolicyName" json:"policy_name"` }
Union_PolicyName structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 59
func (*Union_PolicyName) MarshalNDR ¶
func (*Union_PolicyName) UnmarshalNDR ¶
type Union_RRLParams ¶
type Union_RRLParams struct { // pRRLParams: A pointer to a structure of type DNS_RPC_RRL_PARAMS (section 2.2.16.2.1). // This structure contains the configuration parameters for Response Rate Limiting (RRL). RRLParams *RRLParams `idl:"name:pRRLParams" json:"rrl_params"` }
Union_RRLParams structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 61
func (*Union_RRLParams) MarshalNDR ¶
func (*Union_RRLParams) UnmarshalNDR ¶
type Union_SKD ¶
type Union_SKD struct { // Skd: A pointer to a structure of type DNS_RPC_SKD (section 2.2.6.2.1). This structure // is used to specify detailed signing key descriptor (SKD) information. SKD *SKD `idl:"name:Skd" json:"skd"` }
Union_SKD structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 45
func (*Union_SKD) MarshalNDR ¶
type Union_SKDList ¶
type Union_SKDList struct { // SkdList: A pointer to a structure of type DNS_RPC_SKD_LIST (section 2.2.6.2.2). This // structure is used to enumerate signing key descriptors. SKDList *SKDList `idl:"name:SkdList" json:"skd_list"` }
Union_SKDList structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 46
func (*Union_SKDList) MarshalNDR ¶
func (*Union_SKDList) UnmarshalNDR ¶
type Union_SKDState ¶
type Union_SKDState struct { // SkdState: A pointer to a structure of type DNS_RPC_SKD_STATE (section 2.2.6.2.3). // This structure is used to specify detailed signing key descriptor state information. SKDState *SKDState `idl:"name:SkdState" json:"skd_state"` }
Union_SKDState structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 47
func (*Union_SKDState) MarshalNDR ¶
func (*Union_SKDState) UnmarshalNDR ¶
type Union_ScopeCreate ¶
type Union_ScopeCreate struct { // ScopeCreate: A pointer to a structure of type DNS_RPC_ZONE_SCOPE_CREATE_INFO_V1 (section // 2.2.13.1.2.1). This structure is used to create a zone scope or cache scope. ScopeCreate *ZoneScopeCreateInfoV1 `idl:"name:ScopeCreate" json:"scope_create"` }
Union_ScopeCreate structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 54
func (*Union_ScopeCreate) MarshalNDR ¶
func (*Union_ScopeCreate) UnmarshalNDR ¶
type Union_ScopeInfo ¶
type Union_ScopeInfo struct { // ScopeInfo: A pointer to a structure of type DNS_RPC_ZONE_SCOPE_INFO_V1 (section 2.2.13.1.3.1). // This structure is used to specify detailed DNS zone scope or cache scope information. ScopeInfo *ZoneScopeInfoV1 `idl:"name:ScopeInfo" json:"scope_info"` }
Union_ScopeInfo structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 55
func (*Union_ScopeInfo) MarshalNDR ¶
func (*Union_ScopeInfo) UnmarshalNDR ¶
type Union_ScopeList ¶
type Union_ScopeList struct { // ScopeList: A pointer to a structure of type DNS_RPC_ENUM_SCOPE_LIST (section 2.2.14.1.1). // This structure is used to retrieve all the server scopes configured on the DNS server. ScopeList *EnumScopeList `idl:"name:ScopeList" json:"scope_list"` }
Union_ScopeList structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 56
func (*Union_ScopeList) MarshalNDR ¶
func (*Union_ScopeList) UnmarshalNDR ¶
type Union_Secondaries ¶
type Union_Secondaries struct { // Secondaries: A pointer to a structure of type DNS_RPC_ZONE_SECONDARIES (section 2.2.5.2.5). // This structure is used to specify information about the secondary servers for a primary // DNS zone. Secondaries *ZoneSecondaries `idl:"name:Secondaries" json:"secondaries"` }
Union_Secondaries structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 38
func (*Union_Secondaries) MarshalNDR ¶
func (*Union_Secondaries) UnmarshalNDR ¶
type Union_SecondariesDotNet ¶
type Union_SecondariesDotNet struct { // SecondariesDotNet: A pointer to a structure of type DNS_RPC_ZONE_SECONDARIES_DOTNET // (section 2.2.5.2.5.2). This structure is used to specify information about the secondary // servers for a primary DNS zone. SecondariesDotNet *ZoneSecondaries_NET `idl:"name:SecondariesDotNet" json:"secondaries_dot_net"` }
Union_SecondariesDotNet structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 23
func (*Union_SecondariesDotNet) MarshalNDR ¶
func (*Union_SecondariesDotNet) UnmarshalNDR ¶
type Union_SecondariesW2K ¶
type Union_SecondariesW2K struct { // SecondariesW2K: A pointer to a structure of type DNS_RPC_ZONE_SECONDARIES_W2K (section // 2.2.5.2.5.1). This structure is used to specify information about the secondary servers // for a primary DNS zone. SecondariesW2K *ZoneSecondariesW2K `idl:"name:SecondariesW2K" json:"secondaries_w2k"` }
Union_SecondariesW2K structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 11
func (*Union_SecondariesW2K) MarshalNDR ¶
func (*Union_SecondariesW2K) UnmarshalNDR ¶
type Union_ServerInfo ¶
type Union_ServerInfo struct { // ServerInfo: A pointer to a structure of type DNS_RPC_SERVER_INFO (section 2.2.4.2.2). // This structure is used to specify general DNS server state and configuration. ServerInfo *ServerInfo `idl:"name:ServerInfo" json:"server_info"` }
Union_ServerInfo structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 35
func (*Union_ServerInfo) MarshalNDR ¶
func (*Union_ServerInfo) UnmarshalNDR ¶
type Union_ServerInfoDotNet ¶
type Union_ServerInfoDotNet struct { // ServerInfoDotNet: A pointer to a structure of type DNS_RPC_SERVER_INFO_DOTNET (section // 2.2.4.2.2.2). This structure is used to specify the general DNS server state and // configuration. ServerInfoDotNet *ServerInfo_NET `idl:"name:ServerInfoDotNet" json:"server_info_dot_net"` }
Union_ServerInfoDotNet structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 19
func (*Union_ServerInfoDotNet) MarshalNDR ¶
func (*Union_ServerInfoDotNet) UnmarshalNDR ¶
type Union_ServerInfoW2K ¶
type Union_ServerInfoW2K struct { // ServerInfoW2K: A pointer to a structure of type DNS_RPC_SERVER_INFO_W2K (section // 2.2.4.2.2.1). This structure is used to specify the general DNS server state and // configuration. ServerInfoW2K *ServerInfoW2K `idl:"name:ServerInfoW2K" json:"server_info_w2k"` }
Union_ServerInfoW2K structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 6
func (*Union_ServerInfoW2K) MarshalNDR ¶
func (*Union_ServerInfoW2K) UnmarshalNDR ¶
type Union_SigningValidationError ¶
type Union_SigningValidationError struct { // SigningValidationError: A pointer to a structure of type DNS_RPC_SIGNING_VALIDATION_ERROR // (section 2.2.6.2.8). This structure is used to specify signing key descriptor validation // error information. SigningValidationError *SigningValidationError `idl:"name:SigningValidationError" json:"signing_validation_error"` }
Union_SigningValidationError structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 48
func (*Union_SigningValidationError) MarshalNDR ¶
func (*Union_SigningValidationError) UnmarshalNDR ¶
type Union_Stats ¶
type Union_Stats struct { // Stats: A pointer to a structure of type DNSSRV_STATS (section 2.2.10.2.2). The structure // exposes internal statistics and counters. Stats *Stat `idl:"name:Stats" json:"stats"` }
Union_Stats structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 7
func (*Union_Stats) MarshalNDR ¶
func (*Union_Stats) UnmarshalNDR ¶
type Union_String ¶
type Union_String struct { // String: A pointer to a null-terminated UTF-8 string or a NULL pointer. String string `idl:"name:String;string" json:"string"` }
Union_String structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 2
func (*Union_String) MarshalNDR ¶
func (*Union_String) UnmarshalNDR ¶
type Union_SubnetList ¶
type Union_SubnetList struct { // SubnetList: A pointer to a structure of type DNS_RPC_CLIENT_SUBNET_RECORD (section // 2.2.15.2.1). This structure is used to retrieve details of a client subnet record // in the DNS server. SubnetList *ClientSubnetRecord `idl:"name:SubnetList" json:"subnet_list"` }
Union_SubnetList structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 57
func (*Union_SubnetList) MarshalNDR ¶
func (*Union_SubnetList) UnmarshalNDR ¶
type Union_TrustAnchorList ¶
type Union_TrustAnchorList struct { // TrustAnchorList: A pointer to a structure of type DNS_RPC_TRUST_ANCHOR_LIST (section // 2.2.6.2.7). This structure is used to enumerate trust anchors. TrustAnchorList *TrustAnchorList `idl:"name:TrustAnchorList" json:"trust_anchor_list"` }
Union_TrustAnchorList structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 50
func (*Union_TrustAnchorList) MarshalNDR ¶
func (*Union_TrustAnchorList) UnmarshalNDR ¶
type Union_TrustPointList ¶
type Union_TrustPointList struct { // TrustPointList: A pointer to a structure of type DNS_RPC_TRUST_POINT_LIST (section // 2.2.6.2.5). This structure is used to enumerate trust points. TrustPointList *TrustPointList `idl:"name:TrustPointList" json:"trust_point_list"` }
Union_TrustPointList structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 49
func (*Union_TrustPointList) MarshalNDR ¶
func (*Union_TrustPointList) UnmarshalNDR ¶
type Union_UTF8StringList ¶
type Union_UTF8StringList struct { // Utf8StringList: A pointer to a structure of type DNS_RPC_UTF8_STRING_LIST (section // 2.2.1.2.3). This structure is used to represent a list of UTF-8 [RFC3629] strings. UTF8StringList *UTF8StringList `idl:"name:Utf8StringList" json:"utf8_string_list"` }
Union_UTF8StringList structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 43
func (*Union_UTF8StringList) MarshalNDR ¶
func (*Union_UTF8StringList) UnmarshalNDR ¶
type Union_UnicodeString ¶
type Union_UnicodeString struct { // WideString: A pointer to a null-terminated Unicode string or a NULL pointer. UnicodeString string `idl:"name:WideString;string" json:"unicode_string"` }
Union_UnicodeString structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 3
func (*Union_UnicodeString) MarshalNDR ¶
func (*Union_UnicodeString) UnmarshalNDR ¶
type Union_UnicodeStringList ¶
type Union_UnicodeStringList struct { // UnicodeStringList: A pointer to a structure of type DNS_RPC_UNICODE_STRING_LIST (section // 2.2.1.2.4). This structure is used to represent a list of Unicode strings. UnicodeStringList *UnicodeStringList `idl:"name:UnicodeStringList" json:"unicode_string_list"` }
Union_UnicodeStringList structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 44
func (*Union_UnicodeStringList) MarshalNDR ¶
func (*Union_UnicodeStringList) UnmarshalNDR ¶
type Union_VirtualizationInstance ¶
type Union_VirtualizationInstance struct { // VirtualizationInstance: A pointer to a structure of type DNS_RPC_VIRTUALIZATION_INSTANCE // (section 2.2.17.1.1). This structure is used to retrieve details of a virtualization // instance in the DNS server. VirtualizationInstance *VirtualizationInstance `idl:"name:VirtualizationInstance" json:"virtualization_instance"` }
Union_VirtualizationInstance structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 62
func (*Union_VirtualizationInstance) MarshalNDR ¶
func (*Union_VirtualizationInstance) UnmarshalNDR ¶
type Union_VirtualizationInstanceList ¶
type Union_VirtualizationInstanceList struct { // VirtualizationInstanceList: A pointer to a structure of type DNS_RPC_ENUM_VIRTUALIZATION_INSTANCE_LIST // (section 2.2.17.1.3). This structure is used to enumerate virtualization instances // in a DNS server. VirtualizationInstanceList *EnumVirtualizationInstanceList `idl:"name:VirtualizationInstanceList" json:"virtualization_instance_list"` }
Union_VirtualizationInstanceList structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 63
func (*Union_VirtualizationInstanceList) MarshalNDR ¶
func (*Union_VirtualizationInstanceList) UnmarshalNDR ¶
type Union_Zone ¶
type Union_Zone struct { // Zone: A pointer to a structure of type DNS_RPC_ZONE (section 2.2.5.2.1). This structure // is used to specify basic information about a DNS zone. Zone *Zone `idl:"name:Zone" json:"zone"` }
Union_Zone structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 21
func (*Union_Zone) MarshalNDR ¶
func (*Union_Zone) UnmarshalNDR ¶
type Union_ZoneChangeDirectoryPartition ¶
type Union_ZoneChangeDirectoryPartition struct { // ZoneChangeDirectoryPartition: A pointer to a structure of type DNS_RPC_ZONE_CHANGE_DP // (section 2.2.7.2.6). This structure is used to request that a DNS zone be moved from // one application directory partition to another. ZoneChangeDirectoryPartition *ZoneChangeDP `idl:"name:ZoneChangeDirectoryPartition" json:"zone_change_directory_partition"` }
Union_ZoneChangeDirectoryPartition structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 32
func (*Union_ZoneChangeDirectoryPartition) MarshalNDR ¶
func (*Union_ZoneChangeDirectoryPartition) UnmarshalNDR ¶
type Union_ZoneCreate ¶
type Union_ZoneCreate struct { // ZoneCreate: A pointer to a structure of type DNS_RPC_ZONE_CREATE_INFO (section 2.2.5.2.7). // This structure is used to specify the parameters required when creating a new DNS // zone. ZoneCreate *ZoneCreateInfo `idl:"name:ZoneCreate" json:"zone_create"` }
Union_ZoneCreate structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 40
func (*Union_ZoneCreate) MarshalNDR ¶
func (*Union_ZoneCreate) UnmarshalNDR ¶
type Union_ZoneCreateDotNet ¶
type Union_ZoneCreateDotNet struct { // ZoneCreateDotNet: A pointer to a structure of type DNS_RPC_ZONE_CREATE_INFO_DOTNET // (section 2.2.5.2.7.2). This structure is used to specify the parameters required // when creating a new DNS zone. ZoneCreateDotNet *ZoneCreateInfo_NET `idl:"name:ZoneCreateDotNet" json:"zone_create_dot_net"` }
Union_ZoneCreateDotNet structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 26
func (*Union_ZoneCreateDotNet) MarshalNDR ¶
func (*Union_ZoneCreateDotNet) UnmarshalNDR ¶
type Union_ZoneCreateW2K ¶
type Union_ZoneCreateW2K struct { // ZoneCreateW2K: A pointer to a structure of type DNS_RPC_ZONE_CREATE_INFO_W2K (section // 2.2.5.2.7.1). This structure is used to specify the parameters required when creating // a new DNS zone. ZoneCreateW2K *ZoneCreateInfoW2K `idl:"name:ZoneCreateW2K" json:"zone_create_w2k"` }
Union_ZoneCreateW2K structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 14
func (*Union_ZoneCreateW2K) MarshalNDR ¶
func (*Union_ZoneCreateW2K) UnmarshalNDR ¶
type Union_ZoneDNSSecuritySettings ¶
type Union_ZoneDNSSecuritySettings struct { // ZoneDnsSecSettings: A pointer to a structure of type DNS_RPC_ZONE_DNSSEC_SETTINGS // (section 2.2.6.2.9). This structure is used to list the DNSSEC settings of a zone. ZoneDNSSecuritySettings *ZoneDnssecSettings `idl:"name:ZoneDnsSecSettings" json:"zone_dns_security_settings"` }
Union_ZoneDNSSecuritySettings structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 51
func (*Union_ZoneDNSSecuritySettings) MarshalNDR ¶
func (*Union_ZoneDNSSecuritySettings) UnmarshalNDR ¶
type Union_ZoneExport ¶
type Union_ZoneExport struct { // ZoneExport: A pointer to a structure of type DNS_RPC_ZONE_EXPORT_INFO (section 2.2.5.2.8). // This structure is used to specify how a zone is exported to file. ZoneExport *ZoneExportInfo `idl:"name:ZoneExport" json:"zone_export"` }
Union_ZoneExport structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 18
func (*Union_ZoneExport) MarshalNDR ¶
func (*Union_ZoneExport) UnmarshalNDR ¶
type Union_ZoneInfo ¶
type Union_ZoneInfo struct { // ZoneInfo: A pointer to a structure of type DNS_RPC_ZONE_INFO (section 2.2.5.2.4). // This structure is used to specify detailed DNS zone information. ZoneInfo *ZoneInfo `idl:"name:ZoneInfo" json:"zone_info"` }
Union_ZoneInfo structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 36
func (*Union_ZoneInfo) MarshalNDR ¶
func (*Union_ZoneInfo) UnmarshalNDR ¶
type Union_ZoneInfoDotNet ¶
type Union_ZoneInfoDotNet struct { // ZoneInfoDotNet: A pointer to a structure of type DNS_RPC_ZONE_INFO_DOTNET (section // 2.2.5.2.4.2). This structure is used to specify detailed DNS zone information. ZoneInfoDotNet *ZoneInfo_NET `idl:"name:ZoneInfoDotNet" json:"zone_info_dot_net"` }
Union_ZoneInfoDotNet structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 22
func (*Union_ZoneInfoDotNet) MarshalNDR ¶
func (*Union_ZoneInfoDotNet) UnmarshalNDR ¶
type Union_ZoneInfoW2K ¶
type Union_ZoneInfoW2K struct { // ZoneInfoW2K: A pointer to a structure of type DNS_RPC_ZONE_INFO_W2K (section 2.2.5.2.4.1). // This structure is used to specify detailed DNS zone information. ZoneInfoW2K *ZoneInfoW2K `idl:"name:ZoneInfoW2K" json:"zone_info_w2k"` }
Union_ZoneInfoW2K structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 10
func (*Union_ZoneInfoW2K) MarshalNDR ¶
func (*Union_ZoneInfoW2K) UnmarshalNDR ¶
type Union_ZoneList ¶
type Union_ZoneList struct { // ZoneList: A pointer to a structure of type DNS_RPC_ZONE_LIST (section 2.2.5.2.3). // This structure is used to enumerate zones. ZoneList *ZoneList `idl:"name:ZoneList" json:"zone_list"` }
Union_ZoneList structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 27
func (*Union_ZoneList) MarshalNDR ¶
func (*Union_ZoneList) UnmarshalNDR ¶
type Union_ZoneListW2K ¶
type Union_ZoneListW2K struct { // ZoneListW2K: A pointer to a structure of type DNS_RPC_ZONE_LIST_W2K (section 2.2.5.2.3.1). // This structure is used to enumerate zones. ZoneListW2K *ZoneListW2K `idl:"name:ZoneListW2K" json:"zone_list_w2k"` }
Union_ZoneListW2K structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 16
func (*Union_ZoneListW2K) MarshalNDR ¶
func (*Union_ZoneListW2K) UnmarshalNDR ¶
type Union_ZoneScopeList ¶
type Union_ZoneScopeList struct { // ZoneScopeList: A pointer to a structure of type DNS_RPC_ENUM_ZONE_SCOPE_LIST (section // 2.2.13.1.1). This structure is used to enumerate zone scopes in a specified zone // or cache scopes in a cache zone. ZoneScopeList *EnumZoneScopeList `idl:"name:ZoneScopeList" json:"zone_scope_list"` }
Union_ZoneScopeList structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 52
func (*Union_ZoneScopeList) MarshalNDR ¶
func (*Union_ZoneScopeList) UnmarshalNDR ¶
type Union_ZoneStats ¶
type Union_ZoneStats struct { // ZoneStats: A pointer to a structure of type DNS_RPC_ZONE_STATS_V1 (section 2.2.12.2.5). // This structure is used to enumerate the zone statistics. ZoneStats *ZoneStatsV1 `idl:"name:ZoneStats" json:"zone_stats"` }
Union_ZoneStats structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 53
func (*Union_ZoneStats) MarshalNDR ¶
func (*Union_ZoneStats) UnmarshalNDR ¶
type Union_ZoneW2K ¶
type Union_ZoneW2K struct { // ZoneW2K: A pointer to a structure of type DNS_RPC_ZONE_W2K (section 2.2.5.2.1.1). // This structure is used to specify basic information about a DNS zone. ZoneW2K *ZoneW2K `idl:"name:ZoneW2K" json:"zone_w2k"` }
Union_ZoneW2K structure represents DNSSRV_RPC_UNION RPC union arm.
It has following labels: 9
func (*Union_ZoneW2K) MarshalNDR ¶
func (*Union_ZoneW2K) UnmarshalNDR ¶
type VirtualizationInstance ¶
type VirtualizationInstance struct { RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` Flags uint32 `idl:"name:dwFlags" json:"flags"` VirtualizationID string `idl:"name:pwszVirtualizationID" json:"virtualization_id"` FriendlyName string `idl:"name:pwszFriendlyName" json:"friendly_name"` Description string `idl:"name:pwszDescription" json:"description"` // contains filtered or unexported fields }
VirtualizationInstance structure represents DNS_RPC_VIRTUALIZATION_INSTANCE RPC structure.
The following example describes how to create a new virtualization instance named "example_vi1" in the DNS server.
The client calls R_DnssrvOperation4 (section 3.1.4.16) and provides the following parameters:
* *DNS_RPC_CURRENT_CLIENT_VER* (section 2.2.1.2.1 ( a237781b-b048-495d-844b-10ffb38df2a8 ) ) as the client version.
* Zero as the settings flag.
* A Unicode string containing the FQDN of the DNS server on which the virtualization instance is to be created.
* Zero as the context.
* CreateVirtualizationInstance as the operation.
* DNSSRV_TYPEID_VIRTUALIZATION_INSTANCE as the type ID.
* Create a DNS_RPC_VIRTUALIZATION_INSTANCE (section 2.2.17.1.1 ( 44d991d5-392a-48e7-827f-a1ccbe22ddef ) ) structure with dwFlags as zero and pwszVirtualizationID as "example_vi1". Pass this structure as RPC data.
The DNS server returns ERROR_SUCCESS if the operation was successful or a Windows error code if the operation fails.
func (*VirtualizationInstance) MarshalNDR ¶
func (*VirtualizationInstance) UnmarshalNDR ¶
type VirtualizationInstanceInfo ¶
type VirtualizationInstanceInfo struct { // pwszVirtualizationID: A NULL-terminated Unicode string that uniquely identifies a // particular virtualization instance in the DNS server. The maximum length of this // identifier is limited to 64 characters. VirtualizationID string `idl:"name:pwszVirtualizationID" json:"virtualization_id"` // pwszFriendlyName: A NULL-terminated Unicode string that contains a user-friendly // name of the DNS virtualization instance. FriendlyName string `idl:"name:pwszFriendlyName" json:"friendly_name"` // pwszDescription: A NULL-terminated Unicode string that contains a description of // the DNS virtualization instance. Description string `idl:"name:pwszDescription" json:"description"` }
VirtualizationInstanceInfo structure represents DNS_RPC_VIRTUALIZATION_INSTANCE_INFO RPC structure.
The DNS_RPC_VIRTUALIZATION_INSTANCE_INFO structure contains the details of a virtualization instance when the virtualization instances in the DNS server are enumerated (section 3.1.4.15).
func (*VirtualizationInstanceInfo) MarshalNDR ¶
func (*VirtualizationInstanceInfo) UnmarshalNDR ¶
type Zone ¶
type Zone struct { RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` ZoneName string `idl:"name:pszZoneName;string" json:"zone_name"` Flags uint32 `idl:"name:Flags" json:"flags"` ZoneType uint8 `idl:"name:ZoneType" json:"zone_type"` Version uint8 `idl:"name:Version" json:"version"` DPFlags uint32 `idl:"name:dwDpFlags" json:"dp_flags"` DPFQDN string `idl:"name:pszDpFqdn;string" json:"dp_fqdn"` // contains filtered or unexported fields }
Zone structure represents DNS_RPC_ZONE RPC structure.
The DNS_RPC_ZONE structure contains basic information about a zone present on the DNS server. There are different versions of the DNS_RPC_ZONE structure. The DNS server MAY<38> decide to use one of these structures depending upon the value of the dwClientVersion field in DNS Server Management Protocol method calls (section 3.1.4) as follows in the table provided. If the method call does not specify the value of dwClientVersion, the DNS_RPC_ZONE_W2K version of the structure MUST be used.
+------------+-------------------------------------------+ | | | | VALUE | STRUCTURE | | | | +------------+-------------------------------------------+ +------------+-------------------------------------------+ | 0x00000000 | DNS_RPC_ZONE_W2K (section 2.2.5.2.1.1) | +------------+-------------------------------------------+ | 0x00060000 | DNS_RPC_ZONE_DOTNET (section 2.2.5.2.1.2) | +------------+-------------------------------------------+
type ZoneChangeDP ¶
type ZoneChangeDP struct { // dwRpcStructureVersion: As specified in section 2.2.7.2.5. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // pszDestPartition: A pointer to a null-terminated UTF-8 string that specifies the // distinguished name for a new application directory partition to which a zone is to // be moved. DestinationPartition string `idl:"name:pszDestPartition;string" json:"destination_partition"` // contains filtered or unexported fields }
ZoneChangeDP structure represents DNS_RPC_ZONE_CHANGE_DP RPC structure.
The DNS_RPC_ZONE_CHANGE_DP structure contains information required to move a zone to a different application directory partition on the DNS server.<61>
func (*ZoneChangeDP) MarshalNDR ¶
func (*ZoneChangeDP) UnmarshalNDR ¶
type ZoneCreateInfo ¶
type ZoneCreateInfo struct { RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` ZoneName string `idl:"name:pszZoneName;string" json:"zone_name"` ZoneType uint32 `idl:"name:dwZoneType" json:"zone_type"` AllowUpdate uint32 `idl:"name:fAllowUpdate" json:"allow_update"` Aging uint32 `idl:"name:fAging" json:"aging"` Flags uint32 `idl:"name:dwFlags" json:"flags"` DataFile string `idl:"name:pszDataFile;string" json:"data_file"` DSIntegrated uint32 `idl:"name:fDsIntegrated" json:"ds_integrated"` LoadExisting uint32 `idl:"name:fLoadExisting" json:"load_existing"` Admin string `idl:"name:pszAdmin;string" json:"admin"` Masters *AddrArray `idl:"name:aipMasters" json:"masters"` Secondaries *AddrArray `idl:"name:aipSecondaries" json:"secondaries"` SecureSecondaries uint32 `idl:"name:fSecureSecondaries" json:"secure_secondaries"` NotifyLevel uint32 `idl:"name:fNotifyLevel" json:"notify_level"` Timeout uint32 `idl:"name:dwTimeout" json:"timeout"` RecurseAfterForwarding uint32 `idl:"name:fRecurseAfterForwarding" json:"recurse_after_forwarding"` DPFlags uint32 `idl:"name:dwDpFlags" json:"dp_flags"` DPFQDN string `idl:"name:pszDpFqdn;string" json:"dp_fqdn"` // contains filtered or unexported fields }
ZoneCreateInfo structure represents DNS_RPC_ZONE_CREATE_INFO RPC structure.
The DNS_RPC_ZONE_CREATE_INFO structure contains information required to create a zone or reset a zone's information on the DNS server. There are different versions of the DNS_RPC_ZONE_CREATE_INFO structure. The DNS server MUST use the structure corresponding to the value of dwClientVersion in DNS Server Management Protocol method calls (section 3.1.4) as shown in the following table, or if the method call does not specify the value of dwClientVersion, the DNS_RPC_ZONE_CREATE_INFO_W2K version of the structure MUST be used.
+------------+---------------------------------------------------------+ | | | | VALUE | STRUCTURE | | | | +------------+---------------------------------------------------------+ +------------+---------------------------------------------------------+ | 0x00000000 | DNS_RPC_ZONE_CREATE_INFO_W2K (section 2.2.5.2.7.1) | +------------+---------------------------------------------------------+ | 0x00060000 | DNS_RPC_ZONE_CREATE_INFO_DOTNET (section 2.2.5.2.7.2) | +------------+---------------------------------------------------------+ | 0x00070000 | DNS_RPC_ZONE_CREATE_INFO_LONGHORN (section 2.2.5.2.7.3) | +------------+---------------------------------------------------------+
func (*ZoneCreateInfo) MarshalNDR ¶
func (*ZoneCreateInfo) UnmarshalNDR ¶
type ZoneCreateInfoLonghorn ¶
type ZoneCreateInfoLonghorn struct { // dwRpcStructureVersion: As specified in section 2.2.5.2.4.3. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` ZoneName string `idl:"name:pszZoneName;string" json:"zone_name"` ZoneType uint32 `idl:"name:dwZoneType" json:"zone_type"` AllowUpdate uint32 `idl:"name:fAllowUpdate" json:"allow_update"` Aging uint32 `idl:"name:fAging" json:"aging"` Flags uint32 `idl:"name:dwFlags" json:"flags"` DataFile string `idl:"name:pszDataFile;string" json:"data_file"` DSIntegrated uint32 `idl:"name:fDsIntegrated" json:"ds_integrated"` LoadExisting uint32 `idl:"name:fLoadExisting" json:"load_existing"` Admin string `idl:"name:pszAdmin;string" json:"admin"` // aipMasters: As specified in section 2.2.5.2.4.3. Masters *AddrArray `idl:"name:aipMasters" json:"masters"` // aipSecondaries: As specified in section 2.2.5.2.4.3. // // If the DNS RPC client sends an older version of DNS_RPC_ZONE_CREATE_INFO structure // such as DNS_RPC_ZONE_CREATE_INFO_W2K (section 2.2.5.2.7.1) or DNS_RPC_ZONE_CREATE_INFO_DOTNET // (section 2.2.5.2.7.2), then the DNS RPC server MUST construct a current version of // DNS_RPC_ZONE_CREATE_INFO structure such as DNS_RPC_ZONE_CREATE_INFO_LONGHORN, using // steps as specified below: // // * // // Copy the same value for fields that are common to input and current version of DNS_RPC_ZONE_CREATE_INFO // structures. // // * // // dwRpcStructureVersion field MUST be set to 2. // // * // // The values for aipMasters and aipSecondaries fields MUST be obtained from input structure // as IP4_ARRAY type and MUST be converted to DNS_ADDR_ARRAY type, and then assigned // to aipMasters and aipSecondaries fields in the DNS_RPC_ZONE_CREATE_INFO_LONGHORN // structure. // // *Note* DNS_RPC_ZONE_CREATE_INFO_W2K (section 2.2.5.2.7.1) and DNS_RPC_ZONE_CREATE_INFO_DOTNET // (section 2.2.5.2.7.2), do not support IPv6 ( a95b05da-f1fd-4db3-94b4-817fdaa1f642#gt_64c29bb6-c8b2-4281-9f3a-c1eb5d2288aa // ) address list of *aipMasters* and *aipSecondaries*. // // * // // All other fields that are defined only in DNS_RPC_ZONE_CREATE_INFO_LONGHORN and are // not defined in DNS_RPC_ZONE_CREATE_INFO_W2K (section 2.2.5.2.7.1) or DNS_RPC_ZONE_CREATE_INFO_DOTNET // (section 2.2.5.2.7.2) structure MUST be set to 0. Secondaries *AddrArray `idl:"name:aipSecondaries" json:"secondaries"` SecureSecondaries uint32 `idl:"name:fSecureSecondaries" json:"secure_secondaries"` NotifyLevel uint32 `idl:"name:fNotifyLevel" json:"notify_level"` Timeout uint32 `idl:"name:dwTimeout" json:"timeout"` RecurseAfterForwarding uint32 `idl:"name:fRecurseAfterForwarding" json:"recurse_after_forwarding"` DPFlags uint32 `idl:"name:dwDpFlags" json:"dp_flags"` DPFQDN string `idl:"name:pszDpFqdn;string" json:"dp_fqdn"` // contains filtered or unexported fields }
ZoneCreateInfoLonghorn structure represents DNS_RPC_ZONE_CREATE_INFO_LONGHORN RPC structure.
In the DNS_RPC_ZONE_CREATE_INFO_LONGHORN structure all fields have same definition as specified in section DNS_RPC_ZONE_CREATE_INFO_DOTNET (section 2.2.5.2.7.2), with the following exceptions:
func (*ZoneCreateInfoLonghorn) MarshalNDR ¶
func (*ZoneCreateInfoLonghorn) UnmarshalNDR ¶
type ZoneCreateInfoW2K ¶
type ZoneCreateInfoW2K struct { // pszZoneName: As specified in section 2.2.5.2.4.1. ZoneName string `idl:"name:pszZoneName;string" json:"zone_name"` // dwZoneType: The zone type. This MUST be set to one of the allowed values specified // in DNS_ZONE_TYPE (section 2.2.5.1.1), and it MUST NOT be either DNS_ZONE_TYPE_CACHE // or DNS_ZONE_TYPE_SECONDARY_CACHE. ZoneType uint32 `idl:"name:dwZoneType" json:"zone_type"` // fAllowUpdate: As specified in section 2.2.5.2.4.1. AllowUpdate uint32 `idl:"name:fAllowUpdate" json:"allow_update"` // fAging: As specified in section 2.2.5.2.4.1. Aging uint32 `idl:"name:fAging" json:"aging"` // dwFlags: The zone creation behavior that the DNS server is to follow while creating // the zone. This field is only used when the operation is ZoneCreate. The DNS server // MUST ignore the value of this field when the operation is ZoneTypeReset. This field // MUST be set to any combination of the following values: // // +-----------------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +-----------------------------------------------+----------------------------------------------------------------------------------+ // +-----------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_ZONE_LOAD_OVERWRITE_MEMORY 0x00000010 | If dwZoneType is not set to the value DNS_ZONE_TYPE_PRIMARY (section 2.2.5.1.1), | // | | then this flag MUST be ignored. Otherwise, the DNS server MUST attempt to find | // | | and load the zone database from persistent storage instead of creating a new | // | | empty zone database. If the value of fDsIntegrated is 0x00000001 then the DNS | // | | server MUST search for a pre-existing zone database in the directory server, | // | | otherwise the DNS server MUST search for a pre-existing zone database in a | // | | file. If a pre-existing zone database is not found then it continues with zone | // | | creation, however if a pre-existing zone database is found but could not be | // | | loaded, the DNS server MUST fail the operation and return an error. | // +-----------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_ZONE_CREATE_FOR_DCPROMO 0x00001000 | If this flag is set, the DNS server MUST create the zone such that it is | // | | directory server-integrated and stored in the DNS domain partition. | // +-----------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_ZONE_CREATE_FOR_DCPROMO_FOREST 0x00004000 | If this flag is set, the DNS server MUST create the zone such that it is | // | | directory server-integrated and stored in the DNS forest partition. | // +-----------------------------------------------+----------------------------------------------------------------------------------+ Flags uint32 `idl:"name:dwFlags" json:"flags"` // pszDataFile: As specified in section 2.2.5.2.4.1. DataFile string `idl:"name:pszDataFile;string" json:"data_file"` // fDsIntegrated: A value of 0x00000001 indicates that the zone is to be created to // use the directory server for persistent storage, and 0x00000000 indicates it is not. // If this is set to 0x00000001 the caller MUST specify the application directory partition // information in pszDpFqdn (section 2.2.5.2.7.2); in this case the DNS server MUST // ignore the value of pszDataFile. DSIntegrated uint32 `idl:"name:fDsIntegrated" json:"ds_integrated"` // fLoadExisting: If the operation is ZoneCreate this field is interpreted as a Boolean // value. If set to TRUE this has the same effect as specifying DNS_ZONE_LOAD_OVERWRITE_MEMORY // in the dwFlags field. If the operation is ZoneTypeReset, this field can be set to // one of the following values; however, the DNS server MUST ignore the value of this // field if fDsIntegrated is not TRUE or dwZoneType is not DNS_ZONE_TYPE_PRIMARY (section // 2.2.5.1.1). // // +-------------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +-------------------------------------------+----------------------------------------------------------------------------------+ // +-------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_ZONE_LOAD_OVERWRITE_MEMORY 0x00000010 | The server MUST attempt to find and load the zone database from persistent | // | | storage instead of retaining the existing in-memory zone database by searching | // | | for a pre-existing zone database in the directory server. If a pre-existing zone | // | | database is not found, then the server MUST fail the operation and return an | // | | error. | // +-------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_ZONE_LOAD_OVERWRITE_DS 0x00000020 | If this flag is set and if the zone already exists in the database, then the | // | | server MUST overwrite the existing zone database with current in-memory zone | // | | database. | // +-------------------------------------------+----------------------------------------------------------------------------------+ LoadExisting uint32 `idl:"name:fLoadExisting" json:"load_existing"` // pszAdmin: A pointer to a null-terminated UTF-8 string containing the administrator's // email name (in the format specified in [RFC1035] section 8) or NULL to cause the // DNS server to use a default value "hostmaster", followed by the name of the zone. // This value MUST be used to populate the zone administrator email field in the SOA // record in the new zone. Admin string `idl:"name:pszAdmin;string" json:"admin"` // aipMasters: As specified in section 2.2.5.2.4.1. Masters *IPv4Array `idl:"name:aipMasters" json:"masters"` // aipSecondaries: As specified in section 2.2.5.2.4.1. Secondaries *IPv4Array `idl:"name:aipSecondaries" json:"secondaries"` // fSecureSecondaries: As specified in section 2.2.5.2.4.1. SecureSecondaries uint32 `idl:"name:fSecureSecondaries" json:"secure_secondaries"` // fNotifyLevel: As specified in section 2.2.5.2.4.1. NotifyLevel uint32 `idl:"name:fNotifyLevel" json:"notify_level"` // contains filtered or unexported fields }
ZoneCreateInfoW2K structure represents DNS_RPC_ZONE_CREATE_INFO_W2K RPC structure.
The DNS_RPC_ZONE_CREATE_INFO_W2K structure is used to specify parameters required when creating a new DNS zone.
func (*ZoneCreateInfoW2K) MarshalNDR ¶
func (*ZoneCreateInfoW2K) UnmarshalNDR ¶
type ZoneCreateInfo_NET ¶
type ZoneCreateInfo_NET struct { // dwRpcStructureVersion: As specified in section 2.2.5.2.4.2. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` ZoneName string `idl:"name:pszZoneName;string" json:"zone_name"` ZoneType uint32 `idl:"name:dwZoneType" json:"zone_type"` AllowUpdate uint32 `idl:"name:fAllowUpdate" json:"allow_update"` Aging uint32 `idl:"name:fAging" json:"aging"` Flags uint32 `idl:"name:dwFlags" json:"flags"` DataFile string `idl:"name:pszDataFile;string" json:"data_file"` DSIntegrated uint32 `idl:"name:fDsIntegrated" json:"ds_integrated"` LoadExisting uint32 `idl:"name:fLoadExisting" json:"load_existing"` Admin string `idl:"name:pszAdmin;string" json:"admin"` Masters *IPv4Array `idl:"name:aipMasters" json:"masters"` Secondaries *IPv4Array `idl:"name:aipSecondaries" json:"secondaries"` SecureSecondaries uint32 `idl:"name:fSecureSecondaries" json:"secure_secondaries"` NotifyLevel uint32 `idl:"name:fNotifyLevel" json:"notify_level"` // dwTimeout: Equivalent to dwForwarderTimeout specified in section 2.2.5.2.4.2. Timeout uint32 `idl:"name:dwTimeout" json:"timeout"` // fRecurseAfterForwarding: Equivalent to fForwarderSlave specified in section 2.2.5.2.4.2. RecurseAfterForwarding uint32 `idl:"name:fRecurseAfterForwarding" json:"recurse_after_forwarding"` // dwDpFlags: As specified in section 2.2.5.2.4.2. However, only the following values // can be used and of these values more than one MUST NOT be specified: DNS_DP_LEGACY, // DNS_DP_DOMAIN_DEFAULT, and DNS_DP_FOREST_DEFAULT. This field is set to zero if the // zone is not to be created to use the directory server for persistent storage. The // DNS server returns an error if any value not listed above is specified or if more // than one of the allowable values are specified. DPFlags uint32 `idl:"name:dwDpFlags" json:"dp_flags"` // pszDpFqdn: As specified in section 2.2.5.2.4.2. DPFQDN string `idl:"name:pszDpFqdn;string" json:"dp_fqdn"` // contains filtered or unexported fields }
ZoneCreateInfo_NET structure represents DNS_RPC_ZONE_CREATE_INFO_DOTNET RPC structure.
In the DNS_RPC_ZONE_CREATE_INFO_DOTNET structure all fields have same definition as specified in section DNS_RPC_ZONE_CREATE_INFO_W2K (section 2.2.5.2.7.1), with the following exceptions:
func (*ZoneCreateInfo_NET) MarshalNDR ¶
func (*ZoneCreateInfo_NET) UnmarshalNDR ¶
type ZoneDatabase ¶
type ZoneDatabase struct { RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` DSIntegrated uint32 `idl:"name:fDsIntegrated" json:"ds_integrated"` FileName string `idl:"name:pszFileName;string" json:"file_name"` // contains filtered or unexported fields }
ZoneDatabase structure represents DNS_RPC_ZONE_DATABASE RPC structure.
The DNS_RPC_ZONE_DATABASE structure contains information about the persistent data store for a zone on the DNS server. There are different versions of the DNS_RPC_ZONE_DATABASE structure. The DNS server MUST use the structure corresponding to the value of dwClientVersion in DNS Server Management Protocol method calls (section 3.1.4) as shown in the following table, or if the method call does not specify the value of dwClientVersion, the DNS_RPC_ZONE_DATABASE_W2K (section 2.2.5.2.6.1) version of the structure MUST be used.
+------------+----------------------------------------------------+ | | | | VALUE | STRUCTURE | | | | +------------+----------------------------------------------------+ +------------+----------------------------------------------------+ | 0x00000000 | DNS_RPC_ZONE_DATABASE_W2K (section 2.2.5.2.6.1) | +------------+----------------------------------------------------+ | 0x00060000 | DNS_RPC_ZONE_DATABASE_DOTNET (section 2.2.5.2.6.2) | +------------+----------------------------------------------------+
func (*ZoneDatabase) MarshalNDR ¶
func (*ZoneDatabase) UnmarshalNDR ¶
type ZoneDatabaseW2K ¶
type ZoneDatabaseW2K struct { // fDsIntegrated: This MUST be set TRUE (0x00000001) if the zone is stored in a directory // server, or FALSE (0x00000000) if not. DSIntegrated uint32 `idl:"name:fDsIntegrated" json:"ds_integrated"` // pszFileName: A pointer to a null-terminated UTF-8 string that specifies the name // of the file in which this zone is stored, or NULL if this zone is to be stored in // a directory server or in a file with the default file name for the zone. FileName string `idl:"name:pszFileName;string" json:"file_name"` }
ZoneDatabaseW2K structure represents DNS_RPC_ZONE_DATABASE_W2K RPC structure.
The DNS_RPC_ZONE_DATABASE_W2K structure specifies how a DNS zone is stored in persistent storage.
func (*ZoneDatabaseW2K) MarshalNDR ¶
func (*ZoneDatabaseW2K) UnmarshalNDR ¶
type ZoneDatabase_NET ¶
type ZoneDatabase_NET struct { // dwRpcStructureVersion: The DNS management structure version number. This MUST be // set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` DSIntegrated uint32 `idl:"name:fDsIntegrated" json:"ds_integrated"` FileName string `idl:"name:pszFileName;string" json:"file_name"` // contains filtered or unexported fields }
ZoneDatabase_NET structure represents DNS_RPC_ZONE_DATABASE_DOTNET RPC structure.
In the DNS_RPC_ZONE_DATABASE_DOTNET structure all fields have same definition as specified in section DNS_RPC_ZONE_DATABASE_W2K (section 2.2.5.2.6.1), with the following exceptions:
func (*ZoneDatabase_NET) MarshalNDR ¶
func (*ZoneDatabase_NET) UnmarshalNDR ¶
type ZoneDnssecSettings ¶
type ZoneDnssecSettings struct { // dwRpcStructureVersion: The structure version number; this MUST be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // fIsSigned: States whether or not the zone is signed. IsSigned uint32 `idl:"name:fIsSigned" json:"is_signed"` // fSignWithNSEC3: States whether the zone has NSEC3 Authenticated Denial of Existence // support. SignWithNSEC3 uint32 `idl:"name:fSignWithNSEC3" json:"sign_with_nsec3"` // fNSEC3OptOut: States whether the zone has unsecure delegations. NSEC3OptOut uint32 `idl:"name:fNSEC3OptOut" json:"nsec3_opt_out"` // dwMaintainTrustAnchor: States whether Trust Anchors are maintained for this zone. MaintainTrustAnchor uint32 `idl:"name:dwMaintainTrustAnchor" json:"maintain_trust_anchor"` // fParentHasSecureDelegation: Delegation Status (Secure\UnSecure) for this zone from // the parent. ParentHasSecureDelegation uint32 `idl:"name:fParentHasSecureDelegation" json:"parent_has_secure_delegation"` // dwDSRecordAlgorithms: Algorithms used for generating a hash of the DNSKEY record. DSRecordAlgorithms uint32 `idl:"name:dwDSRecordAlgorithms" json:"ds_record_algorithms"` // fRFC5011KeyRollovers: 5011 rollover status (Enabled\Disabled) for this zone. Rfc5011KeyRollovers uint32 `idl:"name:fRFC5011KeyRollovers" json:"rfc5011_key_rollovers"` // bNSEC3HashAlgorithm: Algorithm used for generating NSEC3 hash (see [RFC5155] section // 5). NSEC3HashAlgorithm uint8 `idl:"name:bNSEC3HashAlgorithm" json:"nsec3_hash_algorithm"` // bNSEC3RandomSaltLength: Length of Salt used in generating NSEC3 records for this // zone (see [RFC5155] section 5). NSEC3RandomSaltLength uint8 `idl:"name:bNSEC3RandomSaltLength" json:"nsec3_random_salt_length"` // wNSEC3IterationCount: Iteration count for generating NSEC3 records for this zone // (see [RFC5155] section 5). NSEC3IterationCount uint16 `idl:"name:wNSEC3IterationCount" json:"nsec3_iteration_count"` // pwszNSEC3UserSalt: User defined salt used for generating NSEC3 records for this zone // (see [RFC5155] section 5). NSEC3UserSalt string `idl:"name:pwszNSEC3UserSalt" json:"nsec3_user_salt"` // dwDNSKEYRecordSetTtl: Time-to-live (TTL) for the DNSKEY resource record. DNSKEYRecordSetTTL uint32 `idl:"name:dwDNSKEYRecordSetTtl" json:"dnskey_record_set_ttl"` // dwDSRecordSetTtl: TTL for the DS Resource Record. DSRecordSetTTL uint32 `idl:"name:dwDSRecordSetTtl" json:"ds_record_set_ttl"` // dwSignatureInceptionOffset: Time in seconds for Inception of Signatures for RRSIGs // as defined in [RFC4034] section 3.1.5. SignatureInceptionOffset uint32 `idl:"name:dwSignatureInceptionOffset" json:"signature_inception_offset"` // dwSecureDelegationPollingPeriod: The interval, in seconds, to refresh the set of // delegation signer (DS) records in a secure delegation. SecureDelegationPollingPeriod uint32 `idl:"name:dwSecureDelegationPollingPeriod" json:"secure_delegation_polling_period"` // dwPropagationTime: The time, in seconds, that it takes for zone data changes to propagate // to other copies of the zone. PropagationTime uint32 `idl:"name:dwPropagationTime" json:"propagation_time"` // cbNSEC3CurrentSaltLength: Length of the Current User salt for building an NSEC3 chain // of zone records. NSEC3CurrentSaltLength uint32 `idl:"name:cbNSEC3CurrentSaltLength" json:"nsec3_current_salt_length"` // pbNSEC3CurrentSalt: Pointer to the pwszNSEC3UserSalt for building an NSEC3 chain // of zone records. NSEC3CurrentSalt []byte `idl:"name:pbNSEC3CurrentSalt;size_is:(cbNSEC3CurrentSaltLength)" json:"nsec3_current_salt"` // CurrentRollingSKDGuid: Unique identifier of a rolling SKD of a zone, if any. CurrentRollingSKDGUID *dtyp.GUID `idl:"name:CurrentRollingSKDGuid" json:"current_rolling_skd_guid"` BufferLength uint32 `idl:"name:dwBufferLength" json:"buffer_length"` Buffer []byte `idl:"name:pBuffer;size_is:(dwBufferLength)" json:"buffer"` // dwCount: The number of signing key descriptors present in the array of signing key // descriptors pointed to by SkdArray. Count uint32 `idl:"name:dwCount" json:"count"` // pZoneSkdArray: A list of SKDs for a zone. This is the array of the DNS_RPC_ZONE_SKD // structure. ZoneSKDArray []*ZoneSKD `idl:"name:pZoneSkdArray;size_is:(dwCount)" json:"zone_skd_array"` // contains filtered or unexported fields }
ZoneDnssecSettings structure represents DNS_RPC_ZONE_DNSSEC_SETTINGS RPC structure.
The DNS_RPC_ZONE_DNSSEC_SETTINGS structure SHOULD<50> represent the DNSSEC properties of a zone.
func (*ZoneDnssecSettings) MarshalNDR ¶
func (*ZoneDnssecSettings) NDRSizeInfo ¶
func (o *ZoneDnssecSettings) NDRSizeInfo() []uint64
func (*ZoneDnssecSettings) UnmarshalNDR ¶
type ZoneExportInfo ¶
type ZoneExportInfo struct { // dwRpcStructureVersion: The structure version number; this MUST be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // pszZoneExportFile: A pointer to a null-terminated UTF-8 string that specifies the // name of the file to which a zone is exported by the DNS server. ZoneExportFile string `idl:"name:pszZoneExportFile;string" json:"zone_export_file"` // contains filtered or unexported fields }
ZoneExportInfo structure represents DNS_RPC_ZONE_EXPORT_INFO RPC structure.
The DNS_RPC_ZONE_EXPORT_INFO structure contains the information file to which a zone is exported on the DNS server.<44>
func (*ZoneExportInfo) MarshalNDR ¶
func (*ZoneExportInfo) UnmarshalNDR ¶
type ZoneInfo ¶
type ZoneInfo struct { RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` ZoneName string `idl:"name:pszZoneName;string" json:"zone_name"` ZoneType uint32 `idl:"name:dwZoneType" json:"zone_type"` Reverse uint32 `idl:"name:fReverse" json:"reverse"` AllowUpdate uint32 `idl:"name:fAllowUpdate" json:"allow_update"` Paused uint32 `idl:"name:fPaused" json:"paused"` Shutdown uint32 `idl:"name:fShutdown" json:"shutdown"` AutoCreated uint32 `idl:"name:fAutoCreated" json:"auto_created"` UseDatabase uint32 `idl:"name:fUseDatabase" json:"use_database"` DataFile string `idl:"name:pszDataFile;string" json:"data_file"` Masters *AddrArray `idl:"name:aipMasters" json:"masters"` SecureSecondaries uint32 `idl:"name:fSecureSecondaries" json:"secure_secondaries"` NotifyLevel uint32 `idl:"name:fNotifyLevel" json:"notify_level"` Secondaries *AddrArray `idl:"name:aipSecondaries" json:"secondaries"` Notify *AddrArray `idl:"name:aipNotify" json:"notify"` UseWINS uint32 `idl:"name:fUseWins" json:"use_wins"` UseNbstat uint32 `idl:"name:fUseNbstat" json:"use_nbstat"` Aging uint32 `idl:"name:fAging" json:"aging"` NoRefreshInterval uint32 `idl:"name:dwNoRefreshInterval" json:"no_refresh_interval"` RefreshInterval uint32 `idl:"name:dwRefreshInterval" json:"refresh_interval"` AvailForScavengeTime uint32 `idl:"name:dwAvailForScavengeTime" json:"avail_for_scavenge_time"` ScavengeServers *AddrArray `idl:"name:aipScavengeServers" json:"scavenge_servers"` ForwarderTimeout uint32 `idl:"name:dwForwarderTimeout" json:"forwarder_timeout"` ForwarderSlave uint32 `idl:"name:fForwarderSlave" json:"forwarder_slave"` LocalMasters *AddrArray `idl:"name:aipLocalMasters" json:"local_masters"` DPFlags uint32 `idl:"name:dwDpFlags" json:"dp_flags"` DPFQDN string `idl:"name:pszDpFqdn;string" json:"dp_fqdn"` ZoneDN string `idl:"name:pwszZoneDn;string" json:"zone_dn"` LastSuccessfulSOACheck uint32 `idl:"name:dwLastSuccessfulSoaCheck" json:"last_successful_soa_check"` LastSuccessfulXFR uint32 `idl:"name:dwLastSuccessfulXfr" json:"last_successful_xfr"` QueuedForBackgroundLoad uint32 `idl:"name:fQueuedForBackgroundLoad" json:"queued_for_background_load"` BackgroundLoadInProgress uint32 `idl:"name:fBackgroundLoadInProgress" json:"background_load_in_progress"` ReadOnlyZone bool `idl:"name:fReadOnlyZone" json:"read_only_zone"` LastXFRAttempt uint32 `idl:"name:dwLastXfrAttempt" json:"last_xfr_attempt"` LastXFRResult uint32 `idl:"name:dwLastXfrResult" json:"last_xfr_result"` // contains filtered or unexported fields }
ZoneInfo structure represents DNS_RPC_ZONE_INFO RPC structure.
The DNS_RPC_ZONE_INFO structure contains the detailed information about a zone present on the DNS server. The DNS server uses this structure to return information about a zone while responding to R_DnssrvQuery2 (section 3.1.4.7) method calls with operation type "ZoneInfo". There are different versions of DNS_RPC_ZONE_INFO. The DNS server MUST use the structures corresponding to the passed-in value for the dwClientVersion field in DNS Server Management Protocol method calls (section 3.1.4) in the following table, or if the method call does not specify the value of dwClientVersion, the DNS_RPC_ZONE_ INFO_W2K version of the structure MUST be used.
+------------+---------------------------------------------------+ | | | | VALUE | STRUCTURE | | | | +------------+---------------------------------------------------+ +------------+---------------------------------------------------+ | 0x00000000 | DNS_RPC_ZONE_INFO_W2K (section 2.2.5.2.4.1) | +------------+---------------------------------------------------+ | 0x00060000 | DNS_RPC_ ZONE_INFO_DOTNET (section 2.2.5.2.4.2) | +------------+---------------------------------------------------+ | 0x00070000 | DNS_RPC_ ZONE_INFO_LONGHORN (section 2.2.5.2.4.3) | +------------+---------------------------------------------------+
func (*ZoneInfo) MarshalNDR ¶
type ZoneInfoLonghorn ¶
type ZoneInfoLonghorn struct { // dwRpcStructureVersion: The DNS server management structure version number. It SHOULD<43> // be set to 0x00000002. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` ZoneName string `idl:"name:pszZoneName;string" json:"zone_name"` ZoneType uint32 `idl:"name:dwZoneType" json:"zone_type"` Reverse uint32 `idl:"name:fReverse" json:"reverse"` AllowUpdate uint32 `idl:"name:fAllowUpdate" json:"allow_update"` Paused uint32 `idl:"name:fPaused" json:"paused"` Shutdown uint32 `idl:"name:fShutdown" json:"shutdown"` AutoCreated uint32 `idl:"name:fAutoCreated" json:"auto_created"` UseDatabase uint32 `idl:"name:fUseDatabase" json:"use_database"` DataFile string `idl:"name:pszDataFile;string" json:"data_file"` // aipMasters: A pointer to a structure of type DNS_ADDR_ARRAY (section 2.2.3.2.3) that // specifies a list of IP addresses of the remote DNS servers that can be sources of // information for this zone on which to perform zone transfers by a secondary. This // value is applicable for secondary, stub and forwarder zones only and MUST be NULL // for all other zone types. Masters *AddrArray `idl:"name:aipMasters" json:"masters"` SecureSecondaries uint32 `idl:"name:fSecureSecondaries" json:"secure_secondaries"` NotifyLevel uint32 `idl:"name:fNotifyLevel" json:"notify_level"` // aipSecondaries: A pointer to a structure of type DNS_ADDR_ARRAY (section 2.2.3.2.3) // that specifies a list of IP addresses of the remote DNS servers that are secondary // DNS servers for this zone, or NULL if there are no secondary DNS servers. If fSecureSecondaries // is set to ZONE_SECSECURE_LIST_ONLY, then only zone transfers from IP addresses in // this list will be honored. Secondaries *AddrArray `idl:"name:aipSecondaries" json:"secondaries"` // aipNotify: A pointer to a structure of type DNS_ADDR_ARRAY (section 2.2.3.2.3) that // specifies a list of IP addresses of the remote DNS servers that are secondaries for // this zone, for which this DNS server is acting as master and the DNS server will // send zone notifications to these secondary servers, as directed by the value of fNotifyLevel // above. Notify *AddrArray `idl:"name:aipNotify" json:"notify"` UseWINS uint32 `idl:"name:fUseWins" json:"use_wins"` UseNbstat uint32 `idl:"name:fUseNbstat" json:"use_nbstat"` Aging uint32 `idl:"name:fAging" json:"aging"` NoRefreshInterval uint32 `idl:"name:dwNoRefreshInterval" json:"no_refresh_interval"` RefreshInterval uint32 `idl:"name:dwRefreshInterval" json:"refresh_interval"` AvailForScavengeTime uint32 `idl:"name:dwAvailForScavengeTime" json:"avail_for_scavenge_time"` // aipScavengeServers: A pointer to a structure of type DNS_ADDR_ARRAY (section 2.2.3.2.3) // that specifies a list of IP addresses of the DNS servers that will perform scavenging // for this zone. This value is applicable for zones of type DNS_ZONE_TYPE_PRIMARY (section // 2.2.5.1.1) only. If this value is NULL, there are no restrictions on which DNS server // can perform scavenging for this zone. ScavengeServers *AddrArray `idl:"name:aipScavengeServers" json:"scavenge_servers"` ForwarderTimeout uint32 `idl:"name:dwForwarderTimeout" json:"forwarder_timeout"` ForwarderSlave uint32 `idl:"name:fForwarderSlave" json:"forwarder_slave"` // aipLocalMasters: A pointer to a structure of type DNS_ADDR_ARRAY (section 2.2.3.2.3) // that specifies a list of IP addresses of primary DNS servers for this zone. If this // value is not NULL then it overrides the masters servers list configured in the directory // server. LocalMasters *AddrArray `idl:"name:aipLocalMasters" json:"local_masters"` DPFlags uint32 `idl:"name:dwDpFlags" json:"dp_flags"` DPFQDN string `idl:"name:pszDpFqdn;string" json:"dp_fqdn"` ZoneDN string `idl:"name:pwszZoneDn;string" json:"zone_dn"` LastSuccessfulSOACheck uint32 `idl:"name:dwLastSuccessfulSoaCheck" json:"last_successful_soa_check"` LastSuccessfulXFR uint32 `idl:"name:dwLastSuccessfulXfr" json:"last_successful_xfr"` // fQueuedForBackgroundLoad: This MUST be set to 0x00000001 if this zone is has not // yet been loaded from persistent storage. QueuedForBackgroundLoad uint32 `idl:"name:fQueuedForBackgroundLoad" json:"queued_for_background_load"` // fBackgroundLoadInProgress: This MUST be set to 0x00000001 if this zone is currently // being loaded from persistent storage, or 0x00000000 if it has been loaded. BackgroundLoadInProgress uint32 `idl:"name:fBackgroundLoadInProgress" json:"background_load_in_progress"` // fReadOnlyZone: This MUST be set to 0x00000001 if this zone is backed by a read-only // store that will not accept write operations, or 0x00000000 if not. ReadOnlyZone bool `idl:"name:fReadOnlyZone" json:"read_only_zone"` // dwLastXfrAttempt: The time-stamp at which last zone transfer was attempted by a DNS // server. This field is applicable only for zones which are secondary or not-authoritative. // For all other zones senders MUST set this value to zero and receivers MUST ignore // it. LastXFRAttempt uint32 `idl:"name:dwLastXfrAttempt" json:"last_xfr_attempt"` // dwLastXfrResult: The result of the last zone transfer attempted by server. This field // is applicable only for zones which are secondary or not-authoritative, and in this // case it MUST be either a Win32 error code, or 0xFFFFFFFF to indicate that a zone // transfer is currently in progress. For all other zones senders MUST set this value // to zero and receivers MUST ignore it. LastXFRResult uint32 `idl:"name:dwLastXfrResult" json:"last_xfr_result"` // contains filtered or unexported fields }
ZoneInfoLonghorn structure represents DNS_RPC_ZONE_INFO_LONGHORN RPC structure.
In the DNS_RPC_ZONE_INFO_LONGHORN structure all fields have same definition as specified in section DNS_RPC_ZONE_INFO_DOTNET (section 2.2.5.2.4.2), with the following exceptions:
func (*ZoneInfoLonghorn) MarshalNDR ¶
func (*ZoneInfoLonghorn) UnmarshalNDR ¶
type ZoneInfoW2K ¶
type ZoneInfoW2K struct { // pszZoneName: A pointer to a null-terminated Unicode string that contains a zone name. ZoneName string `idl:"name:pszZoneName;string" json:"zone_name"` // dwZoneType: The zone type. This MUST be set to one of the allowed values as specified // in DNS_ZONE_TYPE (section 2.2.5.1.1). ZoneType uint32 `idl:"name:dwZoneType" json:"zone_type"` // fReverse: A Boolean value where TRUE (0x00000001) indicates this is a reverse lookup // zone and FALSE (0x00000000) indicates this is a forward lookup zone. Reverse uint32 `idl:"name:fReverse" json:"reverse"` // fAllowUpdate: A value that indicates what kind dynamic updates, as specified in [RFC2136], // are allowed for this zone. This MUST be set to one of the following values: // // +---------------------------------+----------------------------------------------------------------------------------+ // | | | // | CONSTANT/VALUE | DESCRIPTION | // | | | // +---------------------------------+----------------------------------------------------------------------------------+ // +---------------------------------+----------------------------------------------------------------------------------+ // | ZONE_UPDATE_OFF 0x00000000 | No updates are allowed for the zone. | // +---------------------------------+----------------------------------------------------------------------------------+ // | ZONE_UPDATE_UNSECURE 0x00000001 | All updates (secure and unsecure) are allowed for the zone. | // +---------------------------------+----------------------------------------------------------------------------------+ // | ZONE_UPDATE_SECURE 0x00000002 | The zone only allows secure updates, that is, DNS packet MUST have a TSIG | // | | [RFC2845] present in the additional section. | // +---------------------------------+----------------------------------------------------------------------------------+ AllowUpdate uint32 `idl:"name:fAllowUpdate" json:"allow_update"` // fPaused: A Boolean value indicates whether zone operations are currently paused. // TRUE indicates that the DNS server does not use this zone to answer queries or accept // updates. FALSE indicates that the zone is handled normally. Paused uint32 `idl:"name:fPaused" json:"paused"` // fShutdown: A Boolean value that indicates whether this zone is currently shut down. Shutdown uint32 `idl:"name:fShutdown" json:"shutdown"` // fAutoCreated: A Boolean value that indicates whether this zone was autocreated by // the DNS server at boot time or when a virtualization instance is created via the // CreateVirtualizationInstance RPC operation (section 3.1.4.1). AutoCreated uint32 `idl:"name:fAutoCreated" json:"auto_created"` // fUseDatabase: A Boolean value that indicates whether this zone is stored in a directory // server. UseDatabase uint32 `idl:"name:fUseDatabase" json:"use_database"` // pszDataFile: A pointer to a null-terminated UTF-8 character string that specifies // the name (with no path) of the zone file for a file-based zone or NULL if this zone // is not stored in a file. DataFile string `idl:"name:pszDataFile;string" json:"data_file"` // aipMasters: A pointer to a structure of type IP4_ARRAY (section 2.2.3.2.1) that specifies // a list of IPv4 addresses of the remote DNS servers that can be sources of information // for this zone to perform zone transfers by a secondary. This value is applicable // for secondary, stub and forwarder zones only and MUST be NULL for all other zone // types. Masters *IPv4Array `idl:"name:aipMasters" json:"masters"` // fSecureSecondaries: The secondary security settings configured for a zone on the // master DNS server. The DNS server MUST respond to zone transfer requests from a secondary // server according to the behavior description corresponding to this flag's value as // specified in DNS_ZONE_SECONDARY_SECURITY (section 2.2.5.1.2). This value MUST be // set to one of the allowed values as specified in DNS_ZONE_SECONDARY_SECURITY (section // 2.2.5.1.2). SecureSecondaries uint32 `idl:"name:fSecureSecondaries" json:"secure_secondaries"` // fNotifyLevel: This parameter is ignored, and for dwZoneType parameter setting DNS_ZONE_TYPE_PRIMARY // (specified in section 2.2.5.1.1) and for DNS servers that are not directory service-integrated, // the zone notification setting is set to ZONE_NOTIFY_ALL_SECONDARIES. Otherwise, it // is set to ZONE_NOTIFY_LIST_ONLY, as specified in section 2.2.5.1.3. NotifyLevel uint32 `idl:"name:fNotifyLevel" json:"notify_level"` // aipSecondaries: A pointer to a structure of type IP4_ARRAY (section 2.2.3.2.1) that // specifies a list of IPv4 addresses of the remote DNS servers that are secondary DNS // servers for this zone, or NULL if there are no secondary DNS servers. If fSecureSecondaries // is set to ZONE_SECSECURE_LIST_ONLY then only zone transfers from IP addresses in // this list will be honored. Secondaries *IPv4Array `idl:"name:aipSecondaries" json:"secondaries"` // aipNotify: A pointer to a structure of type IP4_ARRAY (section 2.2.3.2.1) that specifies // a list of IPv4 addresses of the remote DNS servers that are secondaries for this // zone, for which this DNS server is acting as master and the DNS server will send // zone notifications to these secondary servers, as directed by the value of fNotifyLevel // above. Notify *IPv4Array `idl:"name:aipNotify" json:"notify"` // fUseWins: A Boolean value that indicates whether WINS resource record lookup is enabled // for this forward lookup zones. UseWINS uint32 `idl:"name:fUseWins" json:"use_wins"` // fUseNbstat: A Boolean value that indicates whether WINS-R resource record lookup // is enabled for this reverse lookup zones. UseNbstat uint32 `idl:"name:fUseNbstat" json:"use_nbstat"` // fAging: A Boolean value where TRUE (0x00000001) indicates that aging is enabled for // resource records in this zone, so the time-stamps of records in the zone will be // updated when server receives dynamic update request for that record; whereas FALSE(0x00000000) // indicates, that the time-stamps of the records in the zone will not be updated. Aging uint32 `idl:"name:fAging" json:"aging"` // dwNoRefreshInterval: The time interval, in hours, that is configured as NoRefresh // interval value for this zone. This value determines the time interval between the // last update of a record's time-stamp and the earliest instance when that time-stamp // can be refreshed. NoRefreshInterval uint32 `idl:"name:dwNoRefreshInterval" json:"no_refresh_interval"` // dwRefreshInterval: The time interval, in hours, that is configured as the refresh // interval value for this zone. Records that have not been refreshed by the expiration // of this interval are eligible to be removed during the next scavenging cycle performed // by the DNS server. RefreshInterval uint32 `idl:"name:dwRefreshInterval" json:"refresh_interval"` // dwAvailForScavengeTime: The time interval, in hours, that is available before the // scheduled next scavenging cycle for this zone. AvailForScavengeTime uint32 `idl:"name:dwAvailForScavengeTime" json:"avail_for_scavenge_time"` // aipScavengeServers: A pointer to a structure of type IP4_ARRAY (section 2.2.3.2.1) // that specifies a list of IPv4 addresses of the DNS servers that will perform scavenging // for this zone. This value is applicable for zones of type DNS_ZONE_TYPE_PRIMARY (section // DNS_ZONE_TYPE) only. If this value is NULL, there are no restrictions on which // DNS server can perform scavenging for this zone. ScavengeServers *IPv4Array `idl:"name:aipScavengeServers" json:"scavenge_servers"` // contains filtered or unexported fields }
ZoneInfoW2K structure represents DNS_RPC_ZONE_INFO_W2K RPC structure.
The DNS_RPC_ZONE_INFO_W2K structure is used to specify detailed DNS zone information.
func (*ZoneInfoW2K) MarshalNDR ¶
func (*ZoneInfoW2K) UnmarshalNDR ¶
type ZoneInfo_NET ¶
type ZoneInfo_NET struct { // dwRpcStructureVersion: The DNS server management structure version number. This value // SHOULD<42> be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` ZoneName string `idl:"name:pszZoneName;string" json:"zone_name"` ZoneType uint32 `idl:"name:dwZoneType" json:"zone_type"` Reverse uint32 `idl:"name:fReverse" json:"reverse"` AllowUpdate uint32 `idl:"name:fAllowUpdate" json:"allow_update"` Paused uint32 `idl:"name:fPaused" json:"paused"` Shutdown uint32 `idl:"name:fShutdown" json:"shutdown"` AutoCreated uint32 `idl:"name:fAutoCreated" json:"auto_created"` UseDatabase uint32 `idl:"name:fUseDatabase" json:"use_database"` DataFile string `idl:"name:pszDataFile;string" json:"data_file"` Masters *IPv4Array `idl:"name:aipMasters" json:"masters"` SecureSecondaries uint32 `idl:"name:fSecureSecondaries" json:"secure_secondaries"` NotifyLevel uint32 `idl:"name:fNotifyLevel" json:"notify_level"` Secondaries *IPv4Array `idl:"name:aipSecondaries" json:"secondaries"` Notify *IPv4Array `idl:"name:aipNotify" json:"notify"` UseWINS uint32 `idl:"name:fUseWins" json:"use_wins"` UseNbstat uint32 `idl:"name:fUseNbstat" json:"use_nbstat"` Aging uint32 `idl:"name:fAging" json:"aging"` NoRefreshInterval uint32 `idl:"name:dwNoRefreshInterval" json:"no_refresh_interval"` RefreshInterval uint32 `idl:"name:dwRefreshInterval" json:"refresh_interval"` AvailForScavengeTime uint32 `idl:"name:dwAvailForScavengeTime" json:"avail_for_scavenge_time"` ScavengeServers *IPv4Array `idl:"name:aipScavengeServers" json:"scavenge_servers"` // dwForwarderTimeout (4 bytes): The forwarder timeout value for a zone, in seconds. // This is the number of seconds the DNS server waits for response from a remote DNS // server for a forwarded query. This value is applicable for zones of type DNS_ZONE_TYPE_FORWARDER // (section 2.2.5.1.1). For all other zone types, senders MUST set this value to zero // and receivers MUST ignore it. ForwarderTimeout uint32 `idl:"name:dwForwarderTimeout" json:"forwarder_timeout"` // fForwarderSlave: A Boolean value indicating whether the DNS server is not allowed // to perform recursion while resolving names for this zone. The DNS server MUST fail // queries after getting failure from all forwarded servers, if the value is TRUE (0x00000001). // Otherwise normal recursion MUST be performed. This value is applicable for zones // of type DNS_ZONE_TYPE_FORWARDER (section 2.2.5.1.1). For all other zone types, senders // MUST set this value to zero and receivers MUST ignore it. ForwarderSlave uint32 `idl:"name:fForwarderSlave" json:"forwarder_slave"` // aipLocalMasters: A pointer to a structure of type IP4_ARRAY (section 2.2.3.2.1) that // specifies a list of IPv4 addresses of primary DNS servers for this zone. If this // value is not NULL then it overrides the master servers list configured in the directory // server. LocalMasters *IPv4Array `idl:"name:aipLocalMasters" json:"local_masters"` // dwDpFlags: Flag value that specifies information about the application directory // partition in which this zone is stored. This MUST be set to any combination of the // DNS_RPC_DP_FLAGS (section 2.2.7.1.1) or zero if this zone is not stored in a directory // server. DPFlags uint32 `idl:"name:dwDpFlags" json:"dp_flags"` // pszDpFqdn: A pointer to a null-terminated UTF-8 string that specifies the FQDN of // the application directory partition in which this zone is stored. If the zone is // not stored in an application directory partition this value MUST be NULL. DPFQDN string `idl:"name:pszDpFqdn;string" json:"dp_fqdn"` // pwszZoneDn: Pointer to a null-terminated Unicode string that specifies the distinguished // name for the zone if the zone is stored the directory server. This field is applicable // for directory server integrated zones only. The value MUST be NULL if this zone is // not stored in the directory server. ZoneDN string `idl:"name:pwszZoneDn;string" json:"zone_dn"` // dwLastSuccessfulSoaCheck: The time-stamp at which last SOA record was received successfully // from the primary DNS server for this zone. This field is applicable only for zones // which are secondary or non-authoritative. For all other zones this value MUST be // set to zero by senders and MUST be ignored by receivers. LastSuccessfulSOACheck uint32 `idl:"name:dwLastSuccessfulSoaCheck" json:"last_successful_soa_check"` // dwLastSuccessfulXfr: The time-stamp at which last zone transfer was completed successfully // from the primary DNS server for this zone. This field is applicable only for zones // which are secondary or non-authoritative. For all other zones this value MUST be // set to zero by senders and MUST be ignored by receivers. LastSuccessfulXFR uint32 `idl:"name:dwLastSuccessfulXfr" json:"last_successful_xfr"` // contains filtered or unexported fields }
ZoneInfo_NET structure represents DNS_RPC_ZONE_INFO_DOTNET RPC structure.
In the DNS_RPC_ZONE_INFO_DOTNET structure all fields have same definition as specified in section DNS_RPC_ZONE_INFO_W2K (section 2.2.5.2.4.1), with the following exceptions:
func (*ZoneInfo_NET) MarshalNDR ¶
func (*ZoneInfo_NET) UnmarshalNDR ¶
type ZoneList ¶
type ZoneList struct { RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` ZoneCount uint32 `idl:"name:dwZoneCount" json:"zone_count"` ZoneArray []*Zone_NET `idl:"name:ZoneArray;size_is:(dwZoneCount)" json:"zone_array"` // contains filtered or unexported fields }
ZoneList structure represents DNS_RPC_ZONE_LIST RPC structure.
The DNS_RPC_ZONE_LIST structure contains the information about a list of zones present on the DNS server. There are different versions of the DNS_RPC_ZONE_LIST structure. The DNS server SHOULD<41> use one of these structures depending upon the passed-in value for the dwClientVersion field in DNS Server Management Protocol method calls (section 3.1.4) as shown in the following table. If the method call does not specify the value of dwClientVersion, the DNS_RPC_ZONE_LIST_W2K version of the structure MUST be used.
+------------+------------------------------------------------+ | | | | VALUE | STRUCTURE | | | | +------------+------------------------------------------------+ +------------+------------------------------------------------+ | 0x00000000 | DNS_RPC_ZONE_LIST_W2K (section 2.2.5.2.3.1) | +------------+------------------------------------------------+ | 0x00060000 | DNS_RPC_ZONE_LIST_DOTNET (section 2.2.5.2.3.2) | +------------+------------------------------------------------+
func (*ZoneList) MarshalNDR ¶
func (*ZoneList) NDRSizeInfo ¶
type ZoneListW2K ¶
type ZoneListW2K struct { // dwZoneCount: The number of zones present in the array of zones pointed to by ZoneArray. ZoneCount uint32 `idl:"name:dwZoneCount" json:"zone_count"` // ZoneArray: An array of structures of type DNS_RPC_ZONE_W2K (section 2.2.5.2.1.1). // Each element of the array represents one zone. ZoneArray []*ZoneW2K `idl:"name:ZoneArray;size_is:(dwZoneCount)" json:"zone_array"` }
ZoneListW2K structure represents DNS_RPC_ZONE_LIST_W2K RPC structure.
The DNS_RPC_ZONE_LIST_W2K structure is used to enumerate zones.
func (*ZoneListW2K) MarshalNDR ¶
func (*ZoneListW2K) NDRSizeInfo ¶
func (o *ZoneListW2K) NDRSizeInfo() []uint64
func (*ZoneListW2K) UnmarshalNDR ¶
type ZoneList_NET ¶
type ZoneList_NET struct { // dwRpcStructureVersion: The DNS management structure version number. This MUST be // set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` ZoneCount uint32 `idl:"name:dwZoneCount" json:"zone_count"` ZoneArray []*Zone_NET `idl:"name:ZoneArray;size_is:(dwZoneCount)" json:"zone_array"` // contains filtered or unexported fields }
ZoneList_NET structure represents DNS_RPC_ZONE_LIST_DOTNET RPC structure.
In the DNS_RPC_ZONE_LIST_DOTNET structure all fields have same definition as specified in section DNS_RPC_ZONE_LIST_W2K (section 2.2.5.2.3.1), with the following exceptions:
func (*ZoneList_NET) MarshalNDR ¶
func (*ZoneList_NET) NDRSizeInfo ¶
func (o *ZoneList_NET) NDRSizeInfo() []uint64
func (*ZoneList_NET) UnmarshalNDR ¶
type ZoneQueryStats ¶
type ZoneQueryStats struct { // RecordType: The type of record for which the query was received. The value SHOULD // be of type DNS_ZONE_STATS_TYPE (section 2.2.12.1.1). RecordType ZoneStatsType `idl:"name:RecordType" json:"record_type"` // QueriesResponded: The total number of queries to which the server responded for a // specific zone. QueriesResponded uint64 `idl:"name:QueriesResponded" json:"queries_responded"` // QueriesReceived: The total number of queries received by the server for a specific // zone. QueriesReceived uint64 `idl:"name:QueriesReceived" json:"queries_received"` // QueriesFailure: The total number of queries for which the server responded with server // failure for a specific zone. QueriesFailure uint64 `idl:"name:QueriesFailure" json:"queries_failure"` // QueriesNameError: The total number of queries for which the server responded with // a name error for a specific zone. QueriesNameError uint64 `idl:"name:QueriesNameError" json:"queries_name_error"` }
ZoneQueryStats structure represents DNSSRV_ZONE_QUERY_STATS RPC structure.
The DNSSRV_ZONE_QUERY_STATS structure<81> contains per-zone per-record-type statistics.
func (*ZoneQueryStats) MarshalNDR ¶
func (*ZoneQueryStats) UnmarshalNDR ¶
type ZoneRRLStats ¶
type ZoneRRLStats struct { // Type: The DNS query type for which statistics are required. The value is of type // DNS_ZONE_STATS_TYPE (section 2.2.12.1.1). Type ZoneStatsType `idl:"name:Type" json:"type"` // TotalResponsesSent: The total number of responses sent on a specified zone when RRL // is enabled. TotalResponsesSent uint32 `idl:"name:TotalResponsesSent" json:"total_responses_sent"` // TotalResponsesDropped: The total number responses dropped on a specified zone when // RRL is enabled. TotalResponsesDropped uint32 `idl:"name:TotalResponsesDropped" json:"total_responses_dropped"` // TotalResponsesTruncated: The total number of responses sent with a truncated bit // set on a specified zone when RRL is enabled. TotalResponsesTruncated uint32 `idl:"name:TotalResponsesTruncated" json:"total_responses_truncated"` // TotalResponsesLeaked: The total number of responses sent after exhaustion of available // responses on a specified zone when RRL is enabled. TotalResponsesLeaked uint32 `idl:"name:TotalResponsesLeaked" json:"total_responses_leaked"` }
ZoneRRLStats structure represents DNSSRV_ZONE_RRL_STATS RPC structure.
The DNSSRV_ZONE_RRL_STATS structure SHOULD<85> contain zone statistics about Response Rate Limiting.
func (*ZoneRRLStats) MarshalNDR ¶
func (*ZoneRRLStats) UnmarshalNDR ¶
type ZoneSKD ¶
type ZoneSKD struct { // dwRpcStructureVersion: The structure version number; this MUST be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // pSkd: The static properties of a zone SKD. This is a DNS_RPC_SKD structure (section // 2.2.6.2.1). SKD *SKD `idl:"name:pSkd" json:"skd"` // pSkdState: The dynamic properties of a zone SKD. This is a DNS_RPC_SKD_STATE structure // (section 2.2.6.2.3). SKDState *SKDState `idl:"name:pSkdState" json:"skd_state"` // pSkdStateEx: The extended dynamic properties of a zone SKD. This is a DNS_RPC_SKD_STATE_EX // structure (section 2.2.6.2.11). SKDStateEx *SKDStateEx `idl:"name:pSkdStateEx" json:"skd_state_ex"` // contains filtered or unexported fields }
ZoneSKD structure represents DNS_RPC_ZONE_SKD RPC structure.
The DNS_RPC_ZONE_SKD structure<51> groups all the properties of a signing key descriptor of a zone.
type ZoneScopeCreateInfo ¶
type ZoneScopeCreateInfo ZoneScopeCreateInfoV1
ZoneScopeCreateInfo structure represents DNS_RPC_ZONE_SCOPE_CREATE_INFO RPC structure.
func (*ZoneScopeCreateInfo) MarshalNDR ¶
func (*ZoneScopeCreateInfo) UnmarshalNDR ¶
func (*ZoneScopeCreateInfo) ZoneScopeCreateInfoV1 ¶
func (o *ZoneScopeCreateInfo) ZoneScopeCreateInfoV1() *ZoneScopeCreateInfoV1
type ZoneScopeCreateInfoV1 ¶
type ZoneScopeCreateInfoV1 struct { // dwFlags: Specifies the behavior that the DNS server SHOULD follow when creating the // scope. This field is used only when the operation is CreateZoneScope. For any other // value than the following, a new empty zone scope is created: // // +-------------------------------------------+----------------------------------------------------------------------------------+ // | | | // | VALUE | MEANING | // | | | // +-------------------------------------------+----------------------------------------------------------------------------------+ // +-------------------------------------------+----------------------------------------------------------------------------------+ // | DNS_ZONE_LOAD_OVERWRITE_MEMORY 0x00000010 | If this value is specified, the DNS server MUST attempt to find and load the | // | | zone scope database from persistent storage instead of creating a new empty | // | | zone scope. If a pre-existing zone scope database is not found, or if there is a | // | | failure in loading the existing database, the DNS server MUST fail the operation | // | | and return an error. If a cache scope is being created, this operation fails on | // | | the DNS server and an ERROR_INVALID_PARAMETER error is returned. | // +-------------------------------------------+----------------------------------------------------------------------------------+ Flags uint32 `idl:"name:dwFlags" json:"flags"` // pwszScopeName: The name of the zone scope or cache scope. ScopeName string `idl:"name:pwszScopeName" json:"scope_name"` }
ZoneScopeCreateInfoV1 structure represents DNS_RPC_ZONE_SCOPE_CREATE_INFO_V1 RPC structure.
The DNS_RPC_ZONE_SCOPE_CREATE_INFO_V1 structure<87> contains the name of the zone scope or cache scope.
func (*ZoneScopeCreateInfoV1) MarshalNDR ¶
func (*ZoneScopeCreateInfoV1) UnmarshalNDR ¶
type ZoneScopeInfo ¶
type ZoneScopeInfo ZoneScopeInfoV1
ZoneScopeInfo structure represents DNS_RPC_ZONE_SCOPE_INFO RPC structure.
func (*ZoneScopeInfo) MarshalNDR ¶
func (*ZoneScopeInfo) UnmarshalNDR ¶
func (*ZoneScopeInfo) ZoneScopeInfoV1 ¶
func (o *ZoneScopeInfo) ZoneScopeInfoV1() *ZoneScopeInfoV1
type ZoneScopeInfoV1 ¶
type ZoneScopeInfoV1 struct { // dwRpcStructureVersion: The DNS management structure version number. This value MUST // be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // pwszScopeName: The name of the zone scope or cache scope. ScopeName string `idl:"name:pwszScopeName" json:"scope_name"` // pwszDataFile: The name of the zone scope or cache scope data file. DataFile string `idl:"name:pwszDataFile" json:"data_file"` }
ZoneScopeInfoV1 structure represents DNS_RPC_ZONE_SCOPE_INFO_V1 RPC structure.
The DNS_RPC_ZONE_SCOPE_INFO_V1 structure<88> contains the details of the zone scope or cache scope.
func (*ZoneScopeInfoV1) MarshalNDR ¶
func (*ZoneScopeInfoV1) UnmarshalNDR ¶
type ZoneSecondaries ¶
type ZoneSecondaries struct { RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` SecureSecondaries uint32 `idl:"name:fSecureSecondaries" json:"secure_secondaries"` NotifyLevel uint32 `idl:"name:fNotifyLevel" json:"notify_level"` Secondaries *AddrArray `idl:"name:aipSecondaries" json:"secondaries"` Notify *AddrArray `idl:"name:aipNotify" json:"notify"` // contains filtered or unexported fields }
ZoneSecondaries structure represents DNS_RPC_ZONE_SECONDARIES RPC structure.
The DNS_RPC_ZONE_SECONDARIES structure contains the information about the secondary DNS servers for a zone. There are different versions of the DNS_RPC_ZONE_SECONDARIES structure. The DNS server MUST use the structure corresponding to the value of the dwClientVersion in DNS Server Management Protocol method calls (section 3.1.4) as in the following table, or if the method call does not specify the value of dwClientVersion, the DNS_RPC_ZONE_SECONDARIES_W2K version of the structure MUST be used.
+------------+----------------------------------------------------------+ | | | | VALUE | STRUCTURE | | | | +------------+----------------------------------------------------------+ +------------+----------------------------------------------------------+ | 0x00000000 | DNS_RPC_ZONE_SECONDARIES_W2K (section 2.2.5.2.5.1) | +------------+----------------------------------------------------------+ | 0x00060000 | DNS_RPC_ ZONE_SECONDARIES_DOTNET (section 2.2.5.2.5.2) | +------------+----------------------------------------------------------+ | 0x00070000 | DNS_RPC_ ZONE_SECONDARIES_LONGHORN (section 2.2.5.2.5.3) | +------------+----------------------------------------------------------+
func (*ZoneSecondaries) MarshalNDR ¶
func (*ZoneSecondaries) UnmarshalNDR ¶
type ZoneSecondariesLonghorn ¶
type ZoneSecondariesLonghorn struct { // dwRpcStructureVersion: The DNS server management structure version number. It MUST // be set to 0x00000002. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` SecureSecondaries uint32 `idl:"name:fSecureSecondaries" json:"secure_secondaries"` NotifyLevel uint32 `idl:"name:fNotifyLevel" json:"notify_level"` // aipSecondaries: A pointer to a structure of type DNS_ADDR_ARRAY (section 2.2.3.2.3) // that specifies a list of IP addresses of remote DNS servers that are permitted to // perform zone transfers for this zone. The DNS server will honor zone transfer requests // from these secondary servers, as directed by the value of fSecureSecondaries above. Secondaries *AddrArray `idl:"name:aipSecondaries" json:"secondaries"` // aipNotify: A pointer to a structure of type DNS_ADDR_ARRAY (section 2.2.3.2.3) that // specifies a list of IP addresses of the remote DNS servers that be sent notification // messages when records in this zone change, as directed by fNotifyLevel above. Notify *AddrArray `idl:"name:aipNotify" json:"notify"` // contains filtered or unexported fields }
ZoneSecondariesLonghorn structure represents DNS_RPC_ZONE_SECONDARIES_LONGHORN RPC structure.
In the DNS_RPC_ZONE_SECONDARIES_LONGHORN structure all fields have same definition as specified in section DNS_RPC_ZONE_SECONDARIES_DOTNET (section 2.2.5.2.5.2), with the following exceptions:
func (*ZoneSecondariesLonghorn) MarshalNDR ¶
func (*ZoneSecondariesLonghorn) UnmarshalNDR ¶
type ZoneSecondariesW2K ¶
type ZoneSecondariesW2K struct { // fSecureSecondaries: The secondary security settings configured for this zone. The // DNS server MUST respond to zone transfer requests from a secondary server according // to the behavior corresponding to the value of the flag, as described in DNS_ZONE_SECONDARY_SECURITY // (section 2.2.5.1.2). This value MUST be set to one of the allowed values as specified // in DNS_ZONE_SECONDARY_SECURITY (section 2.2.5.1.2). SecureSecondaries uint32 `idl:"name:fSecureSecondaries" json:"secure_secondaries"` // fNotifyLevel: The settings for sending zone notifications for this zone. The DNS // server MUST send notify messages to secondary servers as specified by the entry corresponding // to the value of this flag, as shown in the table in section 2.2.5.1.3. This flag's // value MUST be set to one of the allowed values as specified in DNS_ZONE_ NOTIFY_LEVEL // (section 2.2.5.1.3). NotifyLevel uint32 `idl:"name:fNotifyLevel" json:"notify_level"` // aipSecondaries: The list of IPv4 addresses of remote DNS servers that are permitted // to perform zone transfers for this zone. The DNS server will honor zone transfer // requests from these secondary servers, as specified by fSecureSecondaries above. Secondaries *IPv4Array `idl:"name:aipSecondaries" json:"secondaries"` // aipNotify: The list of IPv4 addresses of the remote DNS servers that will be sent // notification messages when records in this zone change, as directed by fNotifyLevel // above. Notify *IPv4Array `idl:"name:aipNotify" json:"notify"` }
ZoneSecondariesW2K structure represents DNS_RPC_ZONE_SECONDARIES_W2K RPC structure.
The DNS_RPC_ZONE_SECONDARIES_W2K structure is used to specify information about the secondary servers for a primary DNS zone.
func (*ZoneSecondariesW2K) MarshalNDR ¶
func (*ZoneSecondariesW2K) UnmarshalNDR ¶
type ZoneSecondaries_NET ¶
type ZoneSecondaries_NET struct { // dwRpcStructureVersion: The DNS server management structure version number. It MUST // be set to 0x00000001 RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` SecureSecondaries uint32 `idl:"name:fSecureSecondaries" json:"secure_secondaries"` NotifyLevel uint32 `idl:"name:fNotifyLevel" json:"notify_level"` Secondaries *IPv4Array `idl:"name:aipSecondaries" json:"secondaries"` Notify *IPv4Array `idl:"name:aipNotify" json:"notify"` // contains filtered or unexported fields }
ZoneSecondaries_NET structure represents DNS_RPC_ZONE_SECONDARIES_DOTNET RPC structure.
In the DNS_RPC_ZONE_SECONDARIES_DOTNET structure all fields have same definition as specified in section DNS_RPC_ZONE_SECONDARIES_W2K (section 2.2.5.2.5.1), with the following exceptions:
func (*ZoneSecondaries_NET) MarshalNDR ¶
func (*ZoneSecondaries_NET) UnmarshalNDR ¶
type ZoneStats ¶
type ZoneStats ZoneStatsV1
ZoneStats structure represents DNS_RPC_ZONE_STATS RPC structure.
func (*ZoneStats) MarshalNDR ¶
func (*ZoneStats) UnmarshalNDR ¶
func (*ZoneStats) ZoneStatsV1 ¶
func (o *ZoneStats) ZoneStatsV1() *ZoneStatsV1
type ZoneStatsType ¶
type ZoneStatsType uint16
ZoneStatsType type represents DNS_ZONE_STATS_TYPE RPC enumeration.
The DNS_ZONE_STATS_TYPE enumeration is the enumerator for all zone statistics types.<79>
var ( // ZONE_STATS_TYPE_RECORD_A: A record type. ZoneStatsTypeRecordA ZoneStatsType = 0 // ZONE_STATS_TYPE_RECORD_AAAA: AAAA record type. ZoneStatsTypeRecordAAAA ZoneStatsType = 1 // ZONE_STATS_TYPE_RECORD_PTR: PTR record type. ZoneStatsTypeRecordPTR ZoneStatsType = 2 // ZONE_STATS_TYPE_RECORD_CNAME: CNAME record type. ZoneStatsTypeRecordCNAME ZoneStatsType = 3 // ZONE_STATS_TYPE_RECORD_MX: MX record type. ZoneStatsTypeRecordMX ZoneStatsType = 4 // ZONE_STATS_TYPE_RECORD_AFSDB: AFDSB record type. ZoneStatsTypeRecordAFSDB ZoneStatsType = 5 // ZONE_STATS_TYPE_RECORD_ATMA: ATMA record type. ZoneStatsTypeRecordATMA ZoneStatsType = 6 // ZONE_STATS_TYPE_RECORD_DHCID: DHCID record type. ZoneStatsTypeRecordDHCID ZoneStatsType = 7 // ZONE_STATS_TYPE_RECORD_DNAME: DNAME record type. ZoneStatsTypeRecordDNAME ZoneStatsType = 8 // ZONE_STATS_TYPE_RECORD_HINFO: HINFO record type. ZoneStatsTypeRecordHINFO ZoneStatsType = 9 // ZONE_STATS_TYPE_RECORD_ISDN: ISDN record type. ZoneStatsTypeRecordISDN ZoneStatsType = 10 // ZONE_STATS_TYPE_RECORD_MG: MG record type. ZoneStatsTypeRecordMG ZoneStatsType = 11 // ZONE_STATS_TYPE_RECORD_MB: MB record type. ZoneStatsTypeRecordMB ZoneStatsType = 12 // ZONE_STATS_TYPE_RECORD_MINFO: MINFO record type. ZoneStatsTypeRecordMINFO ZoneStatsType = 13 // ZONE_STATS_TYPE_RECORD_NAPTR: NAPTR record type. ZoneStatsTypeRecordNAPTR ZoneStatsType = 14 // ZONE_STATS_TYPE_RECORD_NXT: NXT record type. ZoneStatsTypeRecordNXT ZoneStatsType = 15 // ZONE_STATS_TYPE_RECORD_KEY: KEY record type. ZoneStatsTypeRecordKEY ZoneStatsType = 16 // ZONE_STATS_TYPE_RECORD_MR: MR record type. ZoneStatsTypeRecordMR ZoneStatsType = 17 // ZONE_STATS_TYPE_RECORD_RP: RP record type. ZoneStatsTypeRecordRP ZoneStatsType = 18 // ZONE_STATS_TYPE_RECORD_RT: RT record type. ZoneStatsTypeRecordRT ZoneStatsType = 19 // ZONE_STATS_TYPE_RECORD_SRV: SRV record type. ZoneStatsTypeRecordSRV ZoneStatsType = 20 // ZONE_STATS_TYPE_RECORD_SIG: SIG record type. ZoneStatsTypeRecordSIG ZoneStatsType = 21 // ZONE_STATS_TYPE_RECORD_TEXT: TXT record type. ZoneStatsTypeRecordTXT ZoneStatsType = 22 // ZONE_STATS_TYPE_RECORD_WKS: WKS record type. ZoneStatsTypeRecordWKS ZoneStatsType = 23 // ZONE_STATS_TYPE_RECORD_X25: X25 record type. ZoneStatsTypeRecordX25 ZoneStatsType = 24 // ZONE_STATS_TYPE_RECORD_DNSKEY: DNSKEY record type. ZoneStatsTypeRecordDNSKEY ZoneStatsType = 25 // ZONE_STATS_TYPE_RECORD_DS: DS record type. ZoneStatsTypeRecordDS ZoneStatsType = 26 // ZONE_STATS_TYPE_RECORD_NS: NS record type. ZoneStatsTypeRecordNS ZoneStatsType = 27 // ZONE_STATS_TYPE_RECORD_SOA: SOA record type. ZoneStatsTypeRecordSOA ZoneStatsType = 28 // ZONE_STATS_TYPE_RECORD_TLSA: TLSA record type. ZoneStatsTypeRecordTLSA ZoneStatsType = 29 // ZONE_STATS_TYPE_RECORD_ALL: All record types. ZoneStatsTypeRecordAll ZoneStatsType = 30 // ZONE_STATS_TYPE_RECORD_OTHERS: Resource records not specified in this list. ZoneStatsTypeRecordOthers ZoneStatsType = 31 // ZONE_STATS_TYPE_TRANSFER_AXFR: Axft transfer type. ZoneStatsTypeTransferAXFR ZoneStatsType = 32 // ZONE_STATS_TYPE_TRANSFER_IXFR: Ixfr transfer type. ZoneStatsTypeTransferIXFR ZoneStatsType = 33 // ZONE_STATS_TYPE_UPDATE: Zone Update. ZoneStatsTypeUpdate ZoneStatsType = 34 // ZONE_STATS_TYPE_RRL: Response Rate Limiting. ZoneStatsTypeRRL ZoneStatsType = 35 // MAX_ZONE_STATS_TYPES: Specifies the maximum zone statistics types supported. ZoneStatsTypeMaxZoneStatsTypes ZoneStatsType = 36 )
func (ZoneStatsType) String ¶
func (o ZoneStatsType) String() string
type ZoneStatsV1 ¶
type ZoneStatsV1 struct { // dwRpcStructureVersion: The DNS management structure version number. This value MUST // be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` // ZoneTimeStats: Information about the zone time statistics in the DNSSRV_ZONE_TIME_STATS // structure (section 2.2.12.2.1). ZoneTimeStats *ZoneTimeStats `idl:"name:ZoneTimeStats" json:"zone_time_stats"` // ZoneQueryStats: An array of DNSSRV_ZONE_QUERY_STATS structures (section 2.2.12.2.2). ZoneQueryStats []*ZoneQueryStats `idl:"name:ZoneQueryStats" json:"zone_query_stats"` // ZoneTransferStats: An array of DNSSRV_ZONE_TRANSFER_STATS structures (section 2.2.12.2.3). ZoneTransferStats []*ZoneTransferStats `idl:"name:ZoneTransferStats" json:"zone_transfer_stats"` // ZoneUpdateStats: Information about the zone dynamic update statistics in the DNSSRV_ZONE_UPDATE_STATS // structure (section 2.2.12.2.4). ZoneUpdateStats *ZoneUpdateStats `idl:"name:ZoneUpdateStats" json:"zone_update_stats"` // ZoneRRLStats: Information about the zone RRL statistics in the DNSSRV_ZONE_RRL_STATS // structure (section 2.2.12.2.6). ZoneRRLStats *ZoneRRLStats `idl:"name:ZoneRRLStats" json:"zone_rrl_stats"` }
ZoneStatsV1 structure represents DNS_RPC_ZONE_STATS_V1 RPC structure.
The DNS_RPC_ZONE_STATS_V1 structure SHOULD<84> contain all the statistics about a zone.
func (*ZoneStatsV1) MarshalNDR ¶
func (*ZoneStatsV1) UnmarshalNDR ¶
type ZoneTimeStats ¶
type ZoneTimeStats struct { // StatsCollectionStartTime: The time when zone statistics collection started. StatsCollectionStartTime *SystemTime `idl:"name:StatsCollectionStartTime" json:"stats_collection_start_time"` }
ZoneTimeStats structure represents DNSSRV_ZONE_TIME_STATS RPC structure.
The DNSSRV_ZONE_TIME_STATS structure<80> contains zone time statistics information.
func (*ZoneTimeStats) MarshalNDR ¶
func (*ZoneTimeStats) UnmarshalNDR ¶
type ZoneTransferStats ¶
type ZoneTransferStats struct { // TransferType: The type of zone transfer request for which the query was received. // The value is of type DNS_ZONE_STATS_TYPE (section 2.2.12.1.1). TransferType ZoneStatsType `idl:"name:TransferType" json:"transfer_type"` // RequestReceived: The total number of zone transfer requests received by the server // for a specific zone. RequestReceived uint64 `idl:"name:RequestReceived" json:"request_received"` // RequestSent: The total number of zone transfer requests sent by the server for a // specific zone. RequestSent uint64 `idl:"name:RequestSent" json:"request_sent"` // ResponseReceived: The total number of zone transfer responses received by the server // for a specific zone. ResponseReceived uint64 `idl:"name:ResponseReceived" json:"response_received"` // SuccessReceived: The total number of zone transfer requests received successfully // by the receiver for a specific zone. SuccessReceived uint64 `idl:"name:SuccessReceived" json:"success_received"` // SuccessSent: The total number of zone transfer responses sent by the server for a // specific zone. SuccessSent uint64 `idl:"name:SuccessSent" json:"success_sent"` }
ZoneTransferStats structure represents DNSSRV_ZONE_TRANSFER_STATS RPC structure.
The DNSSRV_ZONE_TRANSFER_STATS structure<82> contains zone transfer statistics per zone.
func (*ZoneTransferStats) MarshalNDR ¶
func (*ZoneTransferStats) UnmarshalNDR ¶
type ZoneUpdateStats ¶
type ZoneUpdateStats struct { // Type: The type of zone update request for which statistics are required. The value // is of type DNS_ZONE_STATS_TYPE (section 2.2.12.1.1). Type ZoneStatsType `idl:"name:Type" json:"type"` // DynamicUpdateReceived: The total number of dynamic updates accepted on a specified // zone. DynamicUpdateReceived uint64 `idl:"name:DynamicUpdateReceived" json:"dynamic_update_received"` // DynamicUpdateRejected: The total number of dynamic updates rejected on a specified // zone. DynamicUpdateRejected uint64 `idl:"name:DynamicUpdateRejected" json:"dynamic_update_rejected"` }
ZoneUpdateStats structure represents DNSSRV_ZONE_UPDATE_STATS RPC structure.
The DNSSRV_ZONE_UPDATE_STATS structure<83> contains statistics about the dynamic updates per zone.
func (*ZoneUpdateStats) MarshalNDR ¶
func (*ZoneUpdateStats) UnmarshalNDR ¶
type ZoneW2K ¶
type ZoneW2K struct { // pszZoneName: A pointer to a null-terminated Unicode string that contains zone-name. ZoneName string `idl:"name:pszZoneName;string" json:"zone_name"` // Flags: Zone flags as specified in section 2.2.5.2.2. Flags uint32 `idl:"name:Flags" json:"flags"` // ZoneType: The zone type. This MUST be set to one of the allowed DNS_ZONE_TYPE section // 2.2.5.1.1. ZoneType uint8 `idl:"name:ZoneType" json:"zone_type"` // Version: The RPC protocol version. It MUST be set to 0x32. Version uint8 `idl:"name:Version" json:"version"` }
ZoneW2K structure represents DNS_RPC_ZONE_W2K RPC structure.
The DNS_RPC_ZONE_W2K structure is used to specify basic information about a DNS zone.
type Zone_NET ¶
type Zone_NET struct { // dwRpcStructureVersion: The DNS management structure version number. This value MUST // be set to 0x00000001. RPCStructureVersion uint32 `idl:"name:dwRpcStructureVersion" json:"rpc_structure_version"` ZoneName string `idl:"name:pszZoneName;string" json:"zone_name"` Flags uint32 `idl:"name:Flags" json:"flags"` ZoneType uint8 `idl:"name:ZoneType" json:"zone_type"` Version uint8 `idl:"name:Version" json:"version"` // dwDpFlags: Application directory partition flags for this zone. This MUST be set // to one of the combination of the DNS_RPC_DP_FLAGS (section 2.2.7.1.1). If this zone // is not stored in the directory server this value MUST be 0x00000000. DPFlags uint32 `idl:"name:dwDpFlags" json:"dp_flags"` // pszDpFqdn: A pointer to a null-terminated UTF-8 string that specifies the FQDN of // the application directory partition in which this zone is stored in the directory // server. If this zone is not stored in the directory server this value MUST be NULL. // // If the DNS RPC client sends an older version of DNS_RPC_ZONE structure, that is, // DNS_RPC_ZONE_W2K (section 2.2.5.2.1.1), then the DNS RPC server MUST construct a // current version of DNS_RPC_ZONE structure, that is, DNS_RPC_ZONE_DOTNET, using the // following steps: // // * // // Copy the same value for fields that are common to input and the current version of // the DNS_RPC_ZONE structures. // // * // // The dwRpcStructureVersion field MUST be set to "1". // // * // // All other fields that are defined only in DNS_RPC_ZONE_DOTNET and are not defined // in DNS_RPC_ZONE (section 2.2.5.2.1 ( f22773ca-bfbf-46a5-8042-fbda1f3c4ad2 ) ), MUST // be set to "0". DPFQDN string `idl:"name:pszDpFqdn;string" json:"dp_fqdn"` // contains filtered or unexported fields }
Zone_NET structure represents DNS_RPC_ZONE_DOTNET RPC structure.
In the DNS_RPC_ZONE_DOTNET structure all fields have same definition as specified in section DNS_RPC_ZONE_W2K (section 2.2.5.2.1.1), with the following exceptions: