diff -uNr ddclient.orig/Makefile ddclient/Makefile --- ddclient.orig/Makefile 2016-05-03 03:56:34.000000000 +1200 +++ ddclient/Makefile 2017-02-08 11:02:43.625508000 +1300 @@ -3,6 +3,7 @@ PORTNAME= ddclient PORTVERSION= 3.8.3 +PORTREVISION= 1 CATEGORIES= dns MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${PORTNAME}-${PORTVERSION} @@ -18,7 +19,7 @@ USE_RC_SUBR= ${PORTNAME} -RUN_DEPENDS= p5-JSON-Any>=0:converters/p5-JSON-Any +RUN_DEPENDS= p5-JSON-PP>=0:converters/p5-JSON-PP SUB_FILES= pkg-message ddclient_force diff -uNr ddclient.orig/files/patch-ddclient ddclient/files/patch-ddclient --- ddclient.orig/files/patch-ddclient 2015-12-18 06:19:48.000000000 +1300 +++ ddclient/files/patch-ddclient 2017-02-08 11:00:52.000000000 +1300 @@ -1,14 +1,14 @@ ---- ./ddclient.orig 2011-07-25 19:41:39.000000000 -0700 -+++ ./ddclient 2011-07-25 19:41:48.000000000 -0700 -@@ -19,6 +18,7 @@ +--- ddclient.orig 2015-05-30 21:37:38.000000000 +1200 ++++ ddclient 2017-02-08 11:00:23.812579000 +1300 +@@ -25,6 +25,7 @@ use Getopt::Long; use Sys::Hostname; use IO::Socket; +use POSIX 'setsid'; - my ($VERSION) = q$Revision: 157 $ =~ /(\d+)/; + # my ($VERSION) = q$Revision: 184 $ =~ /(\d+)/; -@@ -29,9 +29,9 @@ +@@ -35,9 +36,9 @@ $program =~ s/d$//; my $now = time; my $hostname = hostname(); @@ -21,7 +21,7 @@ my $msgs = ''; my $last_msgs = ''; -@@ -39,7 +39,7 @@ +@@ -45,7 +46,7 @@ local $file = ''; local $lineno = ''; @@ -30,7 +30,7 @@ sub T_ANY {'any'}; sub T_STRING {'string'}; -@@ -678,6 +678,9 @@ +@@ -743,6 +744,9 @@ ; } elsif (opt('daemon')) { $SIG{'CHLD'} = 'IGNORE'; @@ -40,7 +40,7 @@ my $pid = fork; if ($pid < 0) { print STDERR "${program}: can not fork ($!)\n"; -@@ -685,10 +688,9 @@ +@@ -750,10 +754,9 @@ } elsif ($pid) { exit 0; } @@ -53,7 +53,7 @@ } # write out the pid file if we're daemon'ized -@@ -1478,17 +1480,17 @@ +@@ -1544,17 +1547,17 @@ ## execute the command. local *FD; if (! open(FD, $cmd)) { @@ -75,7 +75,24 @@ } else { $ok = 1; -@@ -1878,6 +1880,7 @@ +@@ -1878,13 +1881,13 @@ + ## load_json_support + ###################################################################### + sub load_json_support { +- my $json_loaded = eval {require JSON::Any}; ++ my $json_loaded = eval {require JSON::PP}; + unless ($json_loaded) { + fatal(<<"EOM"); +-Error loading the Perl module JSON::Any needed for cloudflare update. ++Error loading the Perl module JSON::PP needed for cloudflare update. + EOM + } +- import JSON::Any; ++ import JSON::PP (qw/decode_json/); + } + ###################################################################### + ## geturl +@@ -1957,6 +1960,7 @@ $sd = IO::Socket::SSL->new( PeerAddr => $peer, PeerPort => $port, @@ -83,3 +100,29 @@ Proto => 'tcp', MultiHomed => 1, Timeout => opt('timeout'), +@@ -4096,9 +4100,9 @@ + + # Strip header + $reply =~ s/^.*?\n\n//s; +- my $response = JSON::Any->jsonToObj($reply); +- if ($response->{result} eq 'error') { +- failed ("%s", $response->{msg}); ++ my $response = eval {decode_json($reply)}; ++ if (!defined $response || !defined $response->{result}) { ++ failed ("invalid json or result."); + next; + } + +@@ -4128,9 +4132,9 @@ + + # Strip header + $reply =~ s/^.*?\n\n//s; +- $response = JSON::Any->jsonToObj($reply); +- if ($response->{result} eq 'error') { +- failed ("%s", $response->{msg}); ++ $response = eval {decode_json($reply)}; ++ if (!defined $response || !defined $response->{result}) { ++ failed ("invalid json or result."); + } else { + success ("%s -- Updated Successfully to %s", $domain, $ip); +