rpcl

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

The rpcl package implements the RPCL client protocol.

Introduction

The Remote Procedure Call Location Services Extensions is a legacy protocol that has been deprecated and is not used by Microsoft. Implementers should use the DCE-based RPC Location Services capabilities in [C706].

The Remote Procedure Call Location Services Extensions is a set of extensions/restrictions to the distributed computing environment (DCE) remote procedure call (RPC) Location Services specified in [C706]. These extensions add new capabilities to the DCE RPC Location Services Protocol.

This document specifies a set of extensions and restrictions to the DCE RPC Location Services specification as specified in [C706].

Overview

This specification extends the DCE RPC Location Services specification defined in the section "Name Service Interface" in Part 2 of [C706]. These extensions add new capabilities to the DCE RPC Location Services Protocol and, in some cases, place additional restrictions upon it. This specification adheres to the abstract data model as specified in [C706] Part 2, but an implementation of this specification will not interoperate with an implementation of [C706] Part 2.

This document refers to the Windows implementation of the DCE RPC Location services protocol as "LocToLoc".

This document includes the following:

* An extension to provide RPC Location Services functionality in an environment where a centrally accessible directory service like Active Directory ( 55ec267c-87d9-4d97-a9d5-5681f5f283b8#gt_e467d927-17bf-49c9-98d1-96ddf61ddd90 ) directory service is not available. For more details, see Nondirectory mode in section 1.3.2 ( dab3af12-2796-4ddf-8313-acba3e7e0dc7 ).

* An extension defining the implementation of the RPC Location Services specification in an Active Directory environment. For more details, see Directory-only mode in section 1.3.2.

* An extension enabling interoperable RPC Location Service functionality between locators running outside an Active Directory environment, and locators running inside an Active Directory environment. For more details, see Directory mode in section 1.3.2.

* An extension of the syntax for name service entries ( 55ec267c-87d9-4d97-a9d5-5681f5f283b8#gt_6cfe4abe-94bd-43b6-b666-3618d9093373 ) to include a domain ( 55ec267c-87d9-4d97-a9d5-5681f5f283b8#gt_b0276eb2-4e65-4cf1-a718-e0920a614aca ) name. For more details, see section 2.2.2 ( 99becf64-89ed-4bd8-adf0-470add859d15 ).

* A restriction requiring profile, group, and server attributes to be defined on separate name service entries. These attributes are as specified in section "Name Service Attributes" in [C706]. For more details, see section 1.3.3 ( e4d192da-2bf6-4649-9f9d-2b85531f614a ).

* A restriction requiring clients to be members of an Active Directory domain to support persistently storing exported name service entries. For more details, see section 1.3.2.

* A restriction requiring clients to be members of an Active Directory domain to support profile and group attributes. For more details, see sections 3.2.1 ( 0e5a2e72-15b0-427f-98c7-52da389e734e ) , 3.3.3 ( b265805b-4609-4087-a8eb-e583116a912c ).

Index

Constants

This section is empty.

Variables

View Source
var (
	// import guard
	GoPackage = "rpcl"
)

Functions

This section is empty.

Types

type Binding

type Binding struct {
	// string:  A Unicode [UNICODE] string that contains a string binding. For more information,
	// see section "String Bindings" in [C706] Part 2.
	String string `idl:"name:string" json:"string"`
	// entry_name_syntax:  An unsigned 32-bit integer specifying the syntax of the entry_name
	// field. This value MUST be RPC_C_NS_SYNTAX_DCE.
	EntryNameSyntax uint32 `idl:"name:entry_name_syntax" json:"entry_name_syntax"`
	// entry_name:  A Unicode [UNICODE] string specifying the entry name of the name service
	// entry, using the syntax identified by the entry_name_syntax parameter as specified
	// in section 2.2.2.
	EntryName string `idl:"name:entry_name" json:"entry_name"`
}

Binding structure represents NSI_BINDING_T RPC structure.

The NSI_BINDING_T type defines an association of a binding with a server entry.

func (*Binding) MarshalNDR

func (o *Binding) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Binding) UnmarshalNDR

func (o *Binding) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type BindingVector

type BindingVector struct {
	// count:  MUST specify the number of NSI_BINDING_T elements in the binding array.
	Count uint32 `idl:"name:count" json:"count"`
	// binding:  An array of binding information entries.
	Binding []*Binding `idl:"name:binding;size_is:(count)" json:"binding"`
}

BindingVector structure represents NSI_BINDING_VECTOR_T RPC structure.

The NSI_BINDING_VECTOR_T type is defined to hold an array of binding information entries.

func (*BindingVector) MarshalNDR

func (o *BindingVector) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*BindingVector) NDRSizeInfo

func (o *BindingVector) NDRSizeInfo() []uint64

func (*BindingVector) UnmarshalNDR

func (o *BindingVector) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Context

type Context dcetypes.ContextHandle

Context structure represents NSI_NS_HANDLE_T RPC structure.

func (*Context) ContextHandle

func (o *Context) ContextHandle() *dcetypes.ContextHandle

func (*Context) MarshalNDR

func (o *Context) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Context) UnmarshalNDR

func (o *Context) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type SyntaxID

type SyntaxID struct {
	// SyntaxGUID (16 bytes): As specified in [MS-RPCE] section 2.2.2.7.
	SyntaxGUID    *dtyp.GUID `idl:"name:SyntaxGUID" json:"syntax_guid"`
	SyntaxVersion *Version   `idl:"name:SyntaxVersion" json:"syntax_version"`
}

SyntaxID structure represents RPC_SYNTAX_IDENTIFIER RPC structure.

This structure MUST contain a GUID and version information ([MS-RPCE] section 2.2.2.7). It is identical to the RPC_SYNTAX_IDENTIFIER structure used in the LocToLoc interface in section 3.1.4. This structure is used to represent the following:

* Identifier and version of an interface.

* Identifier and version of transfer syntax ( 55ec267c-87d9-4d97-a9d5-5681f5f283b8#gt_01216ea7-ac8a-4cc8-9d19-b901bc424c09 ) for an interface.

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 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 |   |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| SyntaxGUID (16 bytes)                                                                                                         |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| ...                                                                                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| SyntaxVersion.MajorVersion                                    | SyntaxVersion.MinorVersion                                    |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

func (*SyntaxID) MarshalNDR

func (o *SyntaxID) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*SyntaxID) UnmarshalNDR

func (o *SyntaxID) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type UUIDVector

type UUIDVector struct {
	// count:  MUST specify the number of NSI_UUID_P_T elements in the uuid member.
	Count uint32 `idl:"name:count" json:"count"`
	// uuid:  An array of NSI_UUID_P_T entries.
	UUID []*dtyp.GUID `idl:"name:uuid;size_is:(count)" json:"uuid"`
}

UUIDVector structure represents NSI_UUID_VECTOR_T RPC structure.

The NSI_UUID_VECTOR_T type defines an array of NSI_UUID_P_T structures.

func (*UUIDVector) MarshalNDR

func (o *UUIDVector) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*UUIDVector) NDRSizeInfo

func (o *UUIDVector) NDRSizeInfo() []uint64

func (*UUIDVector) UnmarshalNDR

func (o *UUIDVector) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

type Version

type Version struct {
	MajorVersion uint16 `idl:"name:MajorVersion" json:"major_version"`
	MinorVersion uint16 `idl:"name:MinorVersion" json:"minor_version"`
}

Version structure represents RPC_VERSION RPC structure.

func (*Version) MarshalNDR

func (o *Version) MarshalNDR(ctx context.Context, w ndr.Writer) error

func (*Version) UnmarshalNDR

func (o *Version) UnmarshalNDR(ctx context.Context, w ndr.Reader) error

Directories

Path Synopsis
loctoloc
v1

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL