summaryrefslogtreecommitdiffstats
path: root/bind.go
diff options
context:
space:
mode:
authortmfkams <tmfkams@gmail.com>2014-01-19 23:04:16 +0100
committerSamuel Stauffer <samuel@descolada.com>2014-03-19 21:57:58 +0100
commite45f83457931e08f9f6d5aec48f51fd390a01eb8 (patch)
treed95a79f94932115bf5c0441f2eeb520959bbda0d /bind.go
parentMerge pull request #4 from bollenberger/master (diff)
downloadldap-e45f83457931e08f9f6d5aec48f51fd390a01eb8.tar
ldap-e45f83457931e08f9f6d5aec48f51fd390a01eb8.tar.gz
ldap-e45f83457931e08f9f6d5aec48f51fd390a01eb8.tar.bz2
ldap-e45f83457931e08f9f6d5aec48f51fd390a01eb8.tar.lz
ldap-e45f83457931e08f9f6d5aec48f51fd390a01eb8.tar.xz
ldap-e45f83457931e08f9f6d5aec48f51fd390a01eb8.tar.zst
ldap-e45f83457931e08f9f6d5aec48f51fd390a01eb8.zip
Diffstat (limited to 'bind.go')
-rw-r--r--bind.go88
1 files changed, 44 insertions, 44 deletions
diff --git a/bind.go b/bind.go
index b941f0c..30bc83f 100644
--- a/bind.go
+++ b/bind.go
@@ -6,50 +6,50 @@
package ldap
import (
- "github.com/mmitton/asn1-ber"
- "os"
+ "errors"
+ "github.com/tmfkams/asn1-ber"
)
-func (l *Conn) Bind( username, password string ) *Error {
- messageID := l.nextMessageID()
-
- packet := ber.Encode( ber.ClassUniversal, ber.TypeConstructed, ber.TagSequence, nil, "LDAP Request" )
- packet.AppendChild( ber.NewInteger( ber.ClassUniversal, ber.TypePrimative, ber.TagInteger, messageID, "MessageID" ) )
- bindRequest := ber.Encode( ber.ClassApplication, ber.TypeConstructed, ApplicationBindRequest, nil, "Bind Request" )
- bindRequest.AppendChild( ber.NewInteger( ber.ClassUniversal, ber.TypePrimative, ber.TagInteger, 3, "Version" ) )
- bindRequest.AppendChild( ber.NewString( ber.ClassUniversal, ber.TypePrimative, ber.TagOctetString, username, "User Name" ) )
- bindRequest.AppendChild( ber.NewString( ber.ClassContext, ber.TypePrimative, 0, password, "Password" ) )
- packet.AppendChild( bindRequest )
-
- if l.Debug {
- ber.PrintPacket( packet )
- }
-
- channel, err := l.sendMessage( packet )
- if err != nil {
- return err
- }
- if channel == nil {
- return NewError( ErrorNetwork, os.NewError( "Could not send message" ) )
- }
- defer l.finishMessage( messageID )
- packet = <-channel
-
- if packet == nil {
- return NewError( ErrorNetwork, os.NewError( "Could not retrieve response" ) )
- }
-
- if l.Debug {
- if err := addLDAPDescriptions( packet ); err != nil {
- return NewError( ErrorDebugging, err )
- }
- ber.PrintPacket( packet )
- }
-
- result_code, result_description := getLDAPResultCode( packet )
- if result_code != 0 {
- return NewError( result_code, os.NewError( result_description ) )
- }
-
- return nil
+func (l *Conn) Bind(username, password string) *Error {
+ messageID := l.nextMessageID()
+
+ packet := ber.Encode(ber.ClassUniversal, ber.TypeConstructed, ber.TagSequence, nil, "LDAP Request")
+ packet.AppendChild(ber.NewInteger(ber.ClassUniversal, ber.TypePrimative, ber.TagInteger, messageID, "MessageID"))
+ bindRequest := ber.Encode(ber.ClassApplication, ber.TypeConstructed, ApplicationBindRequest, nil, "Bind Request")
+ bindRequest.AppendChild(ber.NewInteger(ber.ClassUniversal, ber.TypePrimative, ber.TagInteger, 3, "Version"))
+ bindRequest.AppendChild(ber.NewString(ber.ClassUniversal, ber.TypePrimative, ber.TagOctetString, username, "User Name"))
+ bindRequest.AppendChild(ber.NewString(ber.ClassContext, ber.TypePrimative, 0, password, "Password"))
+ packet.AppendChild(bindRequest)
+
+ if l.Debug {
+ ber.PrintPacket(packet)
+ }
+
+ channel, err := l.sendMessage(packet)
+ if err != nil {
+ return err
+ }
+ if channel == nil {
+ return NewError(ErrorNetwork, errors.New("Could not send message"))
+ }
+ defer l.finishMessage(messageID)
+ packet = <-channel
+
+ if packet == nil {
+ return NewError(ErrorNetwork, errors.New("Could not retrieve response"))
+ }
+
+ if l.Debug {
+ if err := addLDAPDescriptions(packet); err != nil {
+ return NewError(ErrorDebugging, err.Err)
+ }
+ ber.PrintPacket(packet)
+ }
+
+ result_code, result_description := getLDAPResultCode(packet)
+ if result_code != 0 {
+ return NewError(result_code, errors.New(result_description))
+ }
+
+ return nil
}