browser

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: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Syntax UUID
	BrowserSyntaxUUID = &uuid.UUID{TimeLow: 0x6bffd098, TimeMid: 0xa112, TimeHiAndVersion: 0x3610, ClockSeqHiAndReserved: 0x98, ClockSeqLow: 0x33, Node: [6]uint8{0x1, 0x28, 0x92, 0x2, 0x1, 0x62}}
	// Syntax ID
	BrowserSyntaxV0_0 = &dcerpc.SyntaxID{IfUUID: BrowserSyntaxUUID, IfVersionMajor: 0, IfVersionMinor: 0}
)
View Source
var (
	// import guard
	GoPackage = "brwsa"
)

Functions

func BrowserServerHandle

func BrowserServerHandle(ctx context.Context, o BrowserServer, opNum int, r ndr.Reader) (dcerpc.Operation, error)

func NewBrowserServerHandle

func NewBrowserServerHandle(o BrowserServer) dcerpc.ServerHandle

func RegisterBrowserServer

func RegisterBrowserServer(conn dcerpc.Conn, o BrowserServer, opts ...dcerpc.Option)

Types

type BrowserClient

type BrowserClient interface {

	// The I_BrowserrQueryOtherDomains method is received by the server in an RPC_REQUEST
	// packet. The client SHOULD NOT send this RPC request to a server that is not a primary
	// domain controller (PDC) acting as the domain master browser server.
	//
	// If this server is not a primary domain controller it MAY fail the request.<3>
	//
	// If the server is a primary domain controller, the server MUST update OtherDomains
	// as specified in [MS-WKST] section 3.2.6.1, WkstaQueryOtherDomains Event. The server
	// MUST construct a SERVER_ENUM structure as specified in 2.2.3.2, containing a SERVER_INFO_100
	// structure as specified in [MS-DTYP] section 2.3.11 for each name in OtherDomains,
	// and return this to the caller.
	//
	// Return Values: The method returns NERR_Success on success; otherwise, it returns
	// a nonzero error code, as specified in either Win32 Error Codes. The most common error
	// codes are listed in the following table.<5>
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 NERR_Success            | The operation completed successfully.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Access is denied.                                                                |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000008 ERROR_NOT_ENOUGH_MEMORY | This value MUST be returned when the server could not allocate enough memory to  |
	//	|                                    | complete this operation.                                                         |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | This value MUST be returned when a parameter is incorrect. For example, this     |
	//	|                                    | value is returned when the InfoStruct parameter is NULL or the Level100 member   |
	//	|                                    | in the structure pointed to by the InfoStruct parameter is NULL.                 |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000007C ERROR_INVALID_LEVEL     | This value MUST be returned when the Level member is not 100.                    |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000000EA ERROR_MORE_DATA         | The error ERROR_MORE_DATA indicates that not all available entries were          |
	//	|                                    | returned. Some more entries exist which were not returned in the response.       |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	QueryOtherDomains(context.Context, *QueryOtherDomainsRequest, ...dcerpc.CallOption) (*QueryOtherDomainsResponse, error)

	// AlterContext alters the client context.
	AlterContext(context.Context, ...dcerpc.Option) error
}

browser interface.

func NewBrowserClient

func NewBrowserClient(ctx context.Context, cc dcerpc.Conn, opts ...dcerpc.Option) (BrowserClient, error)

type BrowserServer

type BrowserServer interface {

	// The I_BrowserrQueryOtherDomains method is received by the server in an RPC_REQUEST
	// packet. The client SHOULD NOT send this RPC request to a server that is not a primary
	// domain controller (PDC) acting as the domain master browser server.
	//
	// If this server is not a primary domain controller it MAY fail the request.<3>
	//
	// If the server is a primary domain controller, the server MUST update OtherDomains
	// as specified in [MS-WKST] section 3.2.6.1, WkstaQueryOtherDomains Event. The server
	// MUST construct a SERVER_ENUM structure as specified in 2.2.3.2, containing a SERVER_INFO_100
	// structure as specified in [MS-DTYP] section 2.3.11 for each name in OtherDomains,
	// and return this to the caller.
	//
	// Return Values: The method returns NERR_Success on success; otherwise, it returns
	// a nonzero error code, as specified in either Win32 Error Codes. The most common error
	// codes are listed in the following table.<5>
	//
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	|               RETURN               |                                                                                  |
	//	|             VALUE/CODE             |                                   DESCRIPTION                                    |
	//	|                                    |                                                                                  |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000000 NERR_Success            | The operation completed successfully.                                            |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000005 ERROR_ACCESS_DENIED     | Access is denied.                                                                |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000008 ERROR_NOT_ENOUGH_MEMORY | This value MUST be returned when the server could not allocate enough memory to  |
	//	|                                    | complete this operation.                                                         |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x00000057 ERROR_INVALID_PARAMETER | This value MUST be returned when a parameter is incorrect. For example, this     |
	//	|                                    | value is returned when the InfoStruct parameter is NULL or the Level100 member   |
	//	|                                    | in the structure pointed to by the InfoStruct parameter is NULL.                 |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x0000007C ERROR_INVALID_LEVEL     | This value MUST be returned when the Level member is not 100.                    |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	//	| 0x000000EA ERROR_MORE_DATA         | The error ERROR_MORE_DATA indicates that not all available entries were          |
	//	|                                    | returned. Some more entries exist which were not returned in the response.       |
	//	+------------------------------------+----------------------------------------------------------------------------------+
	QueryOtherDomains(context.Context, *QueryOtherDomainsRequest) (*QueryOtherDomainsResponse, error)
}

browser server interface.

type QueryOtherDomainsRequest

type QueryOtherDomainsRequest struct {
	// ServerName: An optional BROWSER_IDENTIFY_HANDLE structure that specifies the name
	// of the server to execute the method. This value is ignored upon receipt.
	ServerName string `idl:"name:ServerName;string;pointer:unique" json:"server_name"`
	// InfoStruct: A pointer to a SERVER_ENUM_STRUCT structure that contains the Level member
	// and a pointer to a SERVER_INFO_x structure, where <x> MUST be 100. The Level member
	// MUST be set to 100. If the Level member is set to any other value, the method MUST
	// return ERROR_INVALID_LEVEL.<4>
	Info *ServerEnum `idl:"name:InfoStruct" json:"info"`
}

QueryOtherDomainsRequest structure represents the I_BrowserrQueryOtherDomains operation request

func (*QueryOtherDomainsRequest) MarshalNDR

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

func (*QueryOtherDomainsRequest) UnmarshalNDR

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

type QueryOtherDomainsResponse

type QueryOtherDomainsResponse struct {
	// InfoStruct: A pointer to a SERVER_ENUM_STRUCT structure that contains the Level member
	// and a pointer to a SERVER_INFO_x structure, where <x> MUST be 100. The Level member
	// MUST be set to 100. If the Level member is set to any other value, the method MUST
	// return ERROR_INVALID_LEVEL.<4>
	Info *ServerEnum `idl:"name:InfoStruct" json:"info"`
	// TotalEntries: The number of entries returned by the method call. This parameter MUST
	// match the EntriesRead member of the SERVER_INFO_100_CONTAINER structure.
	TotalEntries uint32 `idl:"name:TotalEntries" json:"total_entries"`
	// Return: The I_BrowserrQueryOtherDomains return value.
	Return uint32 `idl:"name:Return" json:"return"`
}

QueryOtherDomainsResponse structure represents the I_BrowserrQueryOtherDomains operation response

func (*QueryOtherDomainsResponse) MarshalNDR

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

func (*QueryOtherDomainsResponse) UnmarshalNDR

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

type ServerEnum

type ServerEnum struct {
	// Level:  The information level of the data. This member MUST be 100.
	Level uint32 `idl:"name:Level" json:"level"`
	// ServerInfo:  A structure that contains an array of data structures. The Level member
	// determines the data type of the members of this array.
	ServerInfo *ServerEnum_ServerInfo `idl:"name:ServerInfo;switch_is:Level" json:"server_info"`
}

ServerEnum structure represents SERVER_ENUM_STRUCT RPC structure.

The SERVER_ENUM_STRUCT structure defines the layout for a structure with a value to indicate the information level submitted to the method and a pointer to a data structure that contains an array of data structures returned by the method. This structure is used by I_BrowserrQueryOtherDomains.

func (*ServerEnum) MarshalNDR

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

func (*ServerEnum) UnmarshalNDR

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

type ServerEnum_ServerInfo

type ServerEnum_ServerInfo struct {
	// Types that are assignable to Value
	//
	// *ServerInfo_Level100
	// *ServerInfo_DefaultServerEnum
	Value is_ServerEnum_ServerInfo `json:"value"`
}

ServerEnum_ServerInfo structure represents SERVER_ENUM_STRUCT union anonymous member.

The SERVER_ENUM_STRUCT structure defines the layout for a structure with a value to indicate the information level submitted to the method and a pointer to a data structure that contains an array of data structures returned by the method. This structure is used by I_BrowserrQueryOtherDomains.

func (*ServerEnum_ServerInfo) GetValue

func (o *ServerEnum_ServerInfo) GetValue() any

func (*ServerEnum_ServerInfo) MarshalUnionNDR

func (o *ServerEnum_ServerInfo) MarshalUnionNDR(ctx context.Context, w ndr.Writer, sw uint32) error

func (*ServerEnum_ServerInfo) NDRSwitchValue

func (o *ServerEnum_ServerInfo) NDRSwitchValue(sw uint32) uint32

func (*ServerEnum_ServerInfo) UnmarshalUnionNDR

func (o *ServerEnum_ServerInfo) UnmarshalUnionNDR(ctx context.Context, w ndr.Reader, sw uint32) error

type ServerInfo100Container

type ServerInfo100Container struct {
	// EntriesRead:  The number of entries returned by the method call. This value MUST
	// be zero if no domains are configured in the primary domain controller or domain controller.
	// The client SHOULD set the EntriesRead field to 0, and the Buffer field to NULL, and
	// the server MUST ignore these fields.
	EntriesRead uint32 `idl:"name:EntriesRead" json:"entries_read"`
	// Buffer:  A pointer to an array of SERVER_INFO_100 data structures (as specified in
	// [MS-DTYP] section 2.3.11). If EntriesRead is zero, this field is undefined and MUST
	// NOT be considered a valid pointer.
	Buffer []*dtyp.ServerInfo100 `idl:"name:Buffer;size_is:(EntriesRead)" json:"buffer"`
}

ServerInfo100Container structure represents SERVER_INFO_100_CONTAINER RPC structure.

The SERVER_INFO_100_CONTAINER structure contains a count of the entries returned by the method and a pointer to a buffer.

func (*ServerInfo100Container) MarshalNDR

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

func (*ServerInfo100Container) UnmarshalNDR

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

type ServerInfo_DefaultServerEnum

type ServerInfo_DefaultServerEnum struct {
}

ServerInfo_DefaultServerEnum structure represents ServerEnum_ServerInfo RPC default union arm.

func (*ServerInfo_DefaultServerEnum) MarshalNDR

func (*ServerInfo_DefaultServerEnum) UnmarshalNDR

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

type ServerInfo_Level100

type ServerInfo_Level100 struct {
	// Level100:  A pointer to a SERVER_INFO_100_CONTAINER structure that contains the number
	// of entries returned by the method and a pointer to an array of SERVER_INFO_100 structures
	// (as specified in [MS-DTYP] section 2.3.11).
	Level100 *ServerInfo100Container `idl:"name:Level100" json:"level100"`
}

ServerInfo_Level100 structure represents ServerEnum_ServerInfo RPC union arm.

It has following labels: 100

func (*ServerInfo_Level100) MarshalNDR

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

func (*ServerInfo_Level100) UnmarshalNDR

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

Jump to

Keyboard shortcuts

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