doc/Ionian/Extension/Socket.html in ionian-0.4.1 vs doc/Ionian/Extension/Socket.html in ionian-0.5.0

- old
+ new

@@ -78,16 +78,78 @@ <ul class="link-list" role="directory"> <li ><a href="#method-c-extended">::extended</a> + <li ><a href="#method-i-cork">#cork</a> + + <li ><a href="#method-i-cork-3D">#cork=</a> + + <li ><a href="#method-i-cork-3F">#cork?</a> + <li ><a href="#method-i-initialize_ionian_socket">#initialize_ionian_socket</a> + <li ><a href="#method-i-ip_add_membership">#ip_add_membership</a> + + <li ><a href="#method-i-ip_drop_membership">#ip_drop_membership</a> + + <li ><a href="#method-i-ip_multicast_if">#ip_multicast_if</a> + + <li ><a href="#method-i-ip_multicast_if-3D">#ip_multicast_if=</a> + + <li ><a href="#method-i-ip_multicast_loop">#ip_multicast_loop</a> + + <li ><a href="#method-i-ip_multicast_loop-3D">#ip_multicast_loop=</a> + + <li ><a href="#method-i-ip_multicast_loop-3F">#ip_multicast_loop?</a> + + <li ><a href="#method-i-ip_multicast_ttl">#ip_multicast_ttl</a> + + <li ><a href="#method-i-ip_multicast_ttl-3D">#ip_multicast_ttl=</a> + + <li ><a href="#method-i-ipv6_add_membership">#ipv6_add_membership</a> + + <li ><a href="#method-i-ipv6_drop_membership">#ipv6_drop_membership</a> + + <li ><a href="#method-i-ipv6_multicast_hops">#ipv6_multicast_hops</a> + + <li ><a href="#method-i-ipv6_multicast_hops-3D">#ipv6_multicast_hops=</a> + + <li ><a href="#method-i-ipv6_multicast_if">#ipv6_multicast_if</a> + + <li ><a href="#method-i-ipv6_multicast_if-3D">#ipv6_multicast_if=</a> + + <li ><a href="#method-i-ipv6_multicast_loop">#ipv6_multicast_loop</a> + + <li ><a href="#method-i-ipv6_multicast_loop-3D">#ipv6_multicast_loop=</a> + + <li ><a href="#method-i-ipv6_multicast_loop-3F">#ipv6_multicast_loop?</a> + + <li ><a href="#method-i-multicast">#multicast</a> + + <li ><a href="#method-i-multicast-3F">#multicast?</a> + <li ><a href="#method-i-no_delay">#no_delay</a> <li ><a href="#method-i-no_delay-3D">#no_delay=</a> + <li ><a href="#method-i-no_delay-3F">#no_delay?</a> + + <li ><a href="#method-i-recork">#recork</a> + + <li ><a href="#method-i-reuse_addr">#reuse_addr</a> + + <li ><a href="#method-i-reuse_addr-3D">#reuse_addr=</a> + + <li ><a href="#method-i-reuse_addr-3F">#reuse_addr?</a> + + <li ><a href="#method-i-ttl">#ttl</a> + + <li ><a href="#method-i-ttl-3D">#ttl=</a> + + <li ><a href="#method-i-ttl-3F">#ttl?</a> + </ul> </div> </div> </nav> @@ -145,11 +207,11 @@ <div class="method-source-code" id="extended-source"> - <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 16</span> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 17</span> <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">extended</span>(<span class="ruby-identifier">obj</span>) <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">extend</span> <span class="ruby-constant">Ionian</span><span class="ruby-operator">::</span><span class="ruby-constant">Extension</span><span class="ruby-operator">::</span><span class="ruby-constant">IO</span> <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">initialize_ionian_socket</span> <span class="ruby-keyword">end</span></pre> </div> @@ -168,10 +230,116 @@ <header> <h3>Public Instance Methods</h3> </header> + <div id="method-i-cork" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">cork</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + <p>Returns true if multiple writes are buffered into a single segment. See <a +href="Socket.html#method-i-recork">recork</a>. Linux only. ( TCP_CORK )</p> + + + + + <div class="method-source-code" id="cork-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 80</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">cork</span> + <span class="ruby-identifier">param</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">getsockopt</span>(<span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_TCP</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">TCP_CORK</span>) + .<span class="ruby-identifier">data</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-string">&#39;i&#39;</span>).<span class="ruby-identifier">first</span> + <span class="ruby-identifier">param</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">false</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + <div class="aliases"> + Also aliased as: <a href="Socket.html#method-i-cork-3F">cork?</a> + </div> + + + + </div> + + + <div id="method-i-cork-3D" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">cork=</span><span + class="method-args">(value)</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + <p>Buffers multiple writes into a single segment if true. The segment is sent +once the cork flag is disabled, the upper limit on the size of a segment is +reached, the socket is closed, or 200ms elapses from the time the first +corked byte is written. See <a +href="Socket.html#method-i-recork">recork</a>. Linux only. ( TCP_CORK )</p> + + + + + <div class="method-source-code" id="cork-3D-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 96</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">cork=</span>(<span class="ruby-identifier">value</span>) + <span class="ruby-identifier">param</span> = <span class="ruby-identifier">value</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span> + <span class="ruby-keyword">self</span>.<span class="ruby-identifier">setsockopt</span> <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_TCP</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">TCP_CORK</span>, [<span class="ruby-identifier">param</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-string">&#39;i&#39;</span>) +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-cork-3F" class="method-detail method-alias"> + + <div class="method-heading"> + <span class="method-name">cork?</span><span + class="method-args">()</span> + + </div> + + + <div class="method-description"> + + + + + + + </div> + + + + + <div class="aliases"> + Alias for: <a href="Socket.html#method-i-cork">cork</a> + </div> + + </div> + + <div id="method-i-initialize_ionian_socket" class="method-detail "> <div class="method-heading"> <span class="method-name">initialize_ionian_socket</span><span class="method-args">()</span> @@ -189,11 +357,11 @@ <div class="method-source-code" id="initialize_ionian_socket-source"> - <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 23</span> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 24</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize_ionian_socket</span> <span class="ruby-keyword">end</span></pre> </div> </div> @@ -202,10 +370,700 @@ </div> + <div id="method-i-ip_add_membership" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ip_add_membership</span><span + class="method-args">(address = nil, interface = nil)</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + <p>Join a multicast group. Address is the class D multicast address (uses +remote address if not specified). Interface is the local network interface +to receive the multicast traffic on (all interfaces if not specified). ( +IP_ADD_MEMBERSHIP )</p> + + + + + <div class="method-source-code" id="ip_add_membership-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 114</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ip_add_membership</span>(<span class="ruby-identifier">address</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">interface</span> = <span class="ruby-keyword">nil</span>) + <span class="ruby-identifier">address</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">remote_address</span>.<span class="ruby-identifier">ip_address</span> + <span class="ruby-identifier">interface</span> <span class="ruby-operator">||=</span> <span class="ruby-string">&#39;0.0.0.0&#39;</span> + + <span class="ruby-keyword">self</span>.<span class="ruby-identifier">setsockopt</span> <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_IP</span>, + <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IP_ADD_MEMBERSHIP</span>, + <span class="ruby-constant">IPAddr</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">address</span>).<span class="ruby-identifier">hton</span> <span class="ruby-operator">+</span> <span class="ruby-constant">IPAddr</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">interface</span>).<span class="ruby-identifier">hton</span> + <span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-ip_drop_membership" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ip_drop_membership</span><span + class="method-args">(address = nil, interface = nil)</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + <p>Leave a multicast group. Address is the class D multicast address (uses +remote address if not specified). Interface is the local network interface +the multicast traffic is received on (all interfaces if not specified). ( +IP_DROP_MEMBERSHIP )</p> + + + + + <div class="method-source-code" id="ip_drop_membership-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 130</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ip_drop_membership</span>(<span class="ruby-identifier">address</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">interface</span> = <span class="ruby-keyword">nil</span>) + <span class="ruby-identifier">address</span> <span class="ruby-operator">||=</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">remote_address</span>.<span class="ruby-identifier">ip_address</span> + <span class="ruby-identifier">interface</span> <span class="ruby-operator">||=</span> <span class="ruby-string">&#39;0.0.0.0&#39;</span> + + <span class="ruby-keyword">self</span>.<span class="ruby-identifier">setsockopt</span> <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_IP</span>, + <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IP_DROP_MEMBERSHIP</span>, + <span class="ruby-constant">IPAddr</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">address</span>).<span class="ruby-identifier">hton</span> <span class="ruby-operator">+</span> <span class="ruby-constant">IPAddr</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">interface</span>).<span class="ruby-identifier">hton</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-ip_multicast_if" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ip_multicast_if</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + <p>Returns the default interface for outgoing multicasts. ( IP_MULTICAST_IF )</p> + + + + + <div class="method-source-code" id="ip_multicast_if-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 142</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ip_multicast_if</span> + <span class="ruby-keyword">self</span>.<span class="ruby-identifier">getsockopt</span>(<span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_IP</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IP_MULTICAST_IF</span>) + .<span class="ruby-identifier">data</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-string">&#39;CCCC&#39;</span>).<span class="ruby-identifier">join</span>(<span class="ruby-string">&#39;.&#39;</span>) +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-ip_multicast_if-3D" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ip_multicast_if=</span><span + class="method-args">(interface = nil)</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + <p>Specify default interface for outgoing multicasts. ( IP_MULTICAST_IF )</p> + + + + + <div class="method-source-code" id="ip_multicast_if-3D-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 149</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ip_multicast_if=</span>(<span class="ruby-identifier">interface</span> = <span class="ruby-keyword">nil</span>) + <span class="ruby-identifier">interface</span> <span class="ruby-operator">||=</span> <span class="ruby-string">&#39;0.0.0.0&#39;</span> + + <span class="ruby-keyword">self</span>.<span class="ruby-identifier">setsockopt</span> <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_IP</span>, + <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IP_MULTICAST_IF</span>, + <span class="ruby-constant">IPAddr</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">interface</span>).<span class="ruby-identifier">hton</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-ip_multicast_loop" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ip_multicast_loop</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + <p>Returns true if loopback of outgoing multicasts is enabled. ( +IP_MULTICAST_LOOP )</p> + + + + + <div class="method-source-code" id="ip_multicast_loop-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 173</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ip_multicast_loop</span> + <span class="ruby-identifier">param</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">getsockopt</span>(<span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_IP</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IP_MULTICAST_LOOP</span>) + .<span class="ruby-identifier">data</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-string">&#39;C&#39;</span>).<span class="ruby-identifier">first</span> + <span class="ruby-identifier">param</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">false</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + <div class="aliases"> + Also aliased as: <a href="Socket.html#method-i-ip_multicast_loop-3F">ip_multicast_loop?</a> + </div> + + + + </div> + + + <div id="method-i-ip_multicast_loop-3D" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ip_multicast_loop=</span><span + class="method-args">(value)</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + <p>Enables loopback of outgoing multicasts if true. ( IP_MULTICAST_LOOP )</p> + + + + + <div class="method-source-code" id="ip_multicast_loop-3D-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 183</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ip_multicast_loop=</span>(<span class="ruby-identifier">value</span>) + <span class="ruby-identifier">param</span> = <span class="ruby-identifier">value</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span> + <span class="ruby-keyword">self</span>.<span class="ruby-identifier">setsockopt</span> <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_IP</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IP_MULTICAST_LOOP</span>, [<span class="ruby-identifier">param</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-string">&#39;C&#39;</span>) +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-ip_multicast_loop-3F" class="method-detail method-alias"> + + <div class="method-heading"> + <span class="method-name">ip_multicast_loop?</span><span + class="method-args">()</span> + + </div> + + + <div class="method-description"> + + + + + + + </div> + + + + + <div class="aliases"> + Alias for: <a href="Socket.html#method-i-ip_multicast_loop">ip_multicast_loop</a> + </div> + + </div> + + + <div id="method-i-ip_multicast_ttl" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ip_multicast_ttl</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + <p>Returns the time to live (hop limit) for outgoing multicasts. ( +IP_MULTICAST_TTL )</p> + + + + + <div class="method-source-code" id="ip_multicast_ttl-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 160</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ip_multicast_ttl</span> + <span class="ruby-keyword">self</span>.<span class="ruby-identifier">getsockopt</span>(<span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_IP</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IP_MULTICAST_TTL</span>) + .<span class="ruby-identifier">data</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-string">&#39;C&#39;</span>).<span class="ruby-identifier">first</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-ip_multicast_ttl-3D" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ip_multicast_ttl=</span><span + class="method-args">(value)</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + <p>Set the time to live (hop limit) for outgoing multicasts. ( +IP_MULTICAST_TTL )</p> + + + + + <div class="method-source-code" id="ip_multicast_ttl-3D-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 167</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ip_multicast_ttl=</span>(<span class="ruby-identifier">value</span>) + <span class="ruby-keyword">self</span>.<span class="ruby-identifier">setsockopt</span> <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_IP</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IP_MULTICAST_TTL</span>, [<span class="ruby-identifier">value</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-string">&#39;C&#39;</span>) +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-ipv6_add_membership" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ipv6_add_membership</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + + + + + + <div class="method-source-code" id="ipv6_add_membership-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 188</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ipv6_add_membership</span> + <span class="ruby-comment"># TODO: Implement</span> + <span class="ruby-keyword">false</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-ipv6_drop_membership" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ipv6_drop_membership</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + + + + + + <div class="method-source-code" id="ipv6_drop_membership-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 193</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ipv6_drop_membership</span> + <span class="ruby-comment"># TODO: Implement</span> + <span class="ruby-keyword">false</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-ipv6_multicast_hops" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ipv6_multicast_hops</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + + + + + + <div class="method-source-code" id="ipv6_multicast_hops-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 207</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ipv6_multicast_hops</span> + <span class="ruby-comment"># TODO: Implement</span> + <span class="ruby-keyword">false</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-ipv6_multicast_hops-3D" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ipv6_multicast_hops=</span><span + class="method-args">(value)</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + + + + + + <div class="method-source-code" id="ipv6_multicast_hops-3D-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 212</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ipv6_multicast_hops=</span>(<span class="ruby-identifier">value</span>) + <span class="ruby-comment"># TODO: Implement</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-ipv6_multicast_if" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ipv6_multicast_if</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + + + + + + <div class="method-source-code" id="ipv6_multicast_if-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 198</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ipv6_multicast_if</span> + <span class="ruby-comment"># TODO: Implement</span> + <span class="ruby-keyword">false</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-ipv6_multicast_if-3D" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ipv6_multicast_if=</span><span + class="method-args">(value)</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + + + + + + <div class="method-source-code" id="ipv6_multicast_if-3D-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 203</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ipv6_multicast_if=</span>(<span class="ruby-identifier">value</span>) + <span class="ruby-comment"># TODO: Implement</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-ipv6_multicast_loop" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ipv6_multicast_loop</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + + + + + + <div class="method-source-code" id="ipv6_multicast_loop-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 216</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ipv6_multicast_loop</span> + <span class="ruby-comment"># TODO: Implement</span> + <span class="ruby-keyword">false</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + <div class="aliases"> + Also aliased as: <a href="Socket.html#method-i-ipv6_multicast_loop-3F">ipv6_multicast_loop?</a> + </div> + + + + </div> + + + <div id="method-i-ipv6_multicast_loop-3D" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ipv6_multicast_loop=</span><span + class="method-args">(value)</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + + + + + + <div class="method-source-code" id="ipv6_multicast_loop-3D-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 223</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ipv6_multicast_loop=</span>(<span class="ruby-identifier">value</span>) + <span class="ruby-comment"># TODO: Implement</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-ipv6_multicast_loop-3F" class="method-detail method-alias"> + + <div class="method-heading"> + <span class="method-name">ipv6_multicast_loop?</span><span + class="method-args">()</span> + + </div> + + + <div class="method-description"> + + + + + + + </div> + + + + + <div class="aliases"> + Alias for: <a href="Socket.html#method-i-ipv6_multicast_loop">ipv6_multicast_loop</a> + </div> + + </div> + + + <div id="method-i-multicast" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">multicast</span><span + class="method-args">(address)</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + <p>Returns true if the given address is within the multicast range.</p> + + + + + <div class="method-source-code" id="multicast-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 230</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">multicast</span>(<span class="ruby-identifier">address</span>) + <span class="ruby-identifier">address</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-string">&#39;224.0.0.0&#39;</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">address</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-string">&#39;239.255.255.255&#39;</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">false</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + <div class="aliases"> + Also aliased as: <a href="Socket.html#method-i-multicast-3F">multicast?</a> + </div> + + + + </div> + + + <div id="method-i-multicast-3F" class="method-detail method-alias"> + + <div class="method-heading"> + <span class="method-name">multicast?</span><span + class="method-args">(address)</span> + + </div> + + + <div class="method-description"> + + + + + + + </div> + + + + + <div class="aliases"> + Alias for: <a href="Socket.html#method-i-multicast">multicast</a> + </div> + + </div> + + <div id="method-i-no_delay" class="method-detail "> <div class="method-heading"> <span class="method-name">no_delay</span><span class="method-args">()</span> @@ -215,27 +1073,31 @@ </div> <div class="method-description"> - <p>Returns true if the TCP_NODELAY flag is enabled (Nagle disabled). Otherwise -false.</p> + <p>Returns true if the Nagle algorithm is disabled. ( TCP_NODELAY )</p> <div class="method-source-code" id="no_delay-source"> - <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 28</span> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 61</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">no_delay</span> - <span class="ruby-identifier">nagle_disabled</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">getsockopt</span>(<span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_TCP</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">TCP_NODELAY</span>).<span class="ruby-identifier">data</span>.<span class="ruby-identifier">ord</span> - <span class="ruby-identifier">nagle_disabled</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">false</span> + <span class="ruby-identifier">param</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">getsockopt</span>(<span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_TCP</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">TCP_NODELAY</span>) + .<span class="ruby-identifier">data</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-string">&#39;i&#39;</span>).<span class="ruby-identifier">first</span> + <span class="ruby-identifier">param</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">false</span> <span class="ruby-keyword">end</span></pre> </div> </div> + <div class="aliases"> + Also aliased as: <a href="Socket.html#method-i-no_delay-3F">no_delay?</a> + </div> + </div> @@ -250,27 +1112,288 @@ </div> <div class="method-description"> - <p>Setting to true enables the TCP_NODELAY flag (disables Nagle). Setting to -false disables the flag (enables Nagle).</p> + <p>Disables the Nagle algorithm if true. ( TCP_NODELAY )</p> <div class="method-source-code" id="no_delay-3D-source"> - <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 35</span> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 71</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">no_delay=</span>(<span class="ruby-identifier">value</span>) - <span class="ruby-identifier">disable_nagle</span> = <span class="ruby-identifier">value</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span> - <span class="ruby-keyword">self</span>.<span class="ruby-identifier">setsockopt</span> <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_TCP</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">TCP_NODELAY</span>, <span class="ruby-identifier">disable_nagle</span> + <span class="ruby-identifier">param</span> = <span class="ruby-identifier">value</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span> + <span class="ruby-keyword">self</span>.<span class="ruby-identifier">setsockopt</span> <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_TCP</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">TCP_NODELAY</span>, [<span class="ruby-identifier">param</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-string">&#39;i&#39;</span>) <span class="ruby-keyword">end</span></pre> </div> </div> + + </div> + + + <div id="method-i-no_delay-3F" class="method-detail method-alias"> + + <div class="method-heading"> + <span class="method-name">no_delay?</span><span + class="method-args">()</span> + + </div> + + + <div class="method-description"> + + + + + + + </div> + + + + + <div class="aliases"> + Alias for: <a href="Socket.html#method-i-no_delay">no_delay</a> + </div> + + </div> + + + <div id="method-i-recork" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">recork</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + <p>Unsets cork to transmit data, then reapplies cork. ( TCP_CORK )</p> + + + + + <div class="method-source-code" id="recork-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 103</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">recork</span> + <span class="ruby-keyword">self</span>.<span class="ruby-identifier">setsockopt</span> <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_TCP</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">TCP_CORK</span>, [<span class="ruby-value">0</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-string">&#39;i&#39;</span>) + <span class="ruby-keyword">self</span>.<span class="ruby-identifier">setsockopt</span> <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_TCP</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">TCP_CORK</span>, [<span class="ruby-value">1</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-string">&#39;i&#39;</span>) +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-reuse_addr" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">reuse_addr</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + <p>Returns true if local address reuse is allowed. ( SO_REUSEADDR )</p> + + + + + <div class="method-source-code" id="reuse_addr-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 29</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">reuse_addr</span> + <span class="ruby-identifier">param</span> = <span class="ruby-keyword">self</span>.<span class="ruby-identifier">getsockopt</span>(<span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">SOL_SOCKET</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">SO_REUSEADDR</span>) + .<span class="ruby-identifier">data</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-string">&#39;i&#39;</span>).<span class="ruby-identifier">first</span> + <span class="ruby-identifier">param</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">false</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + <div class="aliases"> + Also aliased as: <a href="Socket.html#method-i-reuse_addr-3F">reuse_addr?</a> + </div> + + + + </div> + + + <div id="method-i-reuse_addr-3D" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">reuse_addr=</span><span + class="method-args">(value)</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + <p>Allows local address reuse if true. ( SO_REUSEADDR )</p> + + + + + <div class="method-source-code" id="reuse_addr-3D-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 39</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">reuse_addr=</span>(<span class="ruby-identifier">value</span>) + <span class="ruby-identifier">param</span> = <span class="ruby-identifier">value</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span> + <span class="ruby-keyword">self</span>.<span class="ruby-identifier">setsockopt</span> <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">SOL_SOCKET</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">SO_REUSEADDR</span>, [<span class="ruby-identifier">param</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-string">&#39;i&#39;</span>) +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-reuse_addr-3F" class="method-detail method-alias"> + + <div class="method-heading"> + <span class="method-name">reuse_addr?</span><span + class="method-args">()</span> + + </div> + + + <div class="method-description"> + + + + + + + </div> + + + + + <div class="aliases"> + Alias for: <a href="Socket.html#method-i-reuse_addr">reuse_addr</a> + </div> + + </div> + + + <div id="method-i-ttl" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ttl</span><span + class="method-args">()</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + <p>Returns the time to live (hop limit). ( IP_TTL )</p> + + + + + <div class="method-source-code" id="ttl-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 46</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ttl</span> + <span class="ruby-keyword">self</span>.<span class="ruby-identifier">getsockopt</span>(<span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_IP</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IP_TTL</span>) + .<span class="ruby-identifier">data</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-string">&#39;i&#39;</span>).<span class="ruby-identifier">first</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + <div class="aliases"> + Also aliased as: <a href="Socket.html#method-i-ttl-3F">ttl?</a> + </div> + + + + </div> + + + <div id="method-i-ttl-3D" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">ttl=</span><span + class="method-args">(value)</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + <p>Sets the time to live (hop limit). ( IP_TTL )</p> + + + + + <div class="method-source-code" id="ttl-3D-source"> + <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 55</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">ttl=</span>(<span class="ruby-identifier">value</span>) + <span class="ruby-keyword">self</span>.<span class="ruby-identifier">setsockopt</span> <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IPPROTO_IP</span>, <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IP_TTL</span>, [<span class="ruby-identifier">value</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-string">&#39;i&#39;</span>) +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + + <div id="method-i-ttl-3F" class="method-detail method-alias"> + + <div class="method-heading"> + <span class="method-name">ttl?</span><span + class="method-args">()</span> + + </div> + + + <div class="method-description"> + + + + + + + </div> + + + + + <div class="aliases"> + Alias for: <a href="Socket.html#method-i-ttl">ttl</a> + </div> </div> </section>