-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathoptions.go
34 lines (29 loc) · 819 Bytes
/
options.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package dcom
import (
dcerpc "github.com/oiweiwei/go-msrpc/dcerpc"
dtyp "github.com/oiweiwei/go-msrpc/msrpc/dtyp"
)
// Superclass option is an alias of the dcerpc.WithNoBind option.
func Superclass(cc dcerpc.Conn) dcerpc.Option {
return dcerpc.WithNoBind(cc)
}
// IsSuperclass option is an alias of the dcerpc.HasNoBind
// function.
func IsSuperclass(opts any) bool {
_, ok := dcerpc.HasNoBind(opts)
return ok
}
// WithIPID option returns the ObjectUUIDOption.
func WithIPID(ipid *IPID) dcerpc.ObjectUUIDOption {
if ipid == nil {
ipid = &IPID{}
}
return dcerpc.WithObjectUUID(ipid.UUID())
}
// HasIPID function returns the ObjectUUID casted to IPID.
func HasIPID(opts any) (*IPID, bool) {
if u, ok := dcerpc.HasObjectUUID(opts); ok {
return (*IPID)(dtyp.GUIDFromUUID(u)), true
}
return nil, false
}