forked from mqu/openldap
-
Notifications
You must be signed in to change notification settings - Fork 4
/
README
89 lines (69 loc) · 3.43 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
OpenLDAP binding in GO Language.
INSTALL:
go get github.com/mqu/openldap
DONE :
func Initialize(url string) (*Ldap, error)
func (self *Ldap) Add(dn string, attrs map[string][]string) (error)
func (self *Ldap) Bind(who, cred string) error
func (self *Ldap) Close() error
func (self *Ldap) Unbind() error
func (self *Ldap) Result() (*LdapMessage, error)
func (self *Ldap) Search(base string, scope int, filter string, attributes []string) (*LdapMessage, error)
func (self *Ldap) SearchAll(base string, scope int, filter string, attributes []string) (*LdapSearchResult, error)
func (self *Ldap) Errno() int
func (self *Ldap) SetOption(opt int, val int) error
func (self *Ldap) GetOption(opt int) (val int, err error)
func (self *Ldap) IsThreadSafe() bool
func (self *Ldap) Delete(dn string) (error)
func (self *Ldap) ModifyAdd(dn string, attrs map[string][]string) (error)
func (self *Ldap) ModifyDel(dn string, attrs map[string][]string) (error)
func (self *Ldap) Modify(dn string, attrs map[string][]string) (error)
func (self *Ldap) Rename(dn string, newrdn string, newSuperior string, deleteOld bool) (error)
func (self *LdapMessage) Count() int
func (self *LdapMessage) FirstEntry() *LdapEntry
func (self *LdapMessage) FirstMessage() *LdapMessage
func (self *LdapMessage) GetAll() error
func (self *LdapMessage) MsgFree() int
func (self *LdapMessage) NextMessage() *LdapMessage
func (self *LdapSearchResult) Append(e LdapEntry)
func (self *LdapSearchResult) Attributes() []string
func (self *LdapSearchResult) Base() string
func (self *LdapSearchResult) Count() int
func (self *LdapSearchResult) Entries() []LdapEntry
func (self *LdapSearchResult) Filter() string
func (self *LdapSearchResult) Scope() int
func (self *LdapSearchResult) String() string
func (self *LdapSearchResult) ToText() string
func (self *LdapEntry) Append(a LdapAttribute)
func (self *LdapEntry) Attributes() []LdapAttribute
func (self *LdapEntry) CountEntries() int
func (self *LdapEntry) Dn() string
func (self *LdapEntry) FirstAttribute() (string, error)
func (self *LdapEntry) GetDn() string
func (self *LdapEntry) GetValues(attr string) []string
func (self *LdapEntry) NextAttribute() (string, error)
func (self *LdapEntry) NextEntry() *LdapEntry
func (self *LdapEntry) String() string
func (self *LdapEntry) ToText() string
func (self *LdapAttribute) Name() string
func (self *LdapAttribute) Values() []string
func (self *LdapAttribute) String() string
func (self *LdapAttribute) ToText() string
- to update this list : grep "^func" *.go | sed -e "s#^.*:##" | sort
Defined types :
- Ldap : handles LDAP connexion : Initialize, Bind, Close, Search, SearchAll
- LdapMessage : handles LDAP response from queries : Result, Search,
- LdapEntry : handles LDAP entry responses.
- LdapAttribute : handles LDAP entry responses.
- LdapResult : handle results and operations ()
TODO :
- support binary values ! Search() for "all attributes" will segfault (panic: runtime error: invalid memory address)
on binary attributes.
- thread-safe test
- complete LDAP:GetOption and LDAP:SetOption method : now, they work only for integer values.
- avoid using deprecated function (see LDAP_DEPRECATED flag)
- ...
look at _examples/test-openldap.go to see how to use this library.
LINKS :
- goc : http://code.google.com/p/go-wiki/wiki/cgo (how to bind native libraries to GO)
- Openldap library (and server) : http://www.openldap.org/