group_hosts_by: Use arg list instead of arrayref

This is more idiomatic.
This commit is contained in:
Richard Hansen 2024-07-12 16:16:03 -04:00
parent 64af205cfc
commit 08ccc41650
2 changed files with 10 additions and 10 deletions

View file

@ -3458,9 +3458,9 @@ sub get_ipv6 {
## group_hosts_by ## group_hosts_by
###################################################################### ######################################################################
sub group_hosts_by { sub group_hosts_by {
my ($hosts, $attributes) = @_; my ($hosts, @attrs) = @_;
my %attrs = map({ ($_ => undef); } @$attributes); my %attrs = map({ ($_ => undef); } @attrs);
my @attrs = sort(keys(%attrs)); @attrs = sort(keys(%attrs));
my %groups; my %groups;
my $d = Data::Dumper->new([])->Indent(0)->Sortkeys(1)->Terse(1)->Useqq(1); my $d = Data::Dumper->new([])->Indent(0)->Sortkeys(1)->Terse(1)->Useqq(1);
for my $h (@$hosts) { for my $h (@$hosts) {
@ -4011,7 +4011,7 @@ EoEXAMPLE
###################################################################### ######################################################################
sub nic_dyndns2_update { sub nic_dyndns2_update {
debug("\nnic_dyndns2_update -------------------"); debug("\nnic_dyndns2_update -------------------");
my %groups = group_hosts_by(\@_, [qw(login password server script static custom wildcard mx backupmx wantipv4 wantipv6)]); my %groups = group_hosts_by(\@_, qw(login password server script static custom wildcard mx backupmx wantipv4 wantipv6));
my %errors = ( my %errors = (
'badauth' => 'Bad authorization (username or password)', 'badauth' => 'Bad authorization (username or password)',
'badsys' => 'The system parameter given was not valid', 'badsys' => 'The system parameter given was not valid',
@ -4289,7 +4289,7 @@ sub dnsexit2_update_host {
###################################################################### ######################################################################
sub nic_noip_update { sub nic_noip_update {
debug("\nnic_noip_update -------------------"); debug("\nnic_noip_update -------------------");
my %groups = group_hosts_by(\@_, [qw(login password server wantipv4 wantipv6)]); my %groups = group_hosts_by(\@_, qw(login password server wantipv4 wantipv6));
my %errors = ( my %errors = (
'badauth' => 'Invalid username or password', 'badauth' => 'Invalid username or password',
'badagent' => 'Invalid user agent', 'badagent' => 'Invalid user agent',
@ -4632,7 +4632,7 @@ sub nic_zoneedit1_force_update {
###################################################################### ######################################################################
sub nic_zoneedit1_update { sub nic_zoneedit1_update {
debug("\nnic_zoneedit1_update -------------------"); debug("\nnic_zoneedit1_update -------------------");
my %groups = group_hosts_by(\@_, [qw(login password server zone wantip)]); my %groups = group_hosts_by(\@_, qw(login password server zone wantip));
for my $sig (keys %groups) { for my $sig (keys %groups) {
my @hosts = @{$groups{$sig}}; my @hosts = @{$groups{$sig}};
my $hosts = join(',', @hosts); my $hosts = join(',', @hosts);
@ -5996,7 +5996,7 @@ EoEXAMPLE
###################################################################### ######################################################################
sub nic_nsupdate_update { sub nic_nsupdate_update {
debug("\nnic_nsupdate_update -------------------"); debug("\nnic_nsupdate_update -------------------");
my %groups = group_hosts_by(\@_, [qw(login password server tcp zone wantipv4 wantipv6)]); my %groups = group_hosts_by(\@_, qw(login password server tcp zone wantipv4 wantipv6));
for my $sig (keys %groups) { for my $sig (keys %groups) {
my @hosts = @{$groups{$sig}}; my @hosts = @{$groups{$sig}};
my $hosts = join(',', @hosts); my $hosts = join(',', @hosts);
@ -6110,7 +6110,7 @@ EoEXAMPLE
###################################################################### ######################################################################
sub nic_cloudflare_update { sub nic_cloudflare_update {
debug("\nnic_cloudflare_update -------------------"); debug("\nnic_cloudflare_update -------------------");
my %groups = group_hosts_by(\@_, [qw(login password)]); my %groups = group_hosts_by(\@_, qw(login password));
for my $sig (keys %groups) { for my $sig (keys %groups) {
my @hosts = @{$groups{$sig}}; my @hosts = @{$groups{$sig}};
my $hosts = join(',', @hosts); my $hosts = join(',', @hosts);
@ -7278,7 +7278,7 @@ EoEXAMPLE
} }
sub nic_cloudns_update { sub nic_cloudns_update {
my %groups = group_hosts_by(\@_, [qw(dynurl wantip)]); my %groups = group_hosts_by(\@_, qw(dynurl wantip));
for my $hr (values(%groups)) { for my $hr (values(%groups)) {
my @hosts = @$hr; my @hosts = @$hr;
my $hosts = join(',', @hosts); my $hosts = join(',', @hosts);

View file

@ -74,7 +74,7 @@ my @test_cases = (
); );
for my $tc (@test_cases) { for my $tc (@test_cases) {
my %got = ddclient::group_hosts_by([$h1, $h2, $h3], $tc->{groupby}); my %got = ddclient::group_hosts_by([$h1, $h2, $h3], @{$tc->{groupby}});
# %got is used as a set of sets. Sort everything to make comparison easier. # %got is used as a set of sets. Sort everything to make comparison easier.
my @got = sort({ my @got = sort({
for (my $i = 0; $i < @$a && $i < @$b; ++$i) { for (my $i = 0; $i < @$a && $i < @$b; ++$i) {