You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by mc...@apache.org on 2015/06/18 16:03:18 UTC

[11/50] qpid-proton git commit: PROTON-914: Fix for getting the SSL peer hostname in Ruby.

PROTON-914: Fix for getting the SSL peer hostname in Ruby.

Previously the call was returning the result code rather than the actual
hostname value.


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/cbb68004
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/cbb68004
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/cbb68004

Branch: refs/heads/PROTON-781-ruby-reactor-apis
Commit: cbb6800496e88a0a4f22523c0f0f68afd3424323
Parents: 0f90a7e
Author: Darryl L. Pierce <mc...@gmail.com>
Authored: Wed Jun 17 11:12:32 2015 -0400
Committer: Darryl L. Pierce <mc...@gmail.com>
Committed: Wed Jun 17 11:51:40 2015 -0400

----------------------------------------------------------------------
 proton-c/bindings/ruby/lib/core/ssl.rb       | 18 +++++++++++-------
 proton-c/bindings/ruby/lib/core/transport.rb |  5 ++---
 proton-c/bindings/ruby/ruby.i                | 13 +------------
 3 files changed, 14 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cbb68004/proton-c/bindings/ruby/lib/core/ssl.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/core/ssl.rb b/proton-c/bindings/ruby/lib/core/ssl.rb
index 9c4a3e9..0b16075 100644
--- a/proton-c/bindings/ruby/lib/core/ssl.rb
+++ b/proton-c/bindings/ruby/lib/core/ssl.rb
@@ -66,11 +66,6 @@ module Qpid::Proton
     # @private
     PROTON_METHOD_PREFIX = "pn_ssl"
 
-    # @!attribute peer_hostname
-    #
-    # @return [String] The peer hostname.
-    proton_accessor :peer_hostname
-
     # @private
     include Util::ErrorHandler
 
@@ -108,10 +103,10 @@ module Qpid::Proton
 
     def initialize(impl, domain, session_details, session_id)
       @impl = impl
-      @domain = domain
+      @domain = domain.impl unless domain.nil?
       @session_details = session_details
       @session_id = session_id
-      Cproton.pn_ssl_init(@impl, @domain.impl, @session_id)
+      Cproton.pn_ssl_init(@impl, @domain, @session_id)
     end
 
     public
@@ -155,6 +150,15 @@ module Qpid::Proton
       Cproton.pn_ssl_resume_status(@impl)
     end
 
+    # Gets the peer hostname.
+    #
+    # @return [String] The peer hostname.
+    def peer_hostname
+      (error, name) = Cproton.pn_ssl_get_peer_hostname(@impl, 1024)
+      raise SSLError.new if error < 0
+      return name
+    end
+
   end
 
 end

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cbb68004/proton-c/bindings/ruby/lib/core/transport.rb
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/lib/core/transport.rb b/proton-c/bindings/ruby/lib/core/transport.rb
index 206f97d..9ba5dc8 100644
--- a/proton-c/bindings/ruby/lib/core/transport.rb
+++ b/proton-c/bindings/ruby/lib/core/transport.rb
@@ -398,13 +398,12 @@ module Qpid::Proton
     # @return [SSL] The SSL object.
     #
     def ssl(domain = nil, session_details = nil)
-      self.ssl = SSL.create(self, domain, session_details) if self.ssl.nil?
-      self.ssl
+      @ssl ||= SSL.create(self, domain, session_details) if @ssl.nil?
     end
 
     # @private
     def ssl?
-      self.respond_to?(:ssl) && !self.ssl.nil?
+      !@ssl.nil?
     end
 
   end

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/cbb68004/proton-c/bindings/ruby/ruby.i
----------------------------------------------------------------------
diff --git a/proton-c/bindings/ruby/ruby.i b/proton-c/bindings/ruby/ruby.i
index 0534808..678a085 100644
--- a/proton-c/bindings/ruby/ruby.i
+++ b/proton-c/bindings/ruby/ruby.i
@@ -556,18 +556,7 @@ VALUE pni_address_of(void *object) {
 //  %}
 //%ignore pn_collector_put;
 
-%rename(pn_ssl_get_peer_hostname) wrap_pn_ssl_get_peer_hostname;
-%inline %{
-  int wrap_pn_ssl_get_peer_hostname(pn_ssl_t *ssl, char *OUTPUT, size_t *OUTPUT_SIZE) {
-    ssize_t size = pn_ssl_get_peer_hostname(ssl, OUTPUT, *OUTPUT_SIZE);
-    if (size >= 0) {
-      *OUTPUT_SIZE = size;
-    } else {
-      *OUTPUT_SIZE = 0;
-    }
-    return size;
-  }
-  %}
+int pn_ssl_get_peer_hostname(pn_ssl_t *ssl, char *OUTPUT, size_t *OUTPUT_SIZE);
 %ignore pn_ssl_get_peer_hostname;
 
 %include "proton/cproton.i"


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org