ruby-ldap 0.9.19 → 0.9.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -7
- data/ChangeLog +4 -0
- data/NOTES +6 -0
- data/conn.c +3 -0
- data/ldap.c +3 -0
- data/rbldap.h +2 -2
- data/test/bind-ldaps.rb +1 -1
- data/test/bind-ssl.rb +1 -1
- data/test/bind.rb +1 -1
- data/test/compare.rb +1 -1
- data/test/ext.rb +9 -9
- data/test/modrdn.rb +2 -2
- data/test/moz_cert.rb +15 -15
- data/test/search.rb +2 -2
- data/test/search2.rb +2 -2
- data/test/search3.rb +1 -1
- data/test/setup.rb +3 -3
- data/test/tc_conn.rb +0 -1
- data/test/tc_ldif.rb +4 -4
- data/test/tc_search.rb +18 -18
- metadata +33 -51
- data/test/openldap_tests/progs/ldif-filter.c +0 -256
- data/test/openldap_tests/progs/slapd-addel.c +0 -435
- data/test/openldap_tests/progs/slapd-auth.c +0 -335
- data/test/openldap_tests/progs/slapd-bind.c +0 -609
- data/test/openldap_tests/progs/slapd-common.c +0 -300
- data/test/openldap_tests/progs/slapd-common.h +0 -44
- data/test/openldap_tests/progs/slapd-modify.c +0 -318
- data/test/openldap_tests/progs/slapd-modrdn.c +0 -310
- data/test/openldap_tests/progs/slapd-mtread.c +0 -837
- data/test/openldap_tests/progs/slapd-read.c +0 -568
- data/test/openldap_tests/progs/slapd-search.c +0 -618
- data/test/openldap_tests/progs/slapd-tester.c +0 -1197
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
5
|
-
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d5badae0624830b9ac31009f196e4ed1887ec6fe
|
4
|
+
data.tar.gz: 2fc2844279fa77ca3fe2bfadd73c65a3bceff6eb
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e4f59c4377592ddc1dac85e2292fb2930003e4c759c877f5b8ffe4c25f85911a0c61b10fcc041dfc5756e063ee75e3bc38dfa0899da9e3e317a55bdb49223238
|
7
|
+
data.tar.gz: cc58c3fc9734d0fd52c5b6bbc7aa7c22ffa335bc9e6d7a562bbe24eab8f48e4572fe0e32dbbbc2898323004ff9e925be488eea5291dcdadaa97a7a161c4035d0
|
data/ChangeLog
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
Wed Jul 11 21:58:38 UTC 2018 Alexey Chebotar <alexey.chebotar@gmail.com>
|
2
|
+
* Version 0.9.20
|
3
|
+
* Added support of LDAP_OPT_X_TLS_NEWCTX. Thanks to Kouhei Sutou.
|
4
|
+
|
1
5
|
Mon Jun 20 14:30:52 UTC 2016 Alexey Chebotar <alexey.chebotar@gmail.com>
|
2
6
|
* Version 0.9.19
|
3
7
|
* Fixed parsing of LDIF with CR LF line separators (GH-38).
|
data/NOTES
CHANGED
data/conn.c
CHANGED
@@ -502,6 +502,9 @@ rb_ldap_conn_set_option (VALUE self, VALUE opt, VALUE data)
|
|
502
502
|
#ifdef LDAP_OPT_X_TLS_REQUIRE_CERT
|
503
503
|
case LDAP_OPT_X_TLS_REQUIRE_CERT:
|
504
504
|
#endif
|
505
|
+
#ifdef LDAP_OPT_X_TLS_NEWCTX
|
506
|
+
case LDAP_OPT_X_TLS_NEWCTX:
|
507
|
+
#endif
|
505
508
|
#endif
|
506
509
|
idata = NUM2INT (data);
|
507
510
|
optdata = &idata;
|
data/ldap.c
CHANGED
@@ -496,6 +496,9 @@ Init_ldap ()
|
|
496
496
|
#ifdef LDAP_OPT_X_TLS_RANDOM_FILE
|
497
497
|
rb_ldap_define_opt (LDAP_OPT_X_TLS_RANDOM_FILE);
|
498
498
|
#endif
|
499
|
+
#ifdef LDAP_OPT_X_TLS_NEWCTX
|
500
|
+
rb_ldap_define_opt (LDAP_OPT_X_TLS_NEWCTX);
|
501
|
+
#endif
|
499
502
|
#ifdef LDAP_OPT_X_TLS_NEVER
|
500
503
|
rb_ldap_define_opt (LDAP_OPT_X_TLS_NEVER);
|
501
504
|
#endif
|
data/rbldap.h
CHANGED
@@ -27,8 +27,8 @@
|
|
27
27
|
|
28
28
|
#define RB_LDAP_MAJOR_VERSION 0
|
29
29
|
#define RB_LDAP_MINOR_VERSION 9
|
30
|
-
#define RB_LDAP_PATCH_VERSION
|
31
|
-
#define RB_LDAP_VERSION "0.9.
|
30
|
+
#define RB_LDAP_PATCH_VERSION 20
|
31
|
+
#define RB_LDAP_VERSION "0.9.20"
|
32
32
|
|
33
33
|
#define LDAP_GET_OPT_MAX_BUFFER_SIZE (1024) /* >= sizeof(LDAPAPIInfo) */
|
34
34
|
|
data/test/bind-ldaps.rb
CHANGED
@@ -11,7 +11,7 @@ when /^OpenLDAP/i
|
|
11
11
|
conn = LDAP::SSLConn.new($HOST, $SSLPORT, false)
|
12
12
|
when /^Netscape/i
|
13
13
|
conn = LDAP::SSLConn.new($HOST, $SSLPORT,
|
14
|
-
|
14
|
+
false, File.expand_path("~/.netscape/cert7.db"))
|
15
15
|
conn.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3)
|
16
16
|
else
|
17
17
|
raise(RuntimeError, "unknown vendor")
|
data/test/bind-ssl.rb
CHANGED
@@ -11,7 +11,7 @@ when /^OpenLDAP/i
|
|
11
11
|
conn = LDAP::SSLConn.new($HOST, $PORT, true)
|
12
12
|
when /^Netscape/i
|
13
13
|
conn = LDAP::SSLConn.new($HOST, $SSLPORT,
|
14
|
-
|
14
|
+
false, File.expand_path("~/.netscape/cert7.db"))
|
15
15
|
conn.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3)
|
16
16
|
else
|
17
17
|
raise(RuntimeError, "unknown vendor")
|
data/test/bind.rb
CHANGED
data/test/compare.rb
CHANGED
data/test/ext.rb
CHANGED
@@ -11,9 +11,9 @@ conn.bind('cn=root, dc=localhost, dc=localdomain','secret'){
|
|
11
11
|
begin
|
12
12
|
(1..200).each{|i|
|
13
13
|
entry = {
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
'objectclass' => ['top', 'person'],
|
15
|
+
'cn' => ["User #{i}"],
|
16
|
+
'sn' => ["user#{i}"],
|
17
17
|
}
|
18
18
|
conn.add("cn=User #{i}, dc=localhost, dc=localdomain", entry)
|
19
19
|
}
|
@@ -30,12 +30,12 @@ conn.bind('cn=root, dc=localhost, dc=localdomain','secret'){
|
|
30
30
|
users = []
|
31
31
|
begin
|
32
32
|
conn.search_ext("dc=localhost, dc=localdomain",
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
33
|
+
LDAP::LDAP_SCOPE_SUBTREE,
|
34
|
+
"(&(objectclass=*)(cn=User*))",
|
35
|
+
nil, false, # attrs, attrsonly
|
36
|
+
nil, nil, # serverctrls, clientctrls
|
37
|
+
0, 0, # sec, usec
|
38
|
+
100){|e| # sizelimit
|
39
39
|
users.push(e.vals("sn"))
|
40
40
|
}
|
41
41
|
rescue LDAP::ResultError
|
data/test/modrdn.rb
CHANGED
@@ -14,8 +14,8 @@ rescue LDAP::ResultError => e
|
|
14
14
|
conn.bind('cn=root, dc=localhost, dc=localdomain','secret'){
|
15
15
|
conn.perror("bind")
|
16
16
|
conn.modrdn("cn=Takaaki Tateishi, dc=localhost, dc=localdomain",
|
17
|
-
|
18
|
-
|
17
|
+
"cn=Takaaki-Tateishi",
|
18
|
+
true)
|
19
19
|
conn.perror("modrdn")
|
20
20
|
}
|
21
21
|
exit(0)
|
data/test/moz_cert.rb
CHANGED
@@ -6,8 +6,8 @@ require 'optparse'
|
|
6
6
|
require 'pp'
|
7
7
|
|
8
8
|
options = {
|
9
|
-
:host
|
10
|
-
:port
|
9
|
+
:host => 'localhost',
|
10
|
+
:port => '389',
|
11
11
|
:scope => 'base',
|
12
12
|
:filter => '(objectclass=*)',
|
13
13
|
:key_pw => ''
|
@@ -15,44 +15,44 @@ options = {
|
|
15
15
|
|
16
16
|
optparse = OptionParser.new do |opts|
|
17
17
|
opts.on("-P", "--certpath [CERTFILE]", "cert8 path") do |cp|
|
18
|
-
|
18
|
+
options[:cp] = cp
|
19
19
|
end
|
20
20
|
|
21
21
|
opts.on("-N", "--certname [CERTNAME]", "certificate name") do |opt|
|
22
|
-
|
22
|
+
options[:cn] = opt
|
23
23
|
end
|
24
24
|
|
25
25
|
opts.on("-W", "--keypassword PASSWORD", "key password") do |opt|
|
26
|
-
|
26
|
+
options[:key_pw] = opt
|
27
27
|
end
|
28
28
|
|
29
29
|
opts.on("-h", "--host HOST", "server hostname") do |host|
|
30
|
-
|
30
|
+
options[:host] = host
|
31
31
|
end
|
32
32
|
|
33
33
|
opts.on("-p", "--port PORT", "server port") do |opt|
|
34
|
-
|
34
|
+
options[:port] = opt
|
35
35
|
end
|
36
36
|
|
37
37
|
opts.on("-b", "--base [BASE]", "search base") do |opt|
|
38
|
-
|
38
|
+
options[:base] = opt
|
39
39
|
end
|
40
40
|
|
41
41
|
opts.on("-s", "--scope SCOPE", "search scope") do |opt|
|
42
|
-
|
42
|
+
options[:scope] = opt
|
43
43
|
end
|
44
44
|
|
45
45
|
opts.on("-f", "--filter FILTER", "search filter") do |opt|
|
46
|
-
|
46
|
+
options[:filter] = opt
|
47
47
|
end
|
48
48
|
|
49
49
|
opts.on("-a", "--attributes ATTRS", "attrs to return") do |opt|
|
50
|
-
|
50
|
+
options[:attrs] = opt.split(/ *, */)
|
51
51
|
end
|
52
52
|
|
53
53
|
opts.on("--help") do |opt|
|
54
|
-
|
55
|
-
|
54
|
+
puts opts
|
55
|
+
exit 0
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
@@ -80,7 +80,7 @@ raise ArgumentError.new("cert file's missing") unless (File.exists? options[:cp]
|
|
80
80
|
|
81
81
|
# Connect
|
82
82
|
conn = LDAP::SSLAuthConn.new(options[:host], options[:port].to_i, true,
|
83
|
-
|
83
|
+
File.expand_path(options[:cp]), options[:cn], options[:key_pw])
|
84
84
|
conn.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3)
|
85
85
|
|
86
86
|
|
@@ -93,7 +93,7 @@ begin
|
|
93
93
|
|
94
94
|
results = {}
|
95
95
|
conn.search(options[:base], options[:scope], options[:filter], options[:attrs], false, 10) do |entry|
|
96
|
-
|
96
|
+
results[entry.dn] = entry.to_hash
|
97
97
|
end
|
98
98
|
|
99
99
|
pp results
|
data/test/search.rb
CHANGED
@@ -9,8 +9,8 @@ LDAP::Conn.new($HOST, $PORT).bind{|conn|
|
|
9
9
|
conn.perror("bind")
|
10
10
|
begin
|
11
11
|
conn.search("dc=localhost, dc=localdomain",
|
12
|
-
|
13
|
-
|
12
|
+
LDAP::LDAP_SCOPE_SUBTREE,
|
13
|
+
"(objectclass=*)"){|e|
|
14
14
|
p e.vals("cn")
|
15
15
|
p e.to_hash()
|
16
16
|
}
|
data/test/search2.rb
CHANGED
@@ -14,7 +14,7 @@ LDAP::Conn.new($HOST, $PORT).bind{|conn|
|
|
14
14
|
conn.perror("bind")
|
15
15
|
sub = nil
|
16
16
|
conn.search("dc=localhost, dc=localdomain", LDAP::LDAP_SCOPE_SUBTREE,
|
17
|
-
|
17
|
+
"(objectclass=*)", nil, false, 0, 0, "sn", sorter){|e|
|
18
18
|
dn = e.dn
|
19
19
|
print("# #{LDAP.dn2ufn(dn)}\n")
|
20
20
|
print("dn: #{dn}\n")
|
@@ -29,6 +29,6 @@ LDAP::Conn.new($HOST, $PORT).bind{|conn|
|
|
29
29
|
sub.dn
|
30
30
|
rescue LDAP::InvalidEntryError => e
|
31
31
|
$stderr.print("#{e.to_s}.\n",
|
32
|
-
|
32
|
+
"This exception is expected.\n")
|
33
33
|
end
|
34
34
|
}
|
data/test/search3.rb
CHANGED
@@ -13,7 +13,7 @@ conn.bind{
|
|
13
13
|
# search2 returns an array of hash
|
14
14
|
print("search2 without a block:\n")
|
15
15
|
conn.search2("dc=localhost, dc=localdomain", LDAP::LDAP_SCOPE_SUBTREE,
|
16
|
-
|
16
|
+
"(objectclass=*)", nil, false, 0, 0).each{|ent|
|
17
17
|
ent.each{|attr,vals|
|
18
18
|
print("#{attr}: #{vals.join(', ')}\n")
|
19
19
|
}
|
data/test/setup.rb
CHANGED
data/test/tc_conn.rb
CHANGED
data/test/tc_ldif.rb
CHANGED
@@ -86,7 +86,7 @@ class TC_LDIFTest < Test::Unit::TestCase
|
|
86
86
|
ldif = File.open( 'data/ldif12.txt' ) { |f| f.readlines }
|
87
87
|
entry = LDAP::LDIF.parse_entry( ldif )
|
88
88
|
assert( entry.mods.keys.include?( LDAP::LDAP_MOD_REPLACE |
|
89
|
-
|
89
|
+
LDAP::LDAP_MOD_BVALUES ) )
|
90
90
|
end
|
91
91
|
|
92
92
|
def test_change_record_control
|
@@ -109,9 +109,9 @@ class TC_LDIFTest < Test::Unit::TestCase
|
|
109
109
|
|
110
110
|
def test_mod_to_ldif
|
111
111
|
mod = LDAP.mod( LDAP::LDAP_MOD_ADD | LDAP::LDAP_MOD_BVALUES,
|
112
|
-
|
112
|
+
'mailRoutingAddress', ['a', 'b'] )
|
113
113
|
assert_instance_of( LDAP::LDIF::Mod,
|
114
|
-
|
114
|
+
mod.to_ldif( 'uid=foo,dc=example,dc=com' ) )
|
115
115
|
assert_equal( <<LDIF, mod.to_ldif( 'uid=foo,dc=example,dc=com' ) )
|
116
116
|
dn: uid=foo,dc=example,dc=com
|
117
117
|
changetype: add
|
@@ -120,7 +120,7 @@ mailRoutingAddress: b
|
|
120
120
|
LDIF
|
121
121
|
|
122
122
|
mod = LDAP.mod( LDAP::LDAP_MOD_REPLACE | LDAP::LDAP_MOD_BVALUES,
|
123
|
-
|
123
|
+
'mailRoutingAddress', ['a', 'b'] )
|
124
124
|
assert_equal( <<LDIF, mod.to_ldif( 'uid=foo,dc=example,dc=com' ) )
|
125
125
|
dn: uid=foo,dc=example,dc=com
|
126
126
|
changetype: modify
|
data/test/tc_search.rb
CHANGED
@@ -16,17 +16,17 @@ class TC_SearchTest < TC_LDAPTest
|
|
16
16
|
def test_attrs
|
17
17
|
assert_raise( TypeError ) do
|
18
18
|
@@conn.search( @@naming_context, LDAP::LDAP_SCOPE_ONELEVEL,
|
19
|
-
|
19
|
+
'(objectClass=*)', false )
|
20
20
|
end
|
21
21
|
|
22
22
|
@@conn.search( @@naming_context, LDAP::LDAP_SCOPE_ONELEVEL,
|
23
|
-
|
23
|
+
'(objectClass=*)', [], true ) do |x|
|
24
24
|
assert_nil( x['objectClass'] )
|
25
25
|
break
|
26
26
|
end
|
27
27
|
|
28
28
|
@@conn.search( @@naming_context, LDAP::LDAP_SCOPE_ONELEVEL,
|
29
|
-
|
29
|
+
'(objectClass=*)', 'objectClass' ) do |x|
|
30
30
|
x = x.to_hash
|
31
31
|
x.delete( 'dn' )
|
32
32
|
assert( x.to_hash.keys == [ 'objectClass' ] )
|
@@ -39,14 +39,14 @@ class TC_SearchTest < TC_LDAPTest
|
|
39
39
|
def test_sort_attr
|
40
40
|
ou = []
|
41
41
|
@@conn.search( @@naming_context, LDAP::LDAP_SCOPE_ONELEVEL,
|
42
|
-
|
42
|
+
'(ou=*)' ) do |x|
|
43
43
|
ou << x['ou']
|
44
44
|
end
|
45
45
|
ou.flatten!
|
46
46
|
|
47
47
|
sorted_ou = []
|
48
48
|
@@conn.search( @@naming_context, LDAP::LDAP_SCOPE_ONELEVEL,
|
49
|
-
|
49
|
+
'(ou=*)', nil, nil, 0, 0, 'ou' ) do |x|
|
50
50
|
sorted_ou << x['ou']
|
51
51
|
end
|
52
52
|
sorted_ou.flatten!
|
@@ -60,7 +60,7 @@ class TC_SearchTest < TC_LDAPTest
|
|
60
60
|
def test_sort_proc
|
61
61
|
ct = []
|
62
62
|
@@conn.search( @@naming_context, LDAP::LDAP_SCOPE_ONELEVEL,
|
63
|
-
|
63
|
+
'(objectClass=*)', [ 'createTimestamp' ] ) do |x|
|
64
64
|
ct << x['createTimestamp']
|
65
65
|
end
|
66
66
|
ct.flatten!
|
@@ -68,8 +68,8 @@ class TC_SearchTest < TC_LDAPTest
|
|
68
68
|
sorted_ct = []
|
69
69
|
s_proc = proc { |a,b| b <=> a }
|
70
70
|
@@conn.search( @@naming_context, LDAP::LDAP_SCOPE_ONELEVEL,
|
71
|
-
|
72
|
-
|
71
|
+
'(objectClass=*)', [ 'createTimestamp' ], nil, 0, 0,
|
72
|
+
'createTimestamp', s_proc ) do |x|
|
73
73
|
sorted_ct << x['createTimestamp']
|
74
74
|
end
|
75
75
|
sorted_ct.flatten!
|
@@ -88,20 +88,20 @@ class TC_SearchTest < TC_LDAPTest
|
|
88
88
|
loop do
|
89
89
|
ber_string = LDAP::Control.encode( page_size, cookie )
|
90
90
|
ctrl = LDAP::Control.new( LDAP::LDAP_CONTROL_PAGEDRESULTS,
|
91
|
-
|
92
|
-
|
91
|
+
ber_string,
|
92
|
+
true )
|
93
93
|
@@conn.set_option( LDAP::LDAP_OPT_SERVER_CONTROLS, [ ctrl ] )
|
94
94
|
|
95
95
|
this_page = nil
|
96
96
|
assert_nothing_raised do
|
97
|
-
|
97
|
+
begin
|
98
98
|
this_page = @@conn.search2( @@naming_context,
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
99
|
+
LDAP::LDAP_SCOPE_ONELEVEL,
|
100
|
+
'(objectclass=*)' )
|
101
|
+
rescue LDAP::ResultError
|
102
|
+
@@conn = nil
|
103
|
+
raise
|
104
|
+
end
|
105
105
|
end
|
106
106
|
total += this_page.size
|
107
107
|
assert_equal( page_size, this_page.size )
|
@@ -126,7 +126,7 @@ class TC_SearchTest < TC_LDAPTest
|
|
126
126
|
setup
|
127
127
|
|
128
128
|
unpaged = @@conn.search2( @@naming_context, LDAP::LDAP_SCOPE_ONELEVEL,
|
129
|
-
|
129
|
+
'(objectclass=*)' )
|
130
130
|
|
131
131
|
# Does the total number of results match the equivalent unpaged search?
|
132
132
|
# This has a race condition, but we assume the number of top-level OUs is
|
metadata
CHANGED
@@ -1,38 +1,45 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-ldap
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.9.20
|
5
5
|
platform: ruby
|
6
|
-
authors:
|
6
|
+
authors:
|
7
7
|
- Alexey Chebotar
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
|
12
|
-
date: 2016-06-20 00:00:00 Z
|
11
|
+
date: 2018-07-11 00:00:00.000000000 Z
|
13
12
|
dependencies: []
|
13
|
+
description: 'It provides the interface to some LDAP libraries (e.g. OpenLDAP, Netscape
|
14
|
+
SDK and Active Directory). The common API for application development is described
|
15
|
+
in RFC1823 and is supported by Ruby/LDAP.
|
14
16
|
|
15
|
-
|
16
|
-
It provides the interface to some LDAP libraries (e.g. OpenLDAP, Netscape SDK and Active Directory). The common API for application development is described in RFC1823 and is supported by Ruby/LDAP.
|
17
|
-
|
17
|
+
'
|
18
18
|
email: alexey.chebotar@gmail.com
|
19
19
|
executables: []
|
20
|
-
|
21
|
-
extensions:
|
20
|
+
extensions:
|
22
21
|
- extconf.rb
|
23
22
|
extra_rdoc_files: []
|
24
|
-
|
25
|
-
files:
|
26
|
-
- ChangeLog
|
23
|
+
files:
|
27
24
|
- COPYING
|
25
|
+
- ChangeLog
|
28
26
|
- FAQ
|
29
27
|
- NOTES
|
30
28
|
- README
|
31
29
|
- TODO
|
30
|
+
- clientauth.c
|
31
|
+
- conn.c
|
32
|
+
- entry.c
|
32
33
|
- extconf.rb
|
34
|
+
- ldap.c
|
33
35
|
- lib/ldap/control.rb
|
34
36
|
- lib/ldap/ldif.rb
|
35
37
|
- lib/ldap/schema.rb
|
38
|
+
- misc.c
|
39
|
+
- mod.c
|
40
|
+
- rbldap.h
|
41
|
+
- saslconn.c
|
42
|
+
- sslconn.c
|
36
43
|
- test/add.rb
|
37
44
|
- test/add2.rb
|
38
45
|
- test/add3.rb
|
@@ -58,55 +65,30 @@ files:
|
|
58
65
|
- test/tc_schema.rb
|
59
66
|
- test/tc_search.rb
|
60
67
|
- test/ts_ldap.rb
|
61
|
-
- rbldap.h
|
62
|
-
- test/openldap_tests/progs/slapd-common.h
|
63
68
|
- win/winlber.h
|
64
69
|
- win/winldap.h
|
65
|
-
- clientauth.c
|
66
|
-
- conn.c
|
67
|
-
- entry.c
|
68
|
-
- ldap.c
|
69
|
-
- misc.c
|
70
|
-
- mod.c
|
71
|
-
- saslconn.c
|
72
|
-
- sslconn.c
|
73
|
-
- test/openldap_tests/progs/ldif-filter.c
|
74
|
-
- test/openldap_tests/progs/slapd-addel.c
|
75
|
-
- test/openldap_tests/progs/slapd-auth.c
|
76
|
-
- test/openldap_tests/progs/slapd-bind.c
|
77
|
-
- test/openldap_tests/progs/slapd-common.c
|
78
|
-
- test/openldap_tests/progs/slapd-modify.c
|
79
|
-
- test/openldap_tests/progs/slapd-modrdn.c
|
80
|
-
- test/openldap_tests/progs/slapd-mtread.c
|
81
|
-
- test/openldap_tests/progs/slapd-read.c
|
82
|
-
- test/openldap_tests/progs/slapd-search.c
|
83
|
-
- test/openldap_tests/progs/slapd-tester.c
|
84
70
|
- win/wldap32.def
|
85
71
|
homepage: http://ruby-ldap.sourceforge.net/
|
86
72
|
licenses: []
|
87
|
-
|
88
73
|
metadata: {}
|
89
|
-
|
90
74
|
post_install_message:
|
91
75
|
rdoc_options: []
|
92
|
-
|
93
|
-
require_paths:
|
76
|
+
require_paths:
|
94
77
|
- lib
|
95
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
-
requirements:
|
97
|
-
-
|
98
|
-
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
78
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - ">="
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
104
88
|
requirements: []
|
105
|
-
|
106
89
|
rubyforge_project: ruby-ldap
|
107
|
-
rubygems_version: 2.
|
90
|
+
rubygems_version: 2.6.14
|
108
91
|
signing_key:
|
109
92
|
specification_version: 4
|
110
93
|
summary: Ruby/LDAP is an extension module for Ruby
|
111
94
|
test_files: []
|
112
|
-
|