I'm checking for the existence and default values of various socket options using Perl.
#!/usr/bin/perl -w
use strict;
use Socket;
if (defined(SO_BROADCAST)) {
print("SO_BROADCAST defined\n");
}
if (defined(SO_REUSEPORT)) {
print("SO_REUSEPORT defined\n");
}
When I run this it outputs:
SO_BROADCAST defined
Your vendor has not defined Socket macro SO_REUSEPORT, used at ./checkopts.pl line 9
Is there a way to do this without generating warnings in the output?
That message is coming from AUTOLOAD
in Socket.pm. When it finds a constant that isn't supported, it croak
s. You can catch that with an eval:
use Socket;
if( defined eval { SO_REUSEPORT } ) {
...;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With