ionian 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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>