add ReusePort option to IO::Socket::INET for better multicast support (resend)
authorJeremy D. Zawodny <jzawodn@wcnet.org>
Wed, 10 Jan 2001 01:38:13 +0000 (17:38 -0800)
committerJarkko Hietaniemi <jhi@iki.fi>
Wed, 10 Jan 2001 20:50:57 +0000 (20:50 +0000)
Message-ID: <20010110013813.B41744@yahoo-inc.com>

p4raw-id: //depot/perl@8397

ext/IO/lib/IO/Socket/INET.pm

index c922bf3..6b1bfb5 100644 (file)
@@ -156,6 +156,11 @@ sub configure {
                    return _error($sock, $!, "$!");
        }
 
+       if ($arg->{ReusePort}) {
+           $sock->sockopt(SO_REUSEPORT,1) or
+                   return _error($sock, $!, "$!");
+       }
+
        if($lport || ($laddr ne INADDR_ANY) || exists $arg->{Listen}) {
            $sock->bind($lport || 0, $laddr) or
                    return _error($sock, $!, "$!");
@@ -303,6 +308,7 @@ C<IO::Socket::INET> provides.
     Type       Socket type                  SOCK_STREAM | SOCK_DGRAM | ...
     Listen     Queue size for listen
     Reuse      Set SO_REUSEADDR before binding
+    ReusePort  Set SO_REUSEPORT before binding
     Timeout    Timeout value for various operations
     MultiHomed  Try all adresses for multi-homed hosts