%# BEGIN LICENSE BLOCK
%# 
%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
%# 
%# (Except where explictly superceded by other copyright notices)
%# 
%# This work is made available to you under the terms of Version 2 of
%# the GNU General Public License. A copy of that license should have
%# been provided with this software, but in any event can be snarfed
%# from www.gnu.org
%# 
%# This work is distributed in the hope that it will be useful, but
%# WITHOUT ANY WARRANTY; without even the implied warranty of
%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
%# General Public License for more details.
%# 
%# 
%# Unless otherwise specified, all modifications, corrections or
%# extensions to this work which alter its source code become the
%# property of Best Practical Solutions, LLC when submitted for
%# inclusion in the work.
%# 
%# 
%# END LICENSE BLOCK
<%INIT>
# $address is passed by reference

$$address = loc("ADDRESS_UNKNOWN");

my ($iterator, $msg) = RT::IR->WhoisLookup(
    Server => $server,
    Query => $q,
    CurrentUser => $session{'CurrentUser'},
);
unless ( $iterator ) {
    $$error = $msg;
    return;
}

$field ||= 'notify';

my @res;
while ( my $query = $iterator->next ) {
    foreach my $attr ( grep lc $_ eq lc $field, $query->attributes ) {
        push @res, $query->$attr();
    }
}
unless ( @res ) {
    $$error = loc("Whois server response did not include field '[_1]'", $field);
    return;
}

($$address) = grep defined && length, @res;
</%INIT>

<%ARGS>
$server => undef
$q => undef
$field => "notify"
$address
$error
</%ARGS>
