package pac
import (
"bytes"
"github.com/jcmturner/rpc/v2/mstypes"
)
type UPNDNSInfo struct {
UPNLength uint16
UPNOffset uint16
DNSDomainNameLength uint16
DNSDomainNameOffset uint16
Flags uint32
UPN string
DNSDomain string
}
const (
upnNoUPNAttr = 31
)
func (k *UPNDNSInfo ) Unmarshal (b []byte ) (err error ) {
r := mstypes .NewReader (bytes .NewReader (b ))
k .UPNLength , err = r .Uint16 ()
if err != nil {
return
}
k .UPNOffset , err = r .Uint16 ()
if err != nil {
return
}
k .DNSDomainNameLength , err = r .Uint16 ()
if err != nil {
return
}
k .DNSDomainNameOffset , err = r .Uint16 ()
if err != nil {
return
}
k .Flags , err = r .Uint32 ()
if err != nil {
return
}
ub := mstypes .NewReader (bytes .NewReader (b [k .UPNOffset : k .UPNOffset +k .UPNLength ]))
db := mstypes .NewReader (bytes .NewReader (b [k .DNSDomainNameOffset : k .DNSDomainNameOffset +k .DNSDomainNameLength ]))
u := make ([]rune , k .UPNLength /2 , k .UPNLength /2 )
for i := 0 ; i < len (u ); i ++ {
var r uint16
r , err = ub .Uint16 ()
if err != nil {
return
}
u [i ] = rune (r )
}
k .UPN = string (u )
d := make ([]rune , k .DNSDomainNameLength /2 , k .DNSDomainNameLength /2 )
for i := 0 ; i < len (d ); i ++ {
var r uint16
r , err = db .Uint16 ()
if err != nil {
return
}
d [i ] = rune (r )
}
k .DNSDomain = string (d )
return
}
The pages are generated with Golds v0.6.7 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds .