Generated from Manticore v1.1.6 • 388 packages. View on pkg.go.dev

rpcinterface_50abc2a4574d40b39d66ee4fd5fba076_5_0

import "github.com/TheManticoreProject/Manticore/network/dcerpc/interfaces/50abc2a4-574d-40b3-9d66-ee4fd5fba076/5.0"

Package rpcinterface_50abc2a4574d40b39d66ee4fd5fba076_5_0 is the descriptor for the DnsServer RPC interface, abstract syntax 50abc2a4-574d-40b3-9d66-ee4fd5fba076 version 5.0 ([MS-DNSP]).

Generated by tools/idlgen (descriptor phase) from the IDL, then reviewed: the PipeName, the status-code table, and doc comments are not derivable from the IDL and must be confirmed by hand (see the TODO markers).

Index

Constants

Opnums for the on-the-wire methods.

const (
    OpnumR_DnssrvOperation         uint16 = 0
    OpnumR_DnssrvQuery             uint16 = 1
    OpnumR_DnssrvComplexOperation  uint16 = 2
    OpnumR_DnssrvEnumRecords       uint16 = 3
    OpnumR_DnssrvUpdateRecord      uint16 = 4
    OpnumR_DnssrvOperation2        uint16 = 5
    OpnumR_DnssrvQuery2            uint16 = 6
    OpnumR_DnssrvComplexOperation2 uint16 = 7
    OpnumR_DnssrvEnumRecords2      uint16 = 8
    OpnumR_DnssrvUpdateRecord2     uint16 = 9
    OpnumR_DnssrvUpdateRecord3     uint16 = 10
    OpnumR_DnssrvEnumRecords3      uint16 = 11
    OpnumR_DnssrvOperation3        uint16 = 12
    OpnumR_DnssrvQuery3            uint16 = 13
    OpnumR_DnssrvComplexOperation3 uint16 = 14
    OpnumR_DnssrvOperation4        uint16 = 15
    OpnumR_DnssrvQuery4            uint16 = 16
    OpnumR_DnssrvUpdateRecord4     uint16 = 17
    OpnumR_DnssrvEnumRecords4      uint16 = 18
)

Status codes. Every method returns a LONG that is a Win32 error code ([MS-ERREF] section 2.2), with success being ERROR_SUCCESS (0). The DNS-specific codes live in the 0x000023xx (9000+) range ([MS-ERREF] section 2.2 and [MS-DNSP]). This is a representative subset; StatusString falls back to the raw hex for the rest.

const (
    StatusSuccess uint32 = 0x00000000 // ERROR_SUCCESS

    ErrorAccessDenied     uint32 = 0x00000005 // ERROR_ACCESS_DENIED (5)
    ErrorNotSupported     uint32 = 0x00000032 // ERROR_NOT_SUPPORTED (50)
    ErrorInvalidParameter uint32 = 0x00000057 // ERROR_INVALID_PARAMETER (87)

    DnsErrorRcodeFormatError    uint32 = 0x00002329 // DNS_ERROR_RCODE_FORMAT_ERROR (9001)
    DnsErrorRcodeServerFailure  uint32 = 0x0000232a // DNS_ERROR_RCODE_SERVER_FAILURE (9002)
    DnsErrorRcodeNameError      uint32 = 0x0000232b // DNS_ERROR_RCODE_NAME_ERROR (9003)
    DnsErrorRcodeNotImplemented uint32 = 0x0000232c // DNS_ERROR_RCODE_NOT_IMPLEMENTED (9004)
    DnsErrorRcodeRefused        uint32 = 0x0000232d // DNS_ERROR_RCODE_REFUSED (9005)

    DnsErrorInvalidType        uint32 = 0x0000254f // DNS_ERROR_INVALID_TYPE (9551)
    DnsErrorInvalidIPAddress   uint32 = 0x00002550 // DNS_ERROR_INVALID_IP_ADDRESS (9552)
    DnsErrorZoneDoesNotExist   uint32 = 0x00002581 // DNS_ERROR_ZONE_DOES_NOT_EXIST (9601)
    DnsErrorNoZoneInfo         uint32 = 0x00002582 // DNS_ERROR_NO_ZONE_INFO (9602)
    DnsErrorInvalidZoneOp      uint32 = 0x00002583 // DNS_ERROR_INVALID_ZONE_OPERATION (9603)
    DnsErrorZoneConfigError    uint32 = 0x00002584 // DNS_ERROR_ZONE_CONFIGURATION_ERROR (9604)
    DnsErrorZoneAlreadyExists  uint32 = 0x00002589 // DNS_ERROR_ZONE_ALREADY_EXISTS (9609)
    DnsErrorInvalidZoneType    uint32 = 0x0000258b // DNS_ERROR_INVALID_ZONE_TYPE (9611)
    DnsErrorRecordDoesNotExist uint32 = 0x000025e5 // DNS_ERROR_RECORD_DOES_NOT_EXIST (9701)
    DnsErrorRecordAlreadyExist uint32 = 0x000025ef // DNS_ERROR_RECORD_ALREADY_EXISTS (9711)
    DnsErrorNameDoesNotExist   uint32 = 0x000025f2 // DNS_ERROR_NAME_DOES_NOT_EXIST (9714)
    DnsErrorDsUnavailable      uint32 = 0x000025f5 // DNS_ERROR_DS_UNAVAILABLE (9717)
    DnsErrorDpDoesNotExist     uint32 = 0x000026ad // DNS_ERROR_DP_DOES_NOT_EXIST (9901)
    DnsErrorDpAlreadyExists    uint32 = 0x000026ae // DNS_ERROR_DP_ALREADY_EXISTS (9902)
)

PipeName is the IPC$-relative named pipe for the DnsServer interface. All implementations MUST support ncacn_ip_tcp with dynamic endpoints; ncacn_np over \PIPE\DNSSERVER is optional ([MS-DNSP] section 2.1 Transport).

const PipeName = `\DNSSERVER`

Variables

NameToOpnum is the reverse of OpnumToName, built at init so the two never drift.

var NameToOpnum = func() map[string]uint16 {
    m := make(map[string]uint16, len(OpnumToName))
    for op, name := range OpnumToName {
        m[name] = op
    }
    return m
}()

OpnumToName maps each on-the-wire opnum to its method name; the single source of truth.

var OpnumToName = map[uint16]string{
    OpnumR_DnssrvOperation:         "R_DnssrvOperation",
    OpnumR_DnssrvQuery:             "R_DnssrvQuery",
    OpnumR_DnssrvComplexOperation:  "R_DnssrvComplexOperation",
    OpnumR_DnssrvEnumRecords:       "R_DnssrvEnumRecords",
    OpnumR_DnssrvUpdateRecord:      "R_DnssrvUpdateRecord",
    OpnumR_DnssrvOperation2:        "R_DnssrvOperation2",
    OpnumR_DnssrvQuery2:            "R_DnssrvQuery2",
    OpnumR_DnssrvComplexOperation2: "R_DnssrvComplexOperation2",
    OpnumR_DnssrvEnumRecords2:      "R_DnssrvEnumRecords2",
    OpnumR_DnssrvUpdateRecord2:     "R_DnssrvUpdateRecord2",
    OpnumR_DnssrvUpdateRecord3:     "R_DnssrvUpdateRecord3",
    OpnumR_DnssrvEnumRecords3:      "R_DnssrvEnumRecords3",
    OpnumR_DnssrvOperation3:        "R_DnssrvOperation3",
    OpnumR_DnssrvQuery3:            "R_DnssrvQuery3",
    OpnumR_DnssrvComplexOperation3: "R_DnssrvComplexOperation3",
    OpnumR_DnssrvOperation4:        "R_DnssrvOperation4",
    OpnumR_DnssrvQuery4:            "R_DnssrvQuery4",
    OpnumR_DnssrvUpdateRecord4:     "R_DnssrvUpdateRecord4",
    OpnumR_DnssrvEnumRecords4:      "R_DnssrvEnumRecords4",
}

func StatusString

func StatusString(status uint32) string

StatusString returns a mnemonic for the documented status codes, otherwise the hex value.

func SyntaxID

func SyntaxID() syntax.SyntaxID

SyntaxID returns the DnsServer abstract syntax identifier: 50abc2a4-574d-40b3-9d66-ee4fd5fba076, version 5.0.

Subpackages