diff options
| author | Michael Mitton <[email protected]> | 2011-02-18 13:19:03 -0500 |
|---|---|---|
| committer | Michael Mitton <[email protected]> | 2011-02-18 13:19:03 -0500 |
| commit | 590a6676fd5851f1b6dd184bb47c5557c2b855d8 (patch) | |
| tree | ac25dd1b0c3410c2ffc9508aa4cd2bc8d379c10e /ldap.go | |
| parent | d1c9906e5f9291adbc5f52591d8d89acca201adb (diff) | |
Added getLDAPResultCode function to get result code and description from result packet
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 +} |
