From 590a6676fd5851f1b6dd184bb47c5557c2b855d8 Mon Sep 17 00:00:00 2001 From: Michael Mitton Date: Fri, 18 Feb 2011 13:19:03 -0500 Subject: Added getLDAPResultCode function to get result code and description from result packet --- ldap.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'ldap.go') diff --git a/ldap.go b/ldap.go index 22605e3..d331c81 100644 --- a/ldap.go +++ b/ldap.go @@ -289,3 +289,18 @@ func (e *Error) String() string { func NewError( ResultCode uint8, Err os.Error ) (* Error) { return &Error{ ResultCode: ResultCode, Err: Err } } + +func getLDAPResultCode( p *ber.Packet ) ( code uint8, description string ) { + if len( p.Children ) >= 2 { + response := p.Children[ 1 ] + if response.ClassType == ber.ClassApplication && response.TagType == ber.TypeConstructed && len( response.Children ) == 3 { + code = uint8(response.Children[ 0 ].Value.(uint64)) + description = response.Children[ 2 ].Value.(string) + return + } + } + + code = ErrorNetwork + description = "Invalid packet format" + return +} -- cgit v1.2.3