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 .