diff options
author | Michael Mitton <mmitton@gmail.com> | 2011-02-18 19:19:03 +0100 |
---|---|---|
committer | Michael Mitton <mmitton@gmail.com> | 2011-02-18 19:19:03 +0100 |
commit | 590a6676fd5851f1b6dd184bb47c5557c2b855d8 (patch) | |
tree | ac25dd1b0c3410c2ffc9508aa4cd2bc8d379c10e /ldap.go | |
parent | Fixed error checking (diff) | |
download | ldap-590a6676fd5851f1b6dd184bb47c5557c2b855d8.tar ldap-590a6676fd5851f1b6dd184bb47c5557c2b855d8.tar.gz ldap-590a6676fd5851f1b6dd184bb47c5557c2b855d8.tar.bz2 ldap-590a6676fd5851f1b6dd184bb47c5557c2b855d8.tar.lz ldap-590a6676fd5851f1b6dd184bb47c5557c2b855d8.tar.xz ldap-590a6676fd5851f1b6dd184bb47c5557c2b855d8.tar.zst ldap-590a6676fd5851f1b6dd184bb47c5557c2b855d8.zip |
Diffstat (limited to 'ldap.go')
-rw-r--r-- | ldap.go | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -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 +} |