diff options
Diffstat (limited to 'storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/ServerINET.pm')
-rw-r--r-- | storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/ServerINET.pm | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/ServerINET.pm b/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/ServerINET.pm deleted file mode 100644 index a065c186855..00000000000 --- a/storage/ndb/tools/old_dirs/ndbnet/lib/NDB/Net/ServerINET.pm +++ /dev/null @@ -1,116 +0,0 @@ -package NDB::Net::ServerINET; - -use strict; -use Carp; -use Socket; - -require NDB::Net::Server; - -use vars qw(@ISA); -@ISA = qw(NDB::Net::Server); - -# constructors - -my $log; - -sub initmodule { - $log = NDB::Util::Log->instance; -} - -NDB::Net::ServerINET->attributes( - host => sub { s/^\s+|\s+$//g; /^\S+$/ }, - port => sub { s/^\s+|\s+$//g; /^\d+$/ }, - canon => sub { s/^\s+|\s+$//g; /^\S+$/ }, - aliases => sub { ref($_) eq 'ARRAY' }, -); - - -sub desc { - my $server = shift; - my $id = $server->getid; - my $host = $server->gethost; - return "server $id at $host"; -} - -sub new { - my $class = shift; - @_ % 2 == 0 or confess 0+@_; - my(%attr) = @_; - my $server = $class->SUPER::new(%attr); - $server->setid($attr{id}) - or $log->push, return undef; - $server->setdomain(PF_INET) - or $log->push, return undef; - $server->sethost($attr{host}) - or $log->push, return undef; - $server->setport($attr{port}) - or $log->push, return undef; - my($canon, $aliases) = gethostbyname($server->gethost); - if (! defined($canon)) { - $log->put("%s: unknown host", $server->gethost); - return undef; - } - $server->setcanon($canon) - or $log->push, return undef; - $server->setaliases([ split(' ', $aliases) ]) - or $log->push, return undef; - $server->add or - $log->push, return undef; - $log->put("added")->push($server)->debug; - return $server; -} - -# find matching servers - -sub match { - my $class = shift; - @_ == 3 or confess 0+@_; - my($host, $port, $servers) = @_; - if (! defined($port) && $host =~ /:/) { - ($host, $port) = split(/:/, $host, 2); - } - $host =~ s/^\s+|\s+$//g; - my($canon) = gethostbyname($host); - unless (defined($canon)) { - $log->put("$host: unknown host"); - return undef; - } - my $hostport = $host; - if (defined($port)) { - $port =~ s/^\s+|\s+$//g; - $port =~ /\d+$/ - or $log->put("$port: non-numeric port"), return undef; - $hostport .= ":$port"; - } - my @server = (); - for my $s (@$servers) { - ($s->getdomain == PF_INET) || next; - ($s->getcanon eq $canon) || next; - ($port && $s->getport != $port) && next; - push(@server, $s); - } - if (! @server) { - $log->put("$hostport: no server found"); - } - if (@server > 1) { - $log->put("$hostport: multiple servers at ports ", - join(' ', map($_->getport, @server))); - } - return \@server; -} - -# client side - -sub connect { - my $server = shift; - @_ == 0 or confess 0+@_; - my $socket; - $socket = NDB::Util::SocketINET->new or - $log->push, return undef; - $socket->connect($server->gethost, $server->getport) or - $log->push, return undef; - return $socket; -} - -1; -# vim:set sw=4: |