ruby-ldapserver 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: abccbde672eeae57c5376073590192d391e524c9
4
- data.tar.gz: 51a8549b288719b8740f8f9804ae68d1dac8785c
3
+ metadata.gz: fb487768946c1d6ad6532ed0f6a1f993202ba23b
4
+ data.tar.gz: 34e4d89ac933c6d4916d8df082d9e02e8ac48d02
5
5
  SHA512:
6
- metadata.gz: 2a63a336eb6f1f79432459af9b847b86f4742c4e16dd7541569bf7dafbbcc8c2cb34183cae6cfcd4817f6bf4a3e1057d7b1bcb7f7fcaa5515ff5fd995bdd3cdb
7
- data.tar.gz: 1d98bfe14ea67c0794ce696fd0f45b05d9b734bc672f7dbfa72b1ed3bd8bded79e18105c287b217a348fa4c066f270f72720fa8d0ecb321670cf6abd63663eb0
6
+ metadata.gz: 019f96b0e7586bc91c578db37c0a10b58aa9a6599879d9483c2651d9f7704742d80640dd17ed88dad60fa1a3c7e4501fde1c53167edfa1dc886136c279f6d04a
7
+ data.tar.gz: d571397a73402c511890a01c59d35469bcd461acb929b3535658d2e7eb0c0e03573fc9bdbc5a96a7ca7b37de4c820ed361df9bc09605e125095c988be605019b
data/ChangeLog CHANGED
@@ -1,3 +1,6 @@
1
+ 0.5.2
2
+ * Make sure the exception used to stop the child doesn't propagate up (patch by Kasumi Hanazuki)
3
+
1
4
  0.3.1 - 2008-01-16
2
5
  * First release as a gem [Brandon Keepers]
3
6
 
@@ -97,7 +97,11 @@ class Server
97
97
 
98
98
  def stop
99
99
  @thread.raise Interrupt, "" # <= temporary fix for 1.8.6
100
- @thread.join
100
+ begin
101
+ @thread.join
102
+ rescue Interrupt
103
+ # nop
104
+ end
101
105
  end
102
106
 
103
107
  end # class Server
@@ -1,5 +1,5 @@
1
1
  module LDAP #:nodoc:
2
2
  class Server #:nodoc:
3
- VERSION = '0.5.1'
3
+ VERSION = '0.5.2'
4
4
  end
5
5
  end
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
21
21
 
22
22
  s.add_development_dependency 'bundler', '~> 1.3'
23
23
  s.add_development_dependency 'rake', '~> 10.0'
24
- s.add_development_dependency 'ruby-ldap', '~> 0.9.16'
24
+ s.add_development_dependency 'ruby-ldap', '~> 0.9.16' unless RUBY_PLATFORM == 'java'
25
+ s.add_development_dependency 'jruby-ldap', '~> 0.0' if RUBY_PLATFORM == 'java'
25
26
  s.add_development_dependency 'rspec', '~> 3.1'
26
27
  end
@@ -62,13 +62,60 @@ class TestLdap < Test::Unit::TestCase
62
62
  HOST = '127.0.0.1'
63
63
  PORT = 1389
64
64
 
65
+ def open_child_posix
66
+ IO.popen("-","w+").tap do |io|
67
+ unless io
68
+ do_child Kernel, Kernel
69
+ exit!
70
+ end
71
+ end
72
+ end
73
+
74
+ class DoubleIO < IO
75
+ def initialize out, inio
76
+ @out_io = out
77
+ @in_io = inio
78
+ end
79
+
80
+ def read *a
81
+ @out_io.read *a
82
+ end
83
+
84
+ def write *a
85
+ @in_io.write *a
86
+ end
87
+
88
+ def gets
89
+ @out_io.gets
90
+ end
91
+
92
+ def close
93
+ @in_io.close
94
+ @out_io.close
95
+ end
96
+ end
97
+
98
+ def open_child_java
99
+ in_rd, in_wr = IO.pipe
100
+ out_rd, out_wr = IO.pipe
101
+ Thread.new do
102
+ do_child in_rd, out_wr
103
+ end
104
+ DoubleIO.new(out_rd, in_wr)
105
+ end
106
+
107
+ def open_child
108
+ case RUBY_PLATFORM
109
+ when 'java'
110
+ open_child_java
111
+ else
112
+ open_child_posix
113
+ end
114
+ end
115
+
65
116
  def setup
66
117
  @ppid = $$
67
- @io = IO.popen("-","w+") # this is a fork()
68
- unless @io
69
- do_child
70
- exit!
71
- end
118
+ @io = open_child
72
119
 
73
120
  # back to a single process (the parent). Now we start our
74
121
  # listener thread
@@ -96,10 +143,10 @@ class TestLdap < Test::Unit::TestCase
96
143
 
97
144
  # Process commands on stdin in child
98
145
 
99
- def do_child
146
+ def do_child in_, out
100
147
  while true
101
148
  begin
102
- a = gets.chomp
149
+ a = in_.gets.chomp
103
150
  conn ||= LDAP::Conn.new(HOST,PORT)
104
151
  case a
105
152
  when "bind2"
@@ -129,14 +176,14 @@ class TestLdap < Test::Unit::TestCase
129
176
  begin
130
177
  case conn.compare("cn=Takaaki Tateishi, dc=localhost, dc=localdomain",
131
178
  "cn", $1)
132
- when true; puts "OK true"; next
133
- when false; puts "OK false"; next
179
+ when true; out.puts "OK true"; next
180
+ when false; out.puts "OK false"; next
134
181
  end
135
182
  rescue LDAP::ResultError => e
136
183
  # For older versions of ruby-ldap
137
184
  case e.message
138
- when /Compare True/i; puts "OK true"; next
139
- when /Compare False/i; puts "OK false"; next
185
+ when /Compare True/i; out.puts "OK true"; next
186
+ when /Compare False/i; out.puts "OK false"; next
140
187
  end
141
188
  raise
142
189
  end
@@ -178,15 +225,15 @@ class TestLdap < Test::Unit::TestCase
178
225
  res[dn] = entry
179
226
  end
180
227
  when "quit"
181
- puts "OK"
228
+ out.puts "OK"
182
229
  break
183
230
  else
184
231
  raise "Bad command! #{a.inspect}"
185
232
  end
186
- puts "OK"
233
+ out.puts "OK"
187
234
  rescue Exception => e
188
235
  $stderr.puts "Child exception: #{e}\n\t#{e.backtrace.join("\n\t")}"
189
- puts "ERR #{e}"
236
+ out.puts "ERR #{e}"
190
237
  end
191
238
  end
192
239
  end
@@ -25,7 +25,7 @@ class TestLdapUtil < Test::Unit::TestCase
25
25
 
26
26
  # Just for fun, let's try parsing it as UTF8
27
27
  chars = res[0]["sn"].force_encoding('utf-8').scan(/./u)
28
- assert_equal(["L", "u", "\xc4\x8d", "i", "\xc4\x87"], chars)
28
+ assert_equal(["L", "u", "\u010d", "i", "\u0107"], chars)
29
29
  end
30
30
 
31
31
  def test_join_dn
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-ldapserver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Candler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-14 00:00:00.000000000 Z
11
+ date: 2015-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -131,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
131
  version: '0'
132
132
  requirements: []
133
133
  rubyforge_project:
134
- rubygems_version: 2.4.4
134
+ rubygems_version: 2.4.8
135
135
  signing_key:
136
136
  specification_version: 4
137
137
  summary: A pure-Ruby framework for building LDAP servers
@@ -146,3 +146,4 @@ test_files:
146
146
  - test/syntax_test.rb
147
147
  - test/test_helper.rb
148
148
  - test/util_test.rb
149
+ has_rdoc: