I resolved my problem. My load paths were 'reversed', i.e. the machine 
specific path "/ruby/lib/ruby/1.8/i686-linux" was located before the 
non-machine specific path "/ruby/lib/ruby/1.8". The httpclient gem has a 
statement "require openssl" that is intended to open file "openssl.rb" 
but was opening "openssl.so" instead because of the unusual order of my 
load paths. The end result was that various modules (mixins) that are 
'included' in OpenSSL::SSL::SSLSocket (e.g. Buffering) were not being 
loaded and were not augmenting the SSLSocket class.

Brad Whitaker wrote:
> I've determined that "include Buffering" is somehow being ignored for 
> class SSLSocket in file openssl/ssl.rb. Can anyone suggest a reason why 
> that could be happening?
> 
> (My working Windows version is patchlevel 111 but my non-working Linux 
> version is patchlevel 111. Could this account for anything? I can't find 
> release notes that describe the changes between the patchlevels.)
> 
> 
> Brad Whitaker wrote:
>> I'm having a problem with 1.8.6 and soap4r that I don't understand. I'm
>> running within Apache as a CGI. I developed this code on a Windows box
>> and it works fine, but I've moved the code to my production Linux
>> environment and I get this error:
>> 
>> undefined method `close' for #<OpenSSL::SSL::SSLSocket:0xb790c024>

-- 
Posted via http://www.ruby-forum.com/.