in reply to Socket, IO::Socket and SO_BINDTODEVICE

Not that anyone appears to have ever cared about this. But it's only a small problem with IO::Socket. I read in Lincoln Stiens book that IO::Socket will handle the hard part of setsockopt for you, that is, the packed part. So Technically you could proably do
$socket->sockopt("25", pack("Z*", "eth0"));
Still though, the sockopt should fail when done the easier way. I've patched IO::Socket;
sub SO_BINDTODEVICE{25}; + if(exists $arg->{Interface}){ + my $unit = $arg->{Interface}; + my $int = pack("Z*",$unit); + setsockopt($sock,SOL_SOCKET,SO_BINDTODEVICE,$int)|| die "er +ror $!\n"; + }
Or whatever, it just gives you the option of giving interface as an arg much like Net::Ping does. I'm sure it's not useful to most of the world. Remember your milage may vary as SO_BINDTODEVICE is platform specific int as far as i know.

I've also begun to document setsockopt pack formats. If anyone knows if this has already been done i'd greatly appreciate it.