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">'i'</span>).<span class="ruby-identifier">first</span>
+ <span class="ruby-identifier">param</span> <span class="ruby-operator">></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">'i'</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">'0.0.0.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_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">'0.0.0.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_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">'CCCC'</span>).<span class="ruby-identifier">join</span>(<span class="ruby-string">'.'</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">'0.0.0.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_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">'C'</span>).<span class="ruby-identifier">first</span>
+ <span class="ruby-identifier">param</span> <span class="ruby-operator">></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">'C'</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">'C'</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">'C'</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">>=</span> <span class="ruby-string">'224.0.0.0'</span> <span class="ruby-keyword">and</span> <span class="ruby-identifier">address</span> <span class="ruby-operator"><=</span> <span class="ruby-string">'239.255.255.255'</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">></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">'i'</span>).<span class="ruby-identifier">first</span>
+ <span class="ruby-identifier">param</span> <span class="ruby-operator">></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">'i'</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">'i'</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">'i'</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">'i'</span>).<span class="ruby-identifier">first</span>
+ <span class="ruby-identifier">param</span> <span class="ruby-operator">></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">'i'</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">'i'</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">'i'</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>