ionian 0.4.1 → 0.5.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.
@@ -80,12 +80,74 @@
80
80
 
81
81
  <li ><a href="#method-c-extended">::extended</a>
82
82
 
83
+ <li ><a href="#method-i-cork">#cork</a>
84
+
85
+ <li ><a href="#method-i-cork-3D">#cork=</a>
86
+
87
+ <li ><a href="#method-i-cork-3F">#cork?</a>
88
+
83
89
  <li ><a href="#method-i-initialize_ionian_socket">#initialize_ionian_socket</a>
84
90
 
91
+ <li ><a href="#method-i-ip_add_membership">#ip_add_membership</a>
92
+
93
+ <li ><a href="#method-i-ip_drop_membership">#ip_drop_membership</a>
94
+
95
+ <li ><a href="#method-i-ip_multicast_if">#ip_multicast_if</a>
96
+
97
+ <li ><a href="#method-i-ip_multicast_if-3D">#ip_multicast_if=</a>
98
+
99
+ <li ><a href="#method-i-ip_multicast_loop">#ip_multicast_loop</a>
100
+
101
+ <li ><a href="#method-i-ip_multicast_loop-3D">#ip_multicast_loop=</a>
102
+
103
+ <li ><a href="#method-i-ip_multicast_loop-3F">#ip_multicast_loop?</a>
104
+
105
+ <li ><a href="#method-i-ip_multicast_ttl">#ip_multicast_ttl</a>
106
+
107
+ <li ><a href="#method-i-ip_multicast_ttl-3D">#ip_multicast_ttl=</a>
108
+
109
+ <li ><a href="#method-i-ipv6_add_membership">#ipv6_add_membership</a>
110
+
111
+ <li ><a href="#method-i-ipv6_drop_membership">#ipv6_drop_membership</a>
112
+
113
+ <li ><a href="#method-i-ipv6_multicast_hops">#ipv6_multicast_hops</a>
114
+
115
+ <li ><a href="#method-i-ipv6_multicast_hops-3D">#ipv6_multicast_hops=</a>
116
+
117
+ <li ><a href="#method-i-ipv6_multicast_if">#ipv6_multicast_if</a>
118
+
119
+ <li ><a href="#method-i-ipv6_multicast_if-3D">#ipv6_multicast_if=</a>
120
+
121
+ <li ><a href="#method-i-ipv6_multicast_loop">#ipv6_multicast_loop</a>
122
+
123
+ <li ><a href="#method-i-ipv6_multicast_loop-3D">#ipv6_multicast_loop=</a>
124
+
125
+ <li ><a href="#method-i-ipv6_multicast_loop-3F">#ipv6_multicast_loop?</a>
126
+
127
+ <li ><a href="#method-i-multicast">#multicast</a>
128
+
129
+ <li ><a href="#method-i-multicast-3F">#multicast?</a>
130
+
85
131
  <li ><a href="#method-i-no_delay">#no_delay</a>
86
132
 
87
133
  <li ><a href="#method-i-no_delay-3D">#no_delay=</a>
88
134
 
135
+ <li ><a href="#method-i-no_delay-3F">#no_delay?</a>
136
+
137
+ <li ><a href="#method-i-recork">#recork</a>
138
+
139
+ <li ><a href="#method-i-reuse_addr">#reuse_addr</a>
140
+
141
+ <li ><a href="#method-i-reuse_addr-3D">#reuse_addr=</a>
142
+
143
+ <li ><a href="#method-i-reuse_addr-3F">#reuse_addr?</a>
144
+
145
+ <li ><a href="#method-i-ttl">#ttl</a>
146
+
147
+ <li ><a href="#method-i-ttl-3D">#ttl=</a>
148
+
149
+ <li ><a href="#method-i-ttl-3F">#ttl?</a>
150
+
89
151
  </ul>
90
152
  </div>
91
153
 
@@ -147,7 +209,7 @@ my_socket.extend <a href="../Socket.html">Ionian::Socket</a></p>
147
209
 
148
210
 
149
211
  <div class="method-source-code" id="extended-source">
150
- <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 16</span>
212
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 17</span>
151
213
  <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">extended</span>(<span class="ruby-identifier">obj</span>)
152
214
  <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>
153
215
  <span class="ruby-identifier">obj</span>.<span class="ruby-identifier">initialize_ionian_socket</span>
@@ -170,6 +232,112 @@ my_socket.extend <a href="../Socket.html">Ionian::Socket</a></p>
170
232
  </header>
171
233
 
172
234
 
235
+ <div id="method-i-cork" class="method-detail ">
236
+
237
+ <div class="method-heading">
238
+ <span class="method-name">cork</span><span
239
+ class="method-args">()</span>
240
+
241
+ <span class="method-click-advice">click to toggle source</span>
242
+
243
+ </div>
244
+
245
+
246
+ <div class="method-description">
247
+
248
+ <p>Returns true if multiple writes are buffered into a single segment. See <a
249
+ href="Socket.html#method-i-recork">recork</a>. Linux only. ( TCP_CORK )</p>
250
+
251
+
252
+
253
+
254
+ <div class="method-source-code" id="cork-source">
255
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 80</span>
256
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">cork</span>
257
+ <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>)
258
+ .<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>
259
+ <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>
260
+ <span class="ruby-keyword">end</span></pre>
261
+ </div>
262
+
263
+ </div>
264
+
265
+
266
+ <div class="aliases">
267
+ Also aliased as: <a href="Socket.html#method-i-cork-3F">cork?</a>
268
+ </div>
269
+
270
+
271
+
272
+ </div>
273
+
274
+
275
+ <div id="method-i-cork-3D" class="method-detail ">
276
+
277
+ <div class="method-heading">
278
+ <span class="method-name">cork=</span><span
279
+ class="method-args">(value)</span>
280
+
281
+ <span class="method-click-advice">click to toggle source</span>
282
+
283
+ </div>
284
+
285
+
286
+ <div class="method-description">
287
+
288
+ <p>Buffers multiple writes into a single segment if true. The segment is sent
289
+ once the cork flag is disabled, the upper limit on the size of a segment is
290
+ reached, the socket is closed, or 200ms elapses from the time the first
291
+ corked byte is written. See <a
292
+ href="Socket.html#method-i-recork">recork</a>. Linux only. ( TCP_CORK )</p>
293
+
294
+
295
+
296
+
297
+ <div class="method-source-code" id="cork-3D-source">
298
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 96</span>
299
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">cork=</span>(<span class="ruby-identifier">value</span>)
300
+ <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>
301
+ <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>)
302
+ <span class="ruby-keyword">end</span></pre>
303
+ </div>
304
+
305
+ </div>
306
+
307
+
308
+
309
+
310
+ </div>
311
+
312
+
313
+ <div id="method-i-cork-3F" class="method-detail method-alias">
314
+
315
+ <div class="method-heading">
316
+ <span class="method-name">cork?</span><span
317
+ class="method-args">()</span>
318
+
319
+ </div>
320
+
321
+
322
+ <div class="method-description">
323
+
324
+
325
+
326
+
327
+
328
+
329
+ </div>
330
+
331
+
332
+
333
+
334
+ <div class="aliases">
335
+ Alias for: <a href="Socket.html#method-i-cork">cork</a>
336
+ </div>
337
+
338
+ </div>
339
+
340
+
173
341
  <div id="method-i-initialize_ionian_socket" class="method-detail ">
174
342
 
175
343
  <div class="method-heading">
@@ -191,7 +359,7 @@ extend is called on an object.</p>
191
359
 
192
360
 
193
361
  <div class="method-source-code" id="initialize_ionian_socket-source">
194
- <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 23</span>
362
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 24</span>
195
363
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize_ionian_socket</span>
196
364
  <span class="ruby-keyword">end</span></pre>
197
365
  </div>
@@ -204,10 +372,92 @@ extend is called on an object.</p>
204
372
  </div>
205
373
 
206
374
 
207
- <div id="method-i-no_delay" class="method-detail ">
375
+ <div id="method-i-ip_add_membership" class="method-detail ">
208
376
 
209
377
  <div class="method-heading">
210
- <span class="method-name">no_delay</span><span
378
+ <span class="method-name">ip_add_membership</span><span
379
+ class="method-args">(address = nil, interface = nil)</span>
380
+
381
+ <span class="method-click-advice">click to toggle source</span>
382
+
383
+ </div>
384
+
385
+
386
+ <div class="method-description">
387
+
388
+ <p>Join a multicast group. Address is the class D multicast address (uses
389
+ remote address if not specified). Interface is the local network interface
390
+ to receive the multicast traffic on (all interfaces if not specified). (
391
+ IP_ADD_MEMBERSHIP )</p>
392
+
393
+
394
+
395
+
396
+ <div class="method-source-code" id="ip_add_membership-source">
397
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 114</span>
398
+ <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>)
399
+ <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>
400
+ <span class="ruby-identifier">interface</span> <span class="ruby-operator">||=</span> <span class="ruby-string">&#39;0.0.0.0&#39;</span>
401
+
402
+ <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>,
403
+ <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IP_ADD_MEMBERSHIP</span>,
404
+ <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>
405
+ <span class="ruby-keyword">end</span></pre>
406
+ </div>
407
+
408
+ </div>
409
+
410
+
411
+
412
+
413
+ </div>
414
+
415
+
416
+ <div id="method-i-ip_drop_membership" class="method-detail ">
417
+
418
+ <div class="method-heading">
419
+ <span class="method-name">ip_drop_membership</span><span
420
+ class="method-args">(address = nil, interface = nil)</span>
421
+
422
+ <span class="method-click-advice">click to toggle source</span>
423
+
424
+ </div>
425
+
426
+
427
+ <div class="method-description">
428
+
429
+ <p>Leave a multicast group. Address is the class D multicast address (uses
430
+ remote address if not specified). Interface is the local network interface
431
+ the multicast traffic is received on (all interfaces if not specified). (
432
+ IP_DROP_MEMBERSHIP )</p>
433
+
434
+
435
+
436
+
437
+ <div class="method-source-code" id="ip_drop_membership-source">
438
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 130</span>
439
+ <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>)
440
+ <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>
441
+ <span class="ruby-identifier">interface</span> <span class="ruby-operator">||=</span> <span class="ruby-string">&#39;0.0.0.0&#39;</span>
442
+
443
+ <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>,
444
+ <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IP_DROP_MEMBERSHIP</span>,
445
+ <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>
446
+ <span class="ruby-keyword">end</span></pre>
447
+ </div>
448
+
449
+ </div>
450
+
451
+
452
+
453
+
454
+ </div>
455
+
456
+
457
+ <div id="method-i-ip_multicast_if" class="method-detail ">
458
+
459
+ <div class="method-heading">
460
+ <span class="method-name">ip_multicast_if</span><span
211
461
  class="method-args">()</span>
212
462
 
213
463
  <span class="method-click-advice">click to toggle source</span>
@@ -217,17 +467,16 @@ extend is called on an object.</p>
217
467
 
218
468
  <div class="method-description">
219
469
 
220
- <p>Returns true if the TCP_NODELAY flag is enabled (Nagle disabled). Otherwise
221
- false.</p>
470
+ <p>Returns the default interface for outgoing multicasts. ( IP_MULTICAST_IF )</p>
222
471
 
223
472
 
224
473
 
225
474
 
226
- <div class="method-source-code" id="no_delay-source">
227
- <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 28</span>
228
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">no_delay</span>
229
- <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>
230
- <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>
475
+ <div class="method-source-code" id="ip_multicast_if-source">
476
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 142</span>
477
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ip_multicast_if</span>
478
+ <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>)
479
+ .<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>)
231
480
  <span class="ruby-keyword">end</span></pre>
232
481
  </div>
233
482
 
@@ -239,10 +488,87 @@ false.</p>
239
488
  </div>
240
489
 
241
490
 
242
- <div id="method-i-no_delay-3D" class="method-detail ">
491
+ <div id="method-i-ip_multicast_if-3D" class="method-detail ">
243
492
 
244
493
  <div class="method-heading">
245
- <span class="method-name">no_delay=</span><span
494
+ <span class="method-name">ip_multicast_if=</span><span
495
+ class="method-args">(interface = nil)</span>
496
+
497
+ <span class="method-click-advice">click to toggle source</span>
498
+
499
+ </div>
500
+
501
+
502
+ <div class="method-description">
503
+
504
+ <p>Specify default interface for outgoing multicasts. ( IP_MULTICAST_IF )</p>
505
+
506
+
507
+
508
+
509
+ <div class="method-source-code" id="ip_multicast_if-3D-source">
510
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 149</span>
511
+ <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>)
512
+ <span class="ruby-identifier">interface</span> <span class="ruby-operator">||=</span> <span class="ruby-string">&#39;0.0.0.0&#39;</span>
513
+
514
+ <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>,
515
+ <span class="ruby-operator">::</span><span class="ruby-constant">Socket</span><span class="ruby-operator">::</span><span class="ruby-constant">IP_MULTICAST_IF</span>,
516
+ <span class="ruby-constant">IPAddr</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">interface</span>).<span class="ruby-identifier">hton</span>
517
+ <span class="ruby-keyword">end</span></pre>
518
+ </div>
519
+
520
+ </div>
521
+
522
+
523
+
524
+
525
+ </div>
526
+
527
+
528
+ <div id="method-i-ip_multicast_loop" class="method-detail ">
529
+
530
+ <div class="method-heading">
531
+ <span class="method-name">ip_multicast_loop</span><span
532
+ class="method-args">()</span>
533
+
534
+ <span class="method-click-advice">click to toggle source</span>
535
+
536
+ </div>
537
+
538
+
539
+ <div class="method-description">
540
+
541
+ <p>Returns true if loopback of outgoing multicasts is enabled. (
542
+ IP_MULTICAST_LOOP )</p>
543
+
544
+
545
+
546
+
547
+ <div class="method-source-code" id="ip_multicast_loop-source">
548
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 173</span>
549
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ip_multicast_loop</span>
550
+ <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>)
551
+ .<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>
552
+ <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>
553
+ <span class="ruby-keyword">end</span></pre>
554
+ </div>
555
+
556
+ </div>
557
+
558
+
559
+ <div class="aliases">
560
+ Also aliased as: <a href="Socket.html#method-i-ip_multicast_loop-3F">ip_multicast_loop?</a>
561
+ </div>
562
+
563
+
564
+
565
+ </div>
566
+
567
+
568
+ <div id="method-i-ip_multicast_loop-3D" class="method-detail ">
569
+
570
+ <div class="method-heading">
571
+ <span class="method-name">ip_multicast_loop=</span><span
246
572
  class="method-args">(value)</span>
247
573
 
248
574
  <span class="method-click-advice">click to toggle source</span>
@@ -252,17 +578,16 @@ false.</p>
252
578
 
253
579
  <div class="method-description">
254
580
 
255
- <p>Setting to true enables the TCP_NODELAY flag (disables Nagle). Setting to
256
- false disables the flag (enables Nagle).</p>
581
+ <p>Enables loopback of outgoing multicasts if true. ( IP_MULTICAST_LOOP )</p>
257
582
 
258
583
 
259
584
 
260
585
 
261
- <div class="method-source-code" id="no_delay-3D-source">
262
- <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 35</span>
263
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">no_delay=</span>(<span class="ruby-identifier">value</span>)
264
- <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>
265
- <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>
586
+ <div class="method-source-code" id="ip_multicast_loop-3D-source">
587
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 183</span>
588
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ip_multicast_loop=</span>(<span class="ruby-identifier">value</span>)
589
+ <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>
590
+ <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>)
266
591
  <span class="ruby-keyword">end</span></pre>
267
592
  </div>
268
593
 
@@ -274,6 +599,804 @@ false disables the flag (enables Nagle).</p>
274
599
  </div>
275
600
 
276
601
 
602
+ <div id="method-i-ip_multicast_loop-3F" class="method-detail method-alias">
603
+
604
+ <div class="method-heading">
605
+ <span class="method-name">ip_multicast_loop?</span><span
606
+ class="method-args">()</span>
607
+
608
+ </div>
609
+
610
+
611
+ <div class="method-description">
612
+
613
+
614
+
615
+
616
+
617
+
618
+ </div>
619
+
620
+
621
+
622
+
623
+ <div class="aliases">
624
+ Alias for: <a href="Socket.html#method-i-ip_multicast_loop">ip_multicast_loop</a>
625
+ </div>
626
+
627
+ </div>
628
+
629
+
630
+ <div id="method-i-ip_multicast_ttl" class="method-detail ">
631
+
632
+ <div class="method-heading">
633
+ <span class="method-name">ip_multicast_ttl</span><span
634
+ class="method-args">()</span>
635
+
636
+ <span class="method-click-advice">click to toggle source</span>
637
+
638
+ </div>
639
+
640
+
641
+ <div class="method-description">
642
+
643
+ <p>Returns the time to live (hop limit) for outgoing multicasts. (
644
+ IP_MULTICAST_TTL )</p>
645
+
646
+
647
+
648
+
649
+ <div class="method-source-code" id="ip_multicast_ttl-source">
650
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 160</span>
651
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ip_multicast_ttl</span>
652
+ <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>)
653
+ .<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>
654
+ <span class="ruby-keyword">end</span></pre>
655
+ </div>
656
+
657
+ </div>
658
+
659
+
660
+
661
+
662
+ </div>
663
+
664
+
665
+ <div id="method-i-ip_multicast_ttl-3D" class="method-detail ">
666
+
667
+ <div class="method-heading">
668
+ <span class="method-name">ip_multicast_ttl=</span><span
669
+ class="method-args">(value)</span>
670
+
671
+ <span class="method-click-advice">click to toggle source</span>
672
+
673
+ </div>
674
+
675
+
676
+ <div class="method-description">
677
+
678
+ <p>Set the time to live (hop limit) for outgoing multicasts. (
679
+ IP_MULTICAST_TTL )</p>
680
+
681
+
682
+
683
+
684
+ <div class="method-source-code" id="ip_multicast_ttl-3D-source">
685
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 167</span>
686
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ip_multicast_ttl=</span>(<span class="ruby-identifier">value</span>)
687
+ <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>)
688
+ <span class="ruby-keyword">end</span></pre>
689
+ </div>
690
+
691
+ </div>
692
+
693
+
694
+
695
+
696
+ </div>
697
+
698
+
699
+ <div id="method-i-ipv6_add_membership" class="method-detail ">
700
+
701
+ <div class="method-heading">
702
+ <span class="method-name">ipv6_add_membership</span><span
703
+ class="method-args">()</span>
704
+
705
+ <span class="method-click-advice">click to toggle source</span>
706
+
707
+ </div>
708
+
709
+
710
+ <div class="method-description">
711
+
712
+
713
+
714
+
715
+
716
+
717
+ <div class="method-source-code" id="ipv6_add_membership-source">
718
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 188</span>
719
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ipv6_add_membership</span>
720
+ <span class="ruby-comment"># TODO: Implement</span>
721
+ <span class="ruby-keyword">false</span>
722
+ <span class="ruby-keyword">end</span></pre>
723
+ </div>
724
+
725
+ </div>
726
+
727
+
728
+
729
+
730
+ </div>
731
+
732
+
733
+ <div id="method-i-ipv6_drop_membership" class="method-detail ">
734
+
735
+ <div class="method-heading">
736
+ <span class="method-name">ipv6_drop_membership</span><span
737
+ class="method-args">()</span>
738
+
739
+ <span class="method-click-advice">click to toggle source</span>
740
+
741
+ </div>
742
+
743
+
744
+ <div class="method-description">
745
+
746
+
747
+
748
+
749
+
750
+
751
+ <div class="method-source-code" id="ipv6_drop_membership-source">
752
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 193</span>
753
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ipv6_drop_membership</span>
754
+ <span class="ruby-comment"># TODO: Implement</span>
755
+ <span class="ruby-keyword">false</span>
756
+ <span class="ruby-keyword">end</span></pre>
757
+ </div>
758
+
759
+ </div>
760
+
761
+
762
+
763
+
764
+ </div>
765
+
766
+
767
+ <div id="method-i-ipv6_multicast_hops" class="method-detail ">
768
+
769
+ <div class="method-heading">
770
+ <span class="method-name">ipv6_multicast_hops</span><span
771
+ class="method-args">()</span>
772
+
773
+ <span class="method-click-advice">click to toggle source</span>
774
+
775
+ </div>
776
+
777
+
778
+ <div class="method-description">
779
+
780
+
781
+
782
+
783
+
784
+
785
+ <div class="method-source-code" id="ipv6_multicast_hops-source">
786
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 207</span>
787
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ipv6_multicast_hops</span>
788
+ <span class="ruby-comment"># TODO: Implement</span>
789
+ <span class="ruby-keyword">false</span>
790
+ <span class="ruby-keyword">end</span></pre>
791
+ </div>
792
+
793
+ </div>
794
+
795
+
796
+
797
+
798
+ </div>
799
+
800
+
801
+ <div id="method-i-ipv6_multicast_hops-3D" class="method-detail ">
802
+
803
+ <div class="method-heading">
804
+ <span class="method-name">ipv6_multicast_hops=</span><span
805
+ class="method-args">(value)</span>
806
+
807
+ <span class="method-click-advice">click to toggle source</span>
808
+
809
+ </div>
810
+
811
+
812
+ <div class="method-description">
813
+
814
+
815
+
816
+
817
+
818
+
819
+ <div class="method-source-code" id="ipv6_multicast_hops-3D-source">
820
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 212</span>
821
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ipv6_multicast_hops=</span>(<span class="ruby-identifier">value</span>)
822
+ <span class="ruby-comment"># TODO: Implement</span>
823
+ <span class="ruby-keyword">end</span></pre>
824
+ </div>
825
+
826
+ </div>
827
+
828
+
829
+
830
+
831
+ </div>
832
+
833
+
834
+ <div id="method-i-ipv6_multicast_if" class="method-detail ">
835
+
836
+ <div class="method-heading">
837
+ <span class="method-name">ipv6_multicast_if</span><span
838
+ class="method-args">()</span>
839
+
840
+ <span class="method-click-advice">click to toggle source</span>
841
+
842
+ </div>
843
+
844
+
845
+ <div class="method-description">
846
+
847
+
848
+
849
+
850
+
851
+
852
+ <div class="method-source-code" id="ipv6_multicast_if-source">
853
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 198</span>
854
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ipv6_multicast_if</span>
855
+ <span class="ruby-comment"># TODO: Implement</span>
856
+ <span class="ruby-keyword">false</span>
857
+ <span class="ruby-keyword">end</span></pre>
858
+ </div>
859
+
860
+ </div>
861
+
862
+
863
+
864
+
865
+ </div>
866
+
867
+
868
+ <div id="method-i-ipv6_multicast_if-3D" class="method-detail ">
869
+
870
+ <div class="method-heading">
871
+ <span class="method-name">ipv6_multicast_if=</span><span
872
+ class="method-args">(value)</span>
873
+
874
+ <span class="method-click-advice">click to toggle source</span>
875
+
876
+ </div>
877
+
878
+
879
+ <div class="method-description">
880
+
881
+
882
+
883
+
884
+
885
+
886
+ <div class="method-source-code" id="ipv6_multicast_if-3D-source">
887
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 203</span>
888
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ipv6_multicast_if=</span>(<span class="ruby-identifier">value</span>)
889
+ <span class="ruby-comment"># TODO: Implement</span>
890
+ <span class="ruby-keyword">end</span></pre>
891
+ </div>
892
+
893
+ </div>
894
+
895
+
896
+
897
+
898
+ </div>
899
+
900
+
901
+ <div id="method-i-ipv6_multicast_loop" class="method-detail ">
902
+
903
+ <div class="method-heading">
904
+ <span class="method-name">ipv6_multicast_loop</span><span
905
+ class="method-args">()</span>
906
+
907
+ <span class="method-click-advice">click to toggle source</span>
908
+
909
+ </div>
910
+
911
+
912
+ <div class="method-description">
913
+
914
+
915
+
916
+
917
+
918
+
919
+ <div class="method-source-code" id="ipv6_multicast_loop-source">
920
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 216</span>
921
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ipv6_multicast_loop</span>
922
+ <span class="ruby-comment"># TODO: Implement</span>
923
+ <span class="ruby-keyword">false</span>
924
+ <span class="ruby-keyword">end</span></pre>
925
+ </div>
926
+
927
+ </div>
928
+
929
+
930
+ <div class="aliases">
931
+ Also aliased as: <a href="Socket.html#method-i-ipv6_multicast_loop-3F">ipv6_multicast_loop?</a>
932
+ </div>
933
+
934
+
935
+
936
+ </div>
937
+
938
+
939
+ <div id="method-i-ipv6_multicast_loop-3D" class="method-detail ">
940
+
941
+ <div class="method-heading">
942
+ <span class="method-name">ipv6_multicast_loop=</span><span
943
+ class="method-args">(value)</span>
944
+
945
+ <span class="method-click-advice">click to toggle source</span>
946
+
947
+ </div>
948
+
949
+
950
+ <div class="method-description">
951
+
952
+
953
+
954
+
955
+
956
+
957
+ <div class="method-source-code" id="ipv6_multicast_loop-3D-source">
958
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 223</span>
959
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ipv6_multicast_loop=</span>(<span class="ruby-identifier">value</span>)
960
+ <span class="ruby-comment"># TODO: Implement</span>
961
+ <span class="ruby-keyword">end</span></pre>
962
+ </div>
963
+
964
+ </div>
965
+
966
+
967
+
968
+
969
+ </div>
970
+
971
+
972
+ <div id="method-i-ipv6_multicast_loop-3F" class="method-detail method-alias">
973
+
974
+ <div class="method-heading">
975
+ <span class="method-name">ipv6_multicast_loop?</span><span
976
+ class="method-args">()</span>
977
+
978
+ </div>
979
+
980
+
981
+ <div class="method-description">
982
+
983
+
984
+
985
+
986
+
987
+
988
+ </div>
989
+
990
+
991
+
992
+
993
+ <div class="aliases">
994
+ Alias for: <a href="Socket.html#method-i-ipv6_multicast_loop">ipv6_multicast_loop</a>
995
+ </div>
996
+
997
+ </div>
998
+
999
+
1000
+ <div id="method-i-multicast" class="method-detail ">
1001
+
1002
+ <div class="method-heading">
1003
+ <span class="method-name">multicast</span><span
1004
+ class="method-args">(address)</span>
1005
+
1006
+ <span class="method-click-advice">click to toggle source</span>
1007
+
1008
+ </div>
1009
+
1010
+
1011
+ <div class="method-description">
1012
+
1013
+ <p>Returns true if the given address is within the multicast range.</p>
1014
+
1015
+
1016
+
1017
+
1018
+ <div class="method-source-code" id="multicast-source">
1019
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 230</span>
1020
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">multicast</span>(<span class="ruby-identifier">address</span>)
1021
+ <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>
1022
+ <span class="ruby-keyword">end</span></pre>
1023
+ </div>
1024
+
1025
+ </div>
1026
+
1027
+
1028
+ <div class="aliases">
1029
+ Also aliased as: <a href="Socket.html#method-i-multicast-3F">multicast?</a>
1030
+ </div>
1031
+
1032
+
1033
+
1034
+ </div>
1035
+
1036
+
1037
+ <div id="method-i-multicast-3F" class="method-detail method-alias">
1038
+
1039
+ <div class="method-heading">
1040
+ <span class="method-name">multicast?</span><span
1041
+ class="method-args">(address)</span>
1042
+
1043
+ </div>
1044
+
1045
+
1046
+ <div class="method-description">
1047
+
1048
+
1049
+
1050
+
1051
+
1052
+
1053
+ </div>
1054
+
1055
+
1056
+
1057
+
1058
+ <div class="aliases">
1059
+ Alias for: <a href="Socket.html#method-i-multicast">multicast</a>
1060
+ </div>
1061
+
1062
+ </div>
1063
+
1064
+
1065
+ <div id="method-i-no_delay" class="method-detail ">
1066
+
1067
+ <div class="method-heading">
1068
+ <span class="method-name">no_delay</span><span
1069
+ class="method-args">()</span>
1070
+
1071
+ <span class="method-click-advice">click to toggle source</span>
1072
+
1073
+ </div>
1074
+
1075
+
1076
+ <div class="method-description">
1077
+
1078
+ <p>Returns true if the Nagle algorithm is disabled. ( TCP_NODELAY )</p>
1079
+
1080
+
1081
+
1082
+
1083
+ <div class="method-source-code" id="no_delay-source">
1084
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 61</span>
1085
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">no_delay</span>
1086
+ <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>)
1087
+ .<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>
1088
+ <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>
1089
+ <span class="ruby-keyword">end</span></pre>
1090
+ </div>
1091
+
1092
+ </div>
1093
+
1094
+
1095
+ <div class="aliases">
1096
+ Also aliased as: <a href="Socket.html#method-i-no_delay-3F">no_delay?</a>
1097
+ </div>
1098
+
1099
+
1100
+
1101
+ </div>
1102
+
1103
+
1104
+ <div id="method-i-no_delay-3D" class="method-detail ">
1105
+
1106
+ <div class="method-heading">
1107
+ <span class="method-name">no_delay=</span><span
1108
+ class="method-args">(value)</span>
1109
+
1110
+ <span class="method-click-advice">click to toggle source</span>
1111
+
1112
+ </div>
1113
+
1114
+
1115
+ <div class="method-description">
1116
+
1117
+ <p>Disables the Nagle algorithm if true. ( TCP_NODELAY )</p>
1118
+
1119
+
1120
+
1121
+
1122
+ <div class="method-source-code" id="no_delay-3D-source">
1123
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 71</span>
1124
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">no_delay=</span>(<span class="ruby-identifier">value</span>)
1125
+ <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>
1126
+ <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>)
1127
+ <span class="ruby-keyword">end</span></pre>
1128
+ </div>
1129
+
1130
+ </div>
1131
+
1132
+
1133
+
1134
+
1135
+ </div>
1136
+
1137
+
1138
+ <div id="method-i-no_delay-3F" class="method-detail method-alias">
1139
+
1140
+ <div class="method-heading">
1141
+ <span class="method-name">no_delay?</span><span
1142
+ class="method-args">()</span>
1143
+
1144
+ </div>
1145
+
1146
+
1147
+ <div class="method-description">
1148
+
1149
+
1150
+
1151
+
1152
+
1153
+
1154
+ </div>
1155
+
1156
+
1157
+
1158
+
1159
+ <div class="aliases">
1160
+ Alias for: <a href="Socket.html#method-i-no_delay">no_delay</a>
1161
+ </div>
1162
+
1163
+ </div>
1164
+
1165
+
1166
+ <div id="method-i-recork" class="method-detail ">
1167
+
1168
+ <div class="method-heading">
1169
+ <span class="method-name">recork</span><span
1170
+ class="method-args">()</span>
1171
+
1172
+ <span class="method-click-advice">click to toggle source</span>
1173
+
1174
+ </div>
1175
+
1176
+
1177
+ <div class="method-description">
1178
+
1179
+ <p>Unsets cork to transmit data, then reapplies cork. ( TCP_CORK )</p>
1180
+
1181
+
1182
+
1183
+
1184
+ <div class="method-source-code" id="recork-source">
1185
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 103</span>
1186
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">recork</span>
1187
+ <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>)
1188
+ <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>)
1189
+ <span class="ruby-keyword">end</span></pre>
1190
+ </div>
1191
+
1192
+ </div>
1193
+
1194
+
1195
+
1196
+
1197
+ </div>
1198
+
1199
+
1200
+ <div id="method-i-reuse_addr" class="method-detail ">
1201
+
1202
+ <div class="method-heading">
1203
+ <span class="method-name">reuse_addr</span><span
1204
+ class="method-args">()</span>
1205
+
1206
+ <span class="method-click-advice">click to toggle source</span>
1207
+
1208
+ </div>
1209
+
1210
+
1211
+ <div class="method-description">
1212
+
1213
+ <p>Returns true if local address reuse is allowed. ( SO_REUSEADDR )</p>
1214
+
1215
+
1216
+
1217
+
1218
+ <div class="method-source-code" id="reuse_addr-source">
1219
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 29</span>
1220
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">reuse_addr</span>
1221
+ <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>)
1222
+ .<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>
1223
+ <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>
1224
+ <span class="ruby-keyword">end</span></pre>
1225
+ </div>
1226
+
1227
+ </div>
1228
+
1229
+
1230
+ <div class="aliases">
1231
+ Also aliased as: <a href="Socket.html#method-i-reuse_addr-3F">reuse_addr?</a>
1232
+ </div>
1233
+
1234
+
1235
+
1236
+ </div>
1237
+
1238
+
1239
+ <div id="method-i-reuse_addr-3D" class="method-detail ">
1240
+
1241
+ <div class="method-heading">
1242
+ <span class="method-name">reuse_addr=</span><span
1243
+ class="method-args">(value)</span>
1244
+
1245
+ <span class="method-click-advice">click to toggle source</span>
1246
+
1247
+ </div>
1248
+
1249
+
1250
+ <div class="method-description">
1251
+
1252
+ <p>Allows local address reuse if true. ( SO_REUSEADDR )</p>
1253
+
1254
+
1255
+
1256
+
1257
+ <div class="method-source-code" id="reuse_addr-3D-source">
1258
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 39</span>
1259
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">reuse_addr=</span>(<span class="ruby-identifier">value</span>)
1260
+ <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>
1261
+ <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>)
1262
+ <span class="ruby-keyword">end</span></pre>
1263
+ </div>
1264
+
1265
+ </div>
1266
+
1267
+
1268
+
1269
+
1270
+ </div>
1271
+
1272
+
1273
+ <div id="method-i-reuse_addr-3F" class="method-detail method-alias">
1274
+
1275
+ <div class="method-heading">
1276
+ <span class="method-name">reuse_addr?</span><span
1277
+ class="method-args">()</span>
1278
+
1279
+ </div>
1280
+
1281
+
1282
+ <div class="method-description">
1283
+
1284
+
1285
+
1286
+
1287
+
1288
+
1289
+ </div>
1290
+
1291
+
1292
+
1293
+
1294
+ <div class="aliases">
1295
+ Alias for: <a href="Socket.html#method-i-reuse_addr">reuse_addr</a>
1296
+ </div>
1297
+
1298
+ </div>
1299
+
1300
+
1301
+ <div id="method-i-ttl" class="method-detail ">
1302
+
1303
+ <div class="method-heading">
1304
+ <span class="method-name">ttl</span><span
1305
+ class="method-args">()</span>
1306
+
1307
+ <span class="method-click-advice">click to toggle source</span>
1308
+
1309
+ </div>
1310
+
1311
+
1312
+ <div class="method-description">
1313
+
1314
+ <p>Returns the time to live (hop limit). ( IP_TTL )</p>
1315
+
1316
+
1317
+
1318
+
1319
+ <div class="method-source-code" id="ttl-source">
1320
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 46</span>
1321
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ttl</span>
1322
+ <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>)
1323
+ .<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>
1324
+ <span class="ruby-keyword">end</span></pre>
1325
+ </div>
1326
+
1327
+ </div>
1328
+
1329
+
1330
+ <div class="aliases">
1331
+ Also aliased as: <a href="Socket.html#method-i-ttl-3F">ttl?</a>
1332
+ </div>
1333
+
1334
+
1335
+
1336
+ </div>
1337
+
1338
+
1339
+ <div id="method-i-ttl-3D" class="method-detail ">
1340
+
1341
+ <div class="method-heading">
1342
+ <span class="method-name">ttl=</span><span
1343
+ class="method-args">(value)</span>
1344
+
1345
+ <span class="method-click-advice">click to toggle source</span>
1346
+
1347
+ </div>
1348
+
1349
+
1350
+ <div class="method-description">
1351
+
1352
+ <p>Sets the time to live (hop limit). ( IP_TTL )</p>
1353
+
1354
+
1355
+
1356
+
1357
+ <div class="method-source-code" id="ttl-3D-source">
1358
+ <pre><span class="ruby-comment"># File lib/ionian/extension/socket.rb, line 55</span>
1359
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ttl=</span>(<span class="ruby-identifier">value</span>)
1360
+ <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>)
1361
+ <span class="ruby-keyword">end</span></pre>
1362
+ </div>
1363
+
1364
+ </div>
1365
+
1366
+
1367
+
1368
+
1369
+ </div>
1370
+
1371
+
1372
+ <div id="method-i-ttl-3F" class="method-detail method-alias">
1373
+
1374
+ <div class="method-heading">
1375
+ <span class="method-name">ttl?</span><span
1376
+ class="method-args">()</span>
1377
+
1378
+ </div>
1379
+
1380
+
1381
+ <div class="method-description">
1382
+
1383
+
1384
+
1385
+
1386
+
1387
+
1388
+ </div>
1389
+
1390
+
1391
+
1392
+
1393
+ <div class="aliases">
1394
+ Alias for: <a href="Socket.html#method-i-ttl">ttl</a>
1395
+ </div>
1396
+
1397
+ </div>
1398
+
1399
+
277
1400
  </section>
278
1401
 
279
1402
  </section>