2011-01-20 14 views

Respuesta

12

resulta que es así:

xmlrpc = ::XMLRPC::Client.new("foohost") 
xmlrpc.instance_variable_get(:@http).instance_variable_set(:@verify_mode, OpenSSL::SSL::VERIFY_NONE) 

que funciona con el rubí 1.9.2, pero es evidente que se está metiendo en la parte interna, por lo que la verdadera respuesta es "la API no proporciona un mecanismo de este tipo, pero aquí está un truco ".

0

En realidad el cliente se ha actualizado, ahora se tiene acceso directo a la conexión http: https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/41286/diff/lib/xmlrpc/client.rb

xmlrpc.http.verify_mode = OpenSSL::SSL::VERIFY_NONE 

Pero mejor conjunto ca_file o ca_path. Todavía no veo ninguna opción para aplicar tales configuraciones a las llamadas _async.

Actualización: encontrar una solución por mono parchear el objeto de cliente:

xmlrpc_client.http.ca_file = @options[:ca_file] 
    xmlrpc_client.instance_variable_set(:@ca_file, @options[:ca_file]) 
    def xmlrpc_client.net_http(host, port, proxy_host, proxy_port) 
     h = Net::HTTP.new host, port, proxy_host, proxy_port 
     h.ca_file = @ca_file 
     h 
    end 

por lo que necesita tanto, el enfoque más viejo y la aplicación de parches mono. Agregamos también una variable de instancia, de lo contrario, el nuevo método no puede ver el valor real.

Cuestiones relacionadas