qpid_proton 0.17.0 → 0.18.0
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 +4 -4
 - data/ChangeLog +176 -27
 - data/TODO +2 -8
 - data/ext/cproton/cproton.c +278 -65
 - data/lib/codec/data.rb +32 -36
 - data/lib/codec/mapping.rb +3 -3
 - data/lib/core/connection.rb +14 -5
 - data/lib/core/delivery.rb +1 -1
 - data/lib/core/disposition.rb +2 -2
 - data/lib/core/link.rb +10 -10
 - data/lib/core/message.rb +8 -21
 - data/lib/core/receiver.rb +3 -3
 - data/lib/core/sasl.rb +68 -36
 - data/lib/core/sender.rb +3 -3
 - data/lib/core/session.rb +5 -5
 - data/lib/core/ssl_domain.rb +1 -1
 - data/lib/core/terminus.rb +5 -5
 - data/lib/core/transport.rb +19 -17
 - data/lib/core/url.rb +3 -3
 - data/lib/handler/acking.rb +1 -1
 - data/lib/handler/endpoint_state_handler.rb +1 -1
 - data/lib/handler/messaging_handler.rb +1 -3
 - data/lib/messenger/messenger.rb +3 -3
 - data/lib/reactor/connector.rb +45 -28
 - data/lib/reactor/container.rb +45 -47
 - data/lib/reactor/reactor.rb +2 -2
 - data/lib/reactor/urls.rb +6 -1
 - data/lib/util/condition.rb +2 -0
 - data/lib/util/engine.rb +1 -1
 - data/lib/util/swig_helper.rb +1 -1
 - metadata +6 -5
 
    
        data/lib/core/message.rb
    CHANGED
    
    | 
         @@ -129,13 +129,13 @@ module Qpid::Proton 
     | 
|
| 
       129 
129 
     | 
    
         
             
                end
         
     | 
| 
       130 
130 
     | 
    
         | 
| 
       131 
131 
     | 
    
         
             
                # Creates a new +Message+ instance.
         
     | 
| 
       132 
     | 
    
         
            -
                def initialize
         
     | 
| 
      
 132 
     | 
    
         
            +
                def initialize(body = nil)
         
     | 
| 
       133 
133 
     | 
    
         
             
                  @impl = Cproton.pn_message
         
     | 
| 
       134 
134 
     | 
    
         
             
                  ObjectSpace.define_finalizer(self, self.class.finalize!(@impl))
         
     | 
| 
       135 
135 
     | 
    
         
             
                  @properties = {}
         
     | 
| 
       136 
136 
     | 
    
         
             
                  @instructions = {}
         
     | 
| 
       137 
137 
     | 
    
         
             
                  @annotations = {}
         
     | 
| 
       138 
     | 
    
         
            -
                   
     | 
| 
      
 138 
     | 
    
         
            +
                  self.body = body unless body.nil?
         
     | 
| 
       139 
139 
     | 
    
         
             
                end
         
     | 
| 
       140 
140 
     | 
    
         | 
| 
       141 
141 
     | 
    
         
             
                def to_s
         
     | 
| 
         @@ -224,7 +224,7 @@ module Qpid::Proton 
     | 
|
| 
       224 
224 
     | 
    
         
             
                # * priority - the priority value
         
     | 
| 
       225 
225 
     | 
    
         
             
                #
         
     | 
| 
       226 
226 
     | 
    
         
             
                def priority=(priority)
         
     | 
| 
       227 
     | 
    
         
            -
                  raise TypeError.new("invalid priority: #{priority}") if priority. 
     | 
| 
      
 227 
     | 
    
         
            +
                  raise TypeError.new("invalid priority: #{priority}") if not priority.is_a?(Numeric)
         
     | 
| 
       228 
228 
     | 
    
         
             
                  raise RangeError.new("priority out of range: #{priority}") if ((priority > 255) || (priority < 0))
         
     | 
| 
       229 
229 
     | 
    
         
             
                  Cproton.pn_message_set_priority(@impl, priority.floor)
         
     | 
| 
       230 
230 
     | 
    
         
             
                end
         
     | 
| 
         @@ -242,8 +242,8 @@ module Qpid::Proton 
     | 
|
| 
       242 
242 
     | 
    
         
             
                # * time - the time in milliseconds
         
     | 
| 
       243 
243 
     | 
    
         
             
                #
         
     | 
| 
       244 
244 
     | 
    
         
             
                def ttl=(time)
         
     | 
| 
       245 
     | 
    
         
            -
                  raise TypeError.new("invalid ttl: #{time}") if time. 
     | 
| 
       246 
     | 
    
         
            -
                  raise RangeError.new(" 
     | 
| 
      
 245 
     | 
    
         
            +
                  raise TypeError.new("invalid ttl: #{time}") if not time.is_a?(Numeric)
         
     | 
| 
      
 246 
     | 
    
         
            +
                  raise RangeError.new("ttl out of range: #{time}") if ((time.to_i < 0))
         
     | 
| 
       247 
247 
     | 
    
         
             
                  Cproton.pn_message_set_ttl(@impl, time.floor)
         
     | 
| 
       248 
248 
     | 
    
         
             
                end
         
     | 
| 
       249 
249 
     | 
    
         | 
| 
         @@ -275,9 +275,8 @@ module Qpid::Proton 
     | 
|
| 
       275 
275 
     | 
    
         
             
                # * count - the delivery count
         
     | 
| 
       276 
276 
     | 
    
         
             
                #
         
     | 
| 
       277 
277 
     | 
    
         
             
                def delivery_count=(count)
         
     | 
| 
       278 
     | 
    
         
            -
                  raise ::ArgumentError.new("invalid count: #{count}") if count. 
     | 
| 
      
 278 
     | 
    
         
            +
                  raise ::ArgumentError.new("invalid count: #{count}") if not count.is_a?(Numeric)
         
     | 
| 
       279 
279 
     | 
    
         
             
                  raise RangeError.new("count out of range: #{count}") if count < 0
         
     | 
| 
       280 
     | 
    
         
            -
             
     | 
| 
       281 
280 
     | 
    
         
             
                  Cproton.pn_message_set_delivery_count(@impl, count.floor)
         
     | 
| 
       282 
281 
     | 
    
         
             
                end
         
     | 
| 
       283 
282 
     | 
    
         | 
| 
         @@ -408,24 +407,12 @@ module Qpid::Proton 
     | 
|
| 
       408 
407 
     | 
    
         
             
                  Cproton.pn_message_get_content_type(@impl)
         
     | 
| 
       409 
408 
     | 
    
         
             
                end
         
     | 
| 
       410 
409 
     | 
    
         | 
| 
       411 
     | 
    
         
            -
                #  
     | 
| 
       412 
     | 
    
         
            -
                #
         
     | 
| 
       413 
     | 
    
         
            -
                # *WARNING:* This method has been deprecated. Please use #body= instead to
         
     | 
| 
       414 
     | 
    
         
            -
                # set the content of a message.
         
     | 
| 
       415 
     | 
    
         
            -
                #
         
     | 
| 
       416 
     | 
    
         
            -
                # ==== Options
         
     | 
| 
       417 
     | 
    
         
            -
                #
         
     | 
| 
       418 
     | 
    
         
            -
                # * content - the content
         
     | 
| 
       419 
     | 
    
         
            -
                #
         
     | 
| 
      
 410 
     | 
    
         
            +
                # @deprecated use {#body=}
         
     | 
| 
       420 
411 
     | 
    
         
             
                def content=(content)
         
     | 
| 
       421 
412 
     | 
    
         
             
                  Cproton.pn_message_load(@impl, content)
         
     | 
| 
       422 
413 
     | 
    
         
             
                end
         
     | 
| 
       423 
414 
     | 
    
         | 
| 
       424 
     | 
    
         
            -
                #  
     | 
| 
       425 
     | 
    
         
            -
                #
         
     | 
| 
       426 
     | 
    
         
            -
                # *WARNING:* This method has been deprecated. Please use #body instead to
         
     | 
| 
       427 
     | 
    
         
            -
                # retrieve the content of a message.
         
     | 
| 
       428 
     | 
    
         
            -
                #
         
     | 
| 
      
 415 
     | 
    
         
            +
                # @deprecated use {#body}
         
     | 
| 
       429 
416 
     | 
    
         
             
                def content
         
     | 
| 
       430 
417 
     | 
    
         
             
                  size = 16
         
     | 
| 
       431 
418 
     | 
    
         
             
                  loop do
         
     | 
    
        data/lib/core/receiver.rb
    CHANGED
    
    | 
         @@ -58,7 +58,7 @@ module Qpid::Proton 
     | 
|
| 
       58 
58 
     | 
    
         | 
| 
       59 
59 
     | 
    
         
             
                # Grants credit for incoming deliveries.
         
     | 
| 
       60 
60 
     | 
    
         
             
                #
         
     | 
| 
       61 
     | 
    
         
            -
                # @param n [ 
     | 
| 
      
 61 
     | 
    
         
            +
                # @param n [Integer] The amount to increment the link credit.
         
     | 
| 
       62 
62 
     | 
    
         
             
                #
         
     | 
| 
       63 
63 
     | 
    
         
             
                def flow(n)
         
     | 
| 
       64 
64 
     | 
    
         
             
                  Cproton.pn_link_flow(@impl, n)
         
     | 
| 
         @@ -74,9 +74,9 @@ module Qpid::Proton 
     | 
|
| 
       74 
74 
     | 
    
         
             
                # #receive until nil is returned, or verify that #partial? is false and
         
     | 
| 
       75 
75 
     | 
    
         
             
                # Delivery#pending is 0.
         
     | 
| 
       76 
76 
     | 
    
         
             
                #
         
     | 
| 
       77 
     | 
    
         
            -
                # @param limit [ 
     | 
| 
      
 77 
     | 
    
         
            +
                # @param limit [Integer] The maximum bytes to receive.
         
     | 
| 
       78 
78 
     | 
    
         
             
                #
         
     | 
| 
       79 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 79 
     | 
    
         
            +
                # @return [Integer, nil] The number of bytes received, or nil if the end of
         
     | 
| 
       80 
80 
     | 
    
         
             
                # the stream was reached.t
         
     | 
| 
       81 
81 
     | 
    
         
             
                #
         
     | 
| 
       82 
82 
     | 
    
         
             
                # @see Deliver#pending To see how much buffer space is needed.
         
     | 
    
        data/lib/core/sasl.rb
    CHANGED
    
    | 
         @@ -28,19 +28,7 @@ module Qpid::Proton 
     | 
|
| 
       28 
28 
     | 
    
         
             
              # The peer acting as the SASL server must provide authentication against the
         
     | 
| 
       29 
29 
     | 
    
         
             
              # received credentials.
         
     | 
| 
       30 
30 
     | 
    
         
             
              #
         
     | 
| 
       31 
     | 
    
         
            -
              # @ 
     | 
| 
       32 
     | 
    
         
            -
              #   # SCENARIO: the remote endpoint has not initialized their connection
         
     | 
| 
       33 
     | 
    
         
            -
              #   #           then the local endpoint, acting as a SASL server, decides
         
     | 
| 
       34 
     | 
    
         
            -
              #   #           to allow an anonymous connection.
         
     | 
| 
       35 
     | 
    
         
            -
              #   #
         
     | 
| 
       36 
     | 
    
         
            -
              #   #           The SASL layer locally assumes the role of server and then
         
     | 
| 
       37 
     | 
    
         
            -
              #   #           enables anonymous authentication for the remote endpoint.
         
     | 
| 
       38 
     | 
    
         
            -
              #   #
         
     | 
| 
       39 
     | 
    
         
            -
              #   sasl = @transport.sasl
         
     | 
| 
       40 
     | 
    
         
            -
              #   sasl.server
         
     | 
| 
       41 
     | 
    
         
            -
              #   sasl.mechanisms("ANONYMOUS")
         
     | 
| 
       42 
     | 
    
         
            -
              #   sasl.done(Qpid::Proton::SASL::OK)
         
     | 
| 
       43 
     | 
    
         
            -
              #
         
     | 
| 
      
 31 
     | 
    
         
            +
              # @note Do not instantiate directly, use {Transport#sasl} to create a SASL object.
         
     | 
| 
       44 
32 
     | 
    
         
             
              class SASL
         
     | 
| 
       45 
33 
     | 
    
         | 
| 
       46 
34 
     | 
    
         
             
                # Negotation has not completed.
         
     | 
| 
         @@ -50,45 +38,89 @@ module Qpid::Proton 
     | 
|
| 
       50 
38 
     | 
    
         
             
                # Authentication failed due to bad credentials.
         
     | 
| 
       51 
39 
     | 
    
         
             
                AUTH = Cproton::PN_SASL_AUTH
         
     | 
| 
       52 
40 
     | 
    
         | 
| 
       53 
     | 
    
         
            -
                 
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                 
     | 
| 
       56 
     | 
    
         
            -
                 
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
                 
     | 
| 
      
 41 
     | 
    
         
            +
                private
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                include Util::SwigHelper
         
     | 
| 
      
 44 
     | 
    
         
            +
                PROTON_METHOD_PREFIX = "pn_sasl"
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                public
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                # @private
         
     | 
| 
      
 49 
     | 
    
         
            +
                # @note Do not instantiate directly, use {Transport#sasl} to create a SASL object.
         
     | 
| 
       59 
50 
     | 
    
         
             
                def initialize(transport)
         
     | 
| 
       60 
51 
     | 
    
         
             
                  @impl = Cproton.pn_sasl(transport.impl)
         
     | 
| 
       61 
52 
     | 
    
         
             
                end
         
     | 
| 
       62 
53 
     | 
    
         | 
| 
       63 
     | 
    
         
            -
                #  
     | 
| 
      
 54 
     | 
    
         
            +
                # @!attribute allow_insecure_mechs
         
     | 
| 
      
 55 
     | 
    
         
            +
                #   @return [Bool] true if clear text authentication is allowed on insecure connections.
         
     | 
| 
      
 56 
     | 
    
         
            +
                proton_accessor :allow_insecure_mechs
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                # @!attribute user [r]
         
     | 
| 
      
 59 
     | 
    
         
            +
                #   @return [String] the authenticated user name
         
     | 
| 
      
 60 
     | 
    
         
            +
                proton_reader :user
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                # Set the mechanisms allowed for SASL negotation
         
     | 
| 
      
 63 
     | 
    
         
            +
                # @param mechanisms [String] space-delimited list of allowed mechanisms
         
     | 
| 
      
 64 
     | 
    
         
            +
                def allowed_mechs=(mechanisms)
         
     | 
| 
      
 65 
     | 
    
         
            +
                  Cproton.pn_sasl_allowed_mechs(@impl, mechanisms)
         
     | 
| 
      
 66 
     | 
    
         
            +
                end
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
                # @deprecated use {#allowed_mechs=}
         
     | 
| 
      
 69 
     | 
    
         
            +
                def mechanisms(m)
         
     | 
| 
      
 70 
     | 
    
         
            +
                  self.allowed_mechs = m
         
     | 
| 
      
 71 
     | 
    
         
            +
                end
         
     | 
| 
      
 72 
     | 
    
         
            +
             
     | 
| 
      
 73 
     | 
    
         
            +
                # True if extended SASL negotiation is supported
         
     | 
| 
       64 
74 
     | 
    
         
             
                #
         
     | 
| 
       65 
     | 
    
         
            -
                #  
     | 
| 
      
 75 
     | 
    
         
            +
                # All implementations of Proton support ANONYMOUS and EXTERNAL on both
         
     | 
| 
      
 76 
     | 
    
         
            +
                # client and server sides and PLAIN on the client side.
         
     | 
| 
       66 
77 
     | 
    
         
             
                #
         
     | 
| 
       67 
     | 
    
         
            -
                #  
     | 
| 
       68 
     | 
    
         
            -
                # 
     | 
| 
      
 78 
     | 
    
         
            +
                # Extended SASL implememtations use an external library (Cyrus SASL)
         
     | 
| 
      
 79 
     | 
    
         
            +
                # to support other mechanisms.
         
     | 
| 
       69 
80 
     | 
    
         
             
                #
         
     | 
| 
       70 
     | 
    
         
            -
                 
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
      
 81 
     | 
    
         
            +
                # @return [Bool] true if extended SASL negotiation is supported
         
     | 
| 
      
 82 
     | 
    
         
            +
                def self.extended?()
         
     | 
| 
      
 83 
     | 
    
         
            +
                  Cproton.pn_sasl_extended()
         
     | 
| 
       72 
84 
     | 
    
         
             
                end
         
     | 
| 
       73 
85 
     | 
    
         | 
| 
       74 
     | 
    
         
            -
                #  
     | 
| 
      
 86 
     | 
    
         
            +
                # Set the sasl configuration path
         
     | 
| 
      
 87 
     | 
    
         
            +
                #
         
     | 
| 
      
 88 
     | 
    
         
            +
                # This is used to tell SASL where to look for the configuration file.
         
     | 
| 
      
 89 
     | 
    
         
            +
                # In the current implementation it can be a colon separated list of directories.
         
     | 
| 
      
 90 
     | 
    
         
            +
                #
         
     | 
| 
      
 91 
     | 
    
         
            +
                # The environment variable PN_SASL_CONFIG_PATH can also be used to set this path,
         
     | 
| 
      
 92 
     | 
    
         
            +
                # but if both methods are used then this pn_sasl_config_path() will take precedence.
         
     | 
| 
      
 93 
     | 
    
         
            +
                #
         
     | 
| 
      
 94 
     | 
    
         
            +
                # If not set the underlying implementation default will be used.
         
     | 
| 
       75 
95 
     | 
    
         
             
                #
         
     | 
| 
       76 
     | 
    
         
            -
                # @ 
     | 
| 
      
 96 
     | 
    
         
            +
                # @param path the configuration path
         
     | 
| 
       77 
97 
     | 
    
         
             
                #
         
     | 
| 
       78 
     | 
    
         
            -
                def  
     | 
| 
       79 
     | 
    
         
            -
                   
     | 
| 
       80 
     | 
    
         
            -
                   
     | 
| 
       81 
     | 
    
         
            -
                  outcome
         
     | 
| 
      
 98 
     | 
    
         
            +
                def self.config_path=(path)
         
     | 
| 
      
 99 
     | 
    
         
            +
                  Cproton.pn_sasl_config_path(nil, path)
         
     | 
| 
      
 100 
     | 
    
         
            +
                  path
         
     | 
| 
       82 
101 
     | 
    
         
             
                end
         
     | 
| 
       83 
102 
     | 
    
         | 
| 
       84 
     | 
    
         
            -
                #  
     | 
| 
      
 103 
     | 
    
         
            +
                # @deprecated use {config_path=}
         
     | 
| 
      
 104 
     | 
    
         
            +
                def self.config_path(path)
         
     | 
| 
      
 105 
     | 
    
         
            +
                  self.config_path = path
         
     | 
| 
      
 106 
     | 
    
         
            +
                end
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
                # Set the configuration file name, without extension
         
     | 
| 
      
 109 
     | 
    
         
            +
                #
         
     | 
| 
      
 110 
     | 
    
         
            +
                # The name with an a ".conf" extension will be searched for in the
         
     | 
| 
      
 111 
     | 
    
         
            +
                # configuration path.  If not set, it defaults to "proton-server" or
         
     | 
| 
      
 112 
     | 
    
         
            +
                # "proton-client" for a server (incoming) or client (outgoing) connection
         
     | 
| 
      
 113 
     | 
    
         
            +
                # respectively.
         
     | 
| 
       85 
114 
     | 
    
         
             
                #
         
     | 
| 
       86 
     | 
    
         
            -
                # @param  
     | 
| 
      
 115 
     | 
    
         
            +
                # @param name the configuration file name without extension
         
     | 
| 
       87 
116 
     | 
    
         
             
                #
         
     | 
| 
       88 
     | 
    
         
            -
                def  
     | 
| 
       89 
     | 
    
         
            -
                  Cproton. 
     | 
| 
      
 117 
     | 
    
         
            +
                def self.config_name=(name)
         
     | 
| 
      
 118 
     | 
    
         
            +
                  Cproton.pn_sasl_config_name(nil, name)
         
     | 
| 
       90 
119 
     | 
    
         
             
                end
         
     | 
| 
       91 
120 
     | 
    
         | 
| 
      
 121 
     | 
    
         
            +
                # @deprecated use {config_name=}
         
     | 
| 
      
 122 
     | 
    
         
            +
                def self.config_name(name)
         
     | 
| 
      
 123 
     | 
    
         
            +
                  self.config_name = name
         
     | 
| 
      
 124 
     | 
    
         
            +
                end
         
     | 
| 
       92 
125 
     | 
    
         
             
              end
         
     | 
| 
       93 
     | 
    
         
            -
             
     | 
| 
       94 
126 
     | 
    
         
             
            end
         
     | 
    
        data/lib/core/sender.rb
    CHANGED
    
    | 
         @@ -33,7 +33,7 @@ module Qpid::Proton 
     | 
|
| 
       33 
33 
     | 
    
         | 
| 
       34 
34 
     | 
    
         
             
                # Signals the availability of deliveries.
         
     | 
| 
       35 
35 
     | 
    
         
             
                #
         
     | 
| 
       36 
     | 
    
         
            -
                # @param n [ 
     | 
| 
      
 36 
     | 
    
         
            +
                # @param n [Integer] The number of deliveries potentially available.
         
     | 
| 
       37 
37 
     | 
    
         
             
                #
         
     | 
| 
       38 
38 
     | 
    
         
             
                def offered(n)
         
     | 
| 
       39 
39 
     | 
    
         
             
                  Cproton.pn_link_offered(@impl, n)
         
     | 
| 
         @@ -44,7 +44,7 @@ module Qpid::Proton 
     | 
|
| 
       44 
44 
     | 
    
         
             
                # @param object [Object] The content to send.
         
     | 
| 
       45 
45 
     | 
    
         
             
                # @param tag [Object] The tag
         
     | 
| 
       46 
46 
     | 
    
         
             
                #
         
     | 
| 
       47 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 47 
     | 
    
         
            +
                # @return [Integer] The number of bytes sent.
         
     | 
| 
       48 
48 
     | 
    
         
             
                #
         
     | 
| 
       49 
49 
     | 
    
         
             
                def send(object, tag = nil)
         
     | 
| 
       50 
50 
     | 
    
         
             
                  if object.respond_to? :proton_send
         
     | 
| 
         @@ -58,7 +58,7 @@ module Qpid::Proton 
     | 
|
| 
       58 
58 
     | 
    
         
             
                #
         
     | 
| 
       59 
59 
     | 
    
         
             
                # @param bytes [Array] The bytes to send.
         
     | 
| 
       60 
60 
     | 
    
         
             
                #
         
     | 
| 
       61 
     | 
    
         
            -
                # @return  
     | 
| 
      
 61 
     | 
    
         
            +
                # @return [Integer] The number of bytes sent.
         
     | 
| 
       62 
62 
     | 
    
         
             
                #
         
     | 
| 
       63 
63 
     | 
    
         
             
                def stream(bytes)
         
     | 
| 
       64 
64 
     | 
    
         
             
                  Cproton.pn_link_send(@impl, bytes)
         
     | 
    
        data/lib/core/session.rb
    CHANGED
    
    | 
         @@ -41,7 +41,7 @@ module Qpid::Proton 
     | 
|
| 
       41 
41 
     | 
    
         
             
                # negotatied frame size of the transport, it will be rounded up to one full
         
     | 
| 
       42 
42 
     | 
    
         
             
                # frame.
         
     | 
| 
       43 
43 
     | 
    
         
             
                #
         
     | 
| 
       44 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 44 
     | 
    
         
            +
                # @return [Integer] The incoing capacity of the session, measured in bytes.
         
     | 
| 
       45 
45 
     | 
    
         
             
                #
         
     | 
| 
       46 
46 
     | 
    
         
             
                proton_accessor :incoming_capacity
         
     | 
| 
       47 
47 
     | 
    
         | 
| 
         @@ -50,13 +50,13 @@ module Qpid::Proton 
     | 
|
| 
       50 
50 
     | 
    
         | 
| 
       51 
51 
     | 
    
         
             
                # @!attribute [r] outgoing_bytes
         
     | 
| 
       52 
52 
     | 
    
         
             
                #
         
     | 
| 
       53 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 53 
     | 
    
         
            +
                # @return [Integer] The number of outgoing bytes currently being buffered.
         
     | 
| 
       54 
54 
     | 
    
         
             
                #
         
     | 
| 
       55 
55 
     | 
    
         
             
                proton_caller :outgoing_bytes
         
     | 
| 
       56 
56 
     | 
    
         | 
| 
       57 
57 
     | 
    
         
             
                # @!attribute [r] incoming_bytes
         
     | 
| 
       58 
58 
     | 
    
         
             
                #
         
     | 
| 
       59 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 59 
     | 
    
         
            +
                # @return [Integer] The number of incomign bytes currently being buffered.
         
     | 
| 
       60 
60 
     | 
    
         
             
                #
         
     | 
| 
       61 
61 
     | 
    
         
             
                proton_caller :incoming_bytes
         
     | 
| 
       62 
62 
     | 
    
         | 
| 
         @@ -71,7 +71,7 @@ module Qpid::Proton 
     | 
|
| 
       71 
71 
     | 
    
         | 
| 
       72 
72 
     | 
    
         
             
                # @!attribute [r] state
         
     | 
| 
       73 
73 
     | 
    
         
             
                #
         
     | 
| 
       74 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 74 
     | 
    
         
            +
                # @return [Integer] The endpoint state.
         
     | 
| 
       75 
75 
     | 
    
         
             
                #
         
     | 
| 
       76 
76 
     | 
    
         
             
                proton_caller :state
         
     | 
| 
       77 
77 
     | 
    
         | 
| 
         @@ -104,7 +104,7 @@ module Qpid::Proton 
     | 
|
| 
       104 
104 
     | 
    
         
             
                # When uses with Connection#session_head an application can access all of
         
     | 
| 
       105 
105 
     | 
    
         
             
                # the session son the connection that match the given state.
         
     | 
| 
       106 
106 
     | 
    
         
             
                #
         
     | 
| 
       107 
     | 
    
         
            -
                # @param state_mask [ 
     | 
| 
      
 107 
     | 
    
         
            +
                # @param state_mask [Integer] The state mask to match.
         
     | 
| 
       108 
108 
     | 
    
         
             
                #
         
     | 
| 
       109 
109 
     | 
    
         
             
                # @return [Session, nil] The next session if one matches, or nil.
         
     | 
| 
       110 
110 
     | 
    
         
             
                #
         
     | 
    
        data/lib/core/ssl_domain.rb
    CHANGED
    
    | 
         @@ -123,7 +123,7 @@ module Qpid::Proton 
     | 
|
| 
       123 
123 
     | 
    
         
             
                # call returns. SSL instances created before invoking this method will use
         
     | 
| 
       124 
124 
     | 
    
         
             
                # the domain's previous setting.
         
     | 
| 
       125 
125 
     | 
    
         
             
                #
         
     | 
| 
       126 
     | 
    
         
            -
                # @param verify_mode [ 
     | 
| 
      
 126 
     | 
    
         
            +
                # @param verify_mode [Integer] The level of validation to apply to the peer.
         
     | 
| 
       127 
127 
     | 
    
         
             
                # @param trusted_CAs [String] The path to a database of trusted CAs that
         
     | 
| 
       128 
128 
     | 
    
         
             
                #   the server will advertise to the peer client if the server has been
         
     | 
| 
       129 
129 
     | 
    
         
             
                #   configured to verify its peer.
         
     | 
    
        data/lib/core/terminus.rb
    CHANGED
    
    | 
         @@ -73,7 +73,7 @@ module Qpid::Proton 
     | 
|
| 
       73 
73 
     | 
    
         | 
| 
       74 
74 
     | 
    
         
             
                # @!attribute type
         
     | 
| 
       75 
75 
     | 
    
         
             
                #
         
     | 
| 
       76 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 76 
     | 
    
         
            +
                # @return [Integer] The terminus type.
         
     | 
| 
       77 
77 
     | 
    
         
             
                #
         
     | 
| 
       78 
78 
     | 
    
         
             
                # @see SOURCE
         
     | 
| 
       79 
79 
     | 
    
         
             
                # @see TARGET
         
     | 
| 
         @@ -89,7 +89,7 @@ module Qpid::Proton 
     | 
|
| 
       89 
89 
     | 
    
         | 
| 
       90 
90 
     | 
    
         
             
                # @!attribute durability
         
     | 
| 
       91 
91 
     | 
    
         
             
                #
         
     | 
| 
       92 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 92 
     | 
    
         
            +
                # @return [Integer] The durability mode of the terminus.
         
     | 
| 
       93 
93 
     | 
    
         
             
                #
         
     | 
| 
       94 
94 
     | 
    
         
             
                # @see NONDURABLE
         
     | 
| 
       95 
95 
     | 
    
         
             
                # @see CONFIGURATION
         
     | 
| 
         @@ -99,7 +99,7 @@ module Qpid::Proton 
     | 
|
| 
       99 
99 
     | 
    
         | 
| 
       100 
100 
     | 
    
         
             
                # @!attribute expiry_policy
         
     | 
| 
       101 
101 
     | 
    
         
             
                #
         
     | 
| 
       102 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 102 
     | 
    
         
            +
                # @return [Integer] The expiry policy.
         
     | 
| 
       103 
103 
     | 
    
         
             
                #
         
     | 
| 
       104 
104 
     | 
    
         
             
                # @see EXPIRE_WITH_LINK
         
     | 
| 
       105 
105 
     | 
    
         
             
                # @see EXPIRE_WITH_SESSION
         
     | 
| 
         @@ -110,7 +110,7 @@ module Qpid::Proton 
     | 
|
| 
       110 
110 
     | 
    
         | 
| 
       111 
111 
     | 
    
         
             
                # @!attribute timeout
         
     | 
| 
       112 
112 
     | 
    
         
             
                #
         
     | 
| 
       113 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 113 
     | 
    
         
            +
                # @return [Integer] The timeout period.
         
     | 
| 
       114 
114 
     | 
    
         
             
                #
         
     | 
| 
       115 
115 
     | 
    
         
             
                proton_accessor :timeout
         
     | 
| 
       116 
116 
     | 
    
         | 
| 
         @@ -122,7 +122,7 @@ module Qpid::Proton 
     | 
|
| 
       122 
122 
     | 
    
         | 
| 
       123 
123 
     | 
    
         
             
                # @!attribute distribution_mode
         
     | 
| 
       124 
124 
     | 
    
         
             
                #
         
     | 
| 
       125 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 125 
     | 
    
         
            +
                # @return [Integer] The distribution mode.
         
     | 
| 
       126 
126 
     | 
    
         
             
                #
         
     | 
| 
       127 
127 
     | 
    
         
             
                # @see DIST_MODE_UNSPECIFIED
         
     | 
| 
       128 
128 
     | 
    
         
             
                # @see DIST_MODE_COPY
         
     | 
    
        data/lib/core/transport.rb
    CHANGED
    
    | 
         @@ -89,37 +89,37 @@ module Qpid::Proton 
     | 
|
| 
       89 
89 
     | 
    
         | 
| 
       90 
90 
     | 
    
         
             
                # @!attribute channel_max
         
     | 
| 
       91 
91 
     | 
    
         
             
                #
         
     | 
| 
       92 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 92 
     | 
    
         
            +
                # @return [Integer] The maximum allowed channel.
         
     | 
| 
       93 
93 
     | 
    
         
             
                #
         
     | 
| 
       94 
94 
     | 
    
         
             
                proton_accessor :channel_max
         
     | 
| 
       95 
95 
     | 
    
         | 
| 
       96 
96 
     | 
    
         
             
                # @!attribute [r] remote_channel_max
         
     | 
| 
       97 
97 
     | 
    
         
             
                #
         
     | 
| 
       98 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 98 
     | 
    
         
            +
                # @return [Integer] The maximum allowed channel of a transport's remote peer.
         
     | 
| 
       99 
99 
     | 
    
         
             
                #
         
     | 
| 
       100 
100 
     | 
    
         
             
                proton_caller :remote_channel_max
         
     | 
| 
       101 
101 
     | 
    
         | 
| 
       102 
102 
     | 
    
         
             
                # @!attribute max_frame_size
         
     | 
| 
       103 
103 
     | 
    
         
             
                #
         
     | 
| 
       104 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 104 
     | 
    
         
            +
                # @return [Integer] The maximum frame size.
         
     | 
| 
       105 
105 
     | 
    
         
             
                #
         
     | 
| 
       106 
106 
     | 
    
         
             
                proton_accessor :max_frame_size
         
     | 
| 
       107 
107 
     | 
    
         | 
| 
       108 
108 
     | 
    
         
             
                # @!attribute [r] remote_max_frame_size
         
     | 
| 
       109 
109 
     | 
    
         
             
                #
         
     | 
| 
       110 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 110 
     | 
    
         
            +
                # @return [Integer] The maximum frame size of the transport's remote peer.
         
     | 
| 
       111 
111 
     | 
    
         
             
                #
         
     | 
| 
       112 
112 
     | 
    
         
             
                proton_reader :remote_max_frame_size
         
     | 
| 
       113 
113 
     | 
    
         | 
| 
       114 
114 
     | 
    
         
             
                # @!attribute idle_timeout
         
     | 
| 
       115 
115 
     | 
    
         
             
                #
         
     | 
| 
       116 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 116 
     | 
    
         
            +
                # @return [Integer] The idle timeout.
         
     | 
| 
       117 
117 
     | 
    
         
             
                #
         
     | 
| 
       118 
118 
     | 
    
         
             
                proton_accessor :idle_timeout
         
     | 
| 
       119 
119 
     | 
    
         | 
| 
       120 
120 
     | 
    
         
             
                # @!attribute [r] remote_idle_timeout
         
     | 
| 
       121 
121 
     | 
    
         
             
                #
         
     | 
| 
       122 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 122 
     | 
    
         
            +
                # @return [Integer] The idle timeout for the transport's remote peer.
         
     | 
| 
       123 
123 
     | 
    
         
             
                #
         
     | 
| 
       124 
124 
     | 
    
         
             
                proton_accessor :remote_idle_timeout
         
     | 
| 
       125 
125 
     | 
    
         | 
| 
         @@ -135,7 +135,7 @@ module Qpid::Proton 
     | 
|
| 
       135 
135 
     | 
    
         
             
                # Calls to #process may alter the value of this value. See #process for
         
     | 
| 
       136 
136 
     | 
    
         
             
                # more details
         
     | 
| 
       137 
137 
     | 
    
         
             
                #
         
     | 
| 
       138 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 138 
     | 
    
         
            +
                # @return [Integer] The amount of free space for input following the
         
     | 
| 
       139 
139 
     | 
    
         
             
                # transport's tail pointer.
         
     | 
| 
       140 
140 
     | 
    
         
             
                #
         
     | 
| 
       141 
141 
     | 
    
         
             
                proton_caller :capacity
         
     | 
| 
         @@ -170,7 +170,7 @@ module Qpid::Proton 
     | 
|
| 
       170 
170 
     | 
    
         
             
                #
         
     | 
| 
       171 
171 
     | 
    
         
             
                # Calls to #pop may alter the value of this pointer as well.
         
     | 
| 
       172 
172 
     | 
    
         
             
                #
         
     | 
| 
       173 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 173 
     | 
    
         
            +
                # @return [Integer] The number of pending output bytes following the header
         
     | 
| 
       174 
174 
     | 
    
         
             
                # pointer.
         
     | 
| 
       175 
175 
     | 
    
         
             
                #
         
     | 
| 
       176 
176 
     | 
    
         
             
                # @raise [TransportError] If any error other than an end of stream occurs.
         
     | 
| 
         @@ -188,13 +188,13 @@ module Qpid::Proton 
     | 
|
| 
       188 
188 
     | 
    
         | 
| 
       189 
189 
     | 
    
         
             
                # @!attribute [r] frames_output
         
     | 
| 
       190 
190 
     | 
    
         
             
                #
         
     | 
| 
       191 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 191 
     | 
    
         
            +
                # @return [Integer] The number of frames output by a transport.
         
     | 
| 
       192 
192 
     | 
    
         
             
                #
         
     | 
| 
       193 
193 
     | 
    
         
             
                proton_reader :frames_output
         
     | 
| 
       194 
194 
     | 
    
         | 
| 
       195 
195 
     | 
    
         
             
                # @!attribute [r] frames_input
         
     | 
| 
       196 
196 
     | 
    
         
             
                #
         
     | 
| 
       197 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 197 
     | 
    
         
            +
                # @return [Integer] The number of frames input by a transport.
         
     | 
| 
       198 
198 
     | 
    
         
             
                #
         
     | 
| 
       199 
199 
     | 
    
         
             
                proton_reader :frames_input
         
     | 
| 
       200 
200 
     | 
    
         | 
| 
         @@ -218,7 +218,7 @@ module Qpid::Proton 
     | 
|
| 
       218 
218 
     | 
    
         | 
| 
       219 
219 
     | 
    
         
             
                # Creates a new transport instance.
         
     | 
| 
       220 
220 
     | 
    
         
             
                #
         
     | 
| 
       221 
     | 
    
         
            -
                # @param mode [ 
     | 
| 
      
 221 
     | 
    
         
            +
                # @param mode [Integer] The transport mode, either CLIENT or SERVER
         
     | 
| 
       222 
222 
     | 
    
         
             
                # @param impl [pn_transport_t] Should not be used.
         
     | 
| 
       223 
223 
     | 
    
         
             
                #
         
     | 
| 
       224 
224 
     | 
    
         
             
                # @raise [TransportError] If the mode is invalid.
         
     | 
| 
         @@ -268,7 +268,7 @@ module Qpid::Proton 
     | 
|
| 
       268 
268 
     | 
    
         | 
| 
       269 
269 
     | 
    
         
             
                # Updates the transports trace flags.
         
     | 
| 
       270 
270 
     | 
    
         
             
                #
         
     | 
| 
       271 
     | 
    
         
            -
                # @param level [ 
     | 
| 
      
 271 
     | 
    
         
            +
                # @param level [Integer] The trace level.
         
     | 
| 
       272 
272 
     | 
    
         
             
                #
         
     | 
| 
       273 
273 
     | 
    
         
             
                # @see TRACE_OFF
         
     | 
| 
       274 
274 
     | 
    
         
             
                # @see TRACE_RAW
         
     | 
| 
         @@ -302,7 +302,7 @@ module Qpid::Proton 
     | 
|
| 
       302 
302 
     | 
    
         
             
                #
         
     | 
| 
       303 
303 
     | 
    
         
             
                # @param data [String] The bytes to be pushed.
         
     | 
| 
       304 
304 
     | 
    
         
             
                #
         
     | 
| 
       305 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 305 
     | 
    
         
            +
                # @return [Integer] The number of bytes pushed.
         
     | 
| 
       306 
306 
     | 
    
         
             
                #
         
     | 
| 
       307 
307 
     | 
    
         
             
                def push(data)
         
     | 
| 
       308 
308 
     | 
    
         
             
                  Cproton.pn_transport_push(@impl, data, data.length)
         
     | 
| 
         @@ -315,7 +315,7 @@ module Qpid::Proton 
     | 
|
| 
       315 
315 
     | 
    
         
             
                # pointer. It may also change the value for #tail, as well as the amount of
         
     | 
| 
       316 
316 
     | 
    
         
             
                # free space reported by #capacity.
         
     | 
| 
       317 
317 
     | 
    
         
             
                #
         
     | 
| 
       318 
     | 
    
         
            -
                # @param size [ 
     | 
| 
      
 318 
     | 
    
         
            +
                # @param size [Integer] The number of bytes to process.
         
     | 
| 
       319 
319 
     | 
    
         
             
                #
         
     | 
| 
       320 
320 
     | 
    
         
             
                # @raise [TransportError] If an error occurs.
         
     | 
| 
       321 
321 
     | 
    
         
             
                #
         
     | 
| 
         @@ -335,7 +335,7 @@ module Qpid::Proton 
     | 
|
| 
       335 
335 
     | 
    
         | 
| 
       336 
336 
     | 
    
         
             
                # Returns the specified number of bytes from the transport's buffers.
         
     | 
| 
       337 
337 
     | 
    
         
             
                #
         
     | 
| 
       338 
     | 
    
         
            -
                # @param size [ 
     | 
| 
      
 338 
     | 
    
         
            +
                # @param size [Integer] The number of bytes to return.
         
     | 
| 
       339 
339 
     | 
    
         
             
                #
         
     | 
| 
       340 
340 
     | 
    
         
             
                # @return [String] The data peeked.
         
     | 
| 
       341 
341 
     | 
    
         
             
                #
         
     | 
| 
         @@ -351,7 +351,7 @@ module Qpid::Proton 
     | 
|
| 
       351 
351 
     | 
    
         
             
                # Removes the specified number of bytes from the pending output queue
         
     | 
| 
       352 
352 
     | 
    
         
             
                # following the transport's head pointer.
         
     | 
| 
       353 
353 
     | 
    
         
             
                #
         
     | 
| 
       354 
     | 
    
         
            -
                # @param size [ 
     | 
| 
      
 354 
     | 
    
         
            +
                # @param size [Integer] The number of bytes to remove.
         
     | 
| 
       355 
355 
     | 
    
         
             
                #
         
     | 
| 
       356 
356 
     | 
    
         
             
                def pop(size)
         
     | 
| 
       357 
357 
     | 
    
         
             
                  Cproton.pn_transport_pop(@impl, size)
         
     | 
| 
         @@ -378,7 +378,7 @@ module Qpid::Proton 
     | 
|
| 
       378 
378 
     | 
    
         
             
                #
         
     | 
| 
       379 
379 
     | 
    
         
             
                # @param now [Time] The timestamp.
         
     | 
| 
       380 
380 
     | 
    
         
             
                #
         
     | 
| 
       381 
     | 
    
         
            -
                # @return [ 
     | 
| 
      
 381 
     | 
    
         
            +
                # @return [Integer] If non-zero, the expiration time of the next pending
         
     | 
| 
       382 
382 
     | 
    
         
             
                #   timer event for the transport. The caller must invoke #tick again at
         
     | 
| 
       383 
383 
     | 
    
         
             
                #   least once at or before this deadline occurs.
         
     | 
| 
       384 
384 
     | 
    
         
             
                #
         
     | 
| 
         @@ -386,6 +386,8 @@ module Qpid::Proton 
     | 
|
| 
       386 
386 
     | 
    
         
             
                  Cproton.pn_transport_tick(@impl, now)
         
     | 
| 
       387 
387 
     | 
    
         
             
                end
         
     | 
| 
       388 
388 
     | 
    
         | 
| 
      
 389 
     | 
    
         
            +
                # Create, or return existing, SSL object for the transport.
         
     | 
| 
      
 390 
     | 
    
         
            +
                # @return [SASL] the SASL object
         
     | 
| 
       389 
391 
     | 
    
         
             
                def sasl
         
     | 
| 
       390 
392 
     | 
    
         
             
                  SASL.new(self)
         
     | 
| 
       391 
393 
     | 
    
         
             
                end
         
     |