--- rpms/smeserver-ddclient/contribs10/smeserver-ddclient-1.3.0-Update-SM2-code-for-new-services-and-protocols.patch 2023/12/04 08:48:10 1.2 +++ rpms/smeserver-ddclient/contribs10/smeserver-ddclient-1.3.0-Update-SM2-code-for-new-services-and-protocols.patch 2023/12/04 15:19:27 1.3 @@ -1,13 +1,29 @@ +diff -urN smeserver-ddclient-1.3.0.old/root/etc/e-smith/templates/etc/ddclient/ddclient.conf/10Headers smeserver-ddclient-1.3.0/root/etc/e-smith/templates/etc/ddclient/ddclient.conf/10Headers +--- smeserver-ddclient-1.3.0.old/root/etc/e-smith/templates/etc/ddclient/ddclient.conf/10Headers 2023-11-10 16:11:05.911271972 +0000 ++++ smeserver-ddclient-1.3.0/root/etc/e-smith/templates/etc/ddclient/ddclient.conf/10Headers 2023-12-04 14:55:00.000000000 +0000 +@@ -57,10 +57,11 @@ + } else { + # fw method + my $fwaddress = $ddclient{'fwaddress'}||''; ++ my $fwdevice = $ddclient{'Extinterface'}||''; + my $fwlogin = $ddclient{'fwlogin'}||''; + my $fwpassword = $ddclient{'fwpassword'}||''; + my $fwskip = $ddclient{'fwskip'}||''; +- $OUT .= "usev4=$method, fwv4=$fwaddress"; ++ $OUT .= "usev4=$fwdevice, fwv4=$fwaddress"; + $OUT .= ", fw-login=$fwlogin " if ( $fwlogin ne '' ); + $OUT .= ", fw-password=$fwpassword " if ( $fwpassword ne '' ); + $OUT .= ", fwv4-skip='$fwskip' " if ( $fwskip ne '' ); diff -urN smeserver-ddclient-1.3.0.old/root/usr/share/smanager/lib/SrvMngr/Controller/Ddclient.pm smeserver-ddclient-1.3.0/root/usr/share/smanager/lib/SrvMngr/Controller/Ddclient.pm --- smeserver-ddclient-1.3.0.old/root/usr/share/smanager/lib/SrvMngr/Controller/Ddclient.pm 2023-11-10 16:11:05.915271983 +0000 -+++ smeserver-ddclient-1.3.0/root/usr/share/smanager/lib/SrvMngr/Controller/Ddclient.pm 2023-12-01 17:16:00.000000000 +0000 -@@ -114,57 +114,168 @@ ++++ smeserver-ddclient-1.3.0/root/usr/share/smanager/lib/SrvMngr/Controller/Ddclient.pm 2023-12-04 14:53:00.000000000 +0000 +@@ -114,90 +114,164 @@ my %ddc_datas = (); +sub get_devices_names { + # -+ # Router devices from which it can get ip address ++ # Router/Firewall devices from which it can get ip address + # + my $devices = ( [ + [ '2wire' => '2Wire 1701HG Gateway' ], @@ -20,43 +36,43 @@ diff -urN smeserver-ddclient-1.3.0.old/r + [ 'cayman-3220h' => 'Cayman 3220-H DSL' ], + [ 'dlink-524' => 'D-Link DI-524' ], + [ 'dlink-604' => 'D-Link DI-604' ], -+ [ 'dlink-614' => 'D-Link DI-614+' ], -+ [ 'e-tech' => 'E-tech Router' ], -+ [ 'elsa-lancom-dsl10' => 'ELSA LanCom DSL/10 DSL FW' ], -+ [ 'elsa-lancom-dsl10-ch01' => 'ELSA LanCom DSL/10 DSL FW (isdn ch01)' ], -+ [ 'elsa-lancom-dsl10-ch02' => 'ELSA LanCom DSL/10 DSL FW (isdn ch01)' ], -+ [ 'linksys' => 'Linksys FW' ], -+ [ 'linksys-rv042-wan1' => 'Linksys RV042 Dual Homed Router WAN Port 2' ], -+ [ 'linksys-rv042-wan2' => 'Linksys RV042 Dual Homed Router WAN Port 2' ], -+ [ 'linksys-ver2' => 'Linksys FW version 2' ], -+ [ 'linksys-ver3' => 'Linksys FW version 3' ], -+ [ 'linksys-wcg200' => 'Linksys WCG200 FW' ], -+ [ 'linksys-wrt854g' => 'Linksys WRT854G FW' ], -+ [ 'maxgate-ugate3x00' => 'MaxGate UGATE-3x00 FW' ], -+ [ 'netcomm-nb3' => 'NetComm NB3' ], ++ [ 'D-Link DI-614+' => 'dlink-614' ], ++ [ 'E-tech Router' => 'e-tech' ], ++ [ 'ELSA LanCom DSL/10 DSL FW' => 'elsa-lancom-dsl10' ], ++ [ 'ELSA LanCom DSL/10 DSL FW (isdn ch01)' => 'elsa-lancom-dsl10-ch01' ], ++ [ 'ELSA LanCom DSL/10 DSL FW (isdn ch01)' => 'elsa-lancom-dsl10-ch02' ], ++ [ 'Linksys FW' => 'linksys' ], ++ [ 'Linksys RV042 Dual Homed Router WAN Port 2' => 'linksys-rv042-wan1' ], ++ [ 'Linksys RV042 Dual Homed Router WAN Port 2' => 'linksys-rv042-wan2' ], ++ [ 'Linksys FW version 2' => 'linksys-ver2' ], ++ [ 'Linksys FW version 3' => 'linksys-ver3' ], ++ [ 'Linksys WCG200 FW' => 'linksys-wcg200' ], ++ [ 'Linksys WRT854G FW' => 'linksys-wrt854g' ], ++ [ 'MaxGate UGATE-3x00 FW' => 'maxgate-ugate3x00' ], ++ [ 'NetComm NB3' => 'netcomm-nb3' ], + [ 'netgear-dg834g' => 'netgear-dg834g' ], -+ [ 'netgear-rp614' => 'Netgear RP614 FW' ], -+ [ 'netgear-rt3xx' => 'Netgear FW' ], -+ [ 'netgear-wgt624' => 'Netgear WGT624' ], -+ [ 'netgear-wpn824' => 'Netgear WPN824 FW' ], -+ [ 'netopia-r910' => 'Netopia R910 FW' ], ++ [ 'Netgear RP614 FW' => 'netgear-rp614' ], ++ [ 'Netgear FW' => 'netgear-rt3xx' ], ++ [ 'Netgear WGT624' => 'netgear-wgt624' ], ++ [ 'Netgear WPN824 FW' => 'netgear-wpn824' ], ++ [ 'Netopia R910 FW' => 'netopia-r910' ], + [ 'olitec-SX200' => 'olitec-SX200' ], -+ [ 'rtp300' => 'Linksys RTP300' ], -+ [ 'siemens-ss4200' => 'Siemens SpeedStream 4200' ], -+ [ 'sitecom-dc202' => 'Sitecom DC-202 FW' ], -+ [ 'smc-barricade' => 'SMC Barricade FW' ], -+ [ 'smc-barricade-7004vbr' => 'SMC Barricade FW (7004VBR model config)' ], -+ [ 'smc-barricade-7401bra' => 'SMC Barricade 7401BRA FW' ], -+ [ 'smc-barricade-alt' => 'SMC Barricade FW (alternate config)' ], -+ [ 'sohoware-nbg800' => 'SOHOWare BroadGuard NBG800' ], -+ [ 'sveasoft' => 'Sveasoft WRT54G/WRT54GS' ], -+ [ 'thomson-st536v6' => 'Thomson SpeedTouch 536v6' ], -+ [ 'thomson-tg782' => 'Thomson/Technicolor TG782' ], -+ [ 'vigor-2200usb' => 'Vigor 2200 USB' ], -+ [ 'watchguard-edge-x' => 'Watchguard Edge X FW' ], -+ [ 'watchguard-soho' => 'Watchguard SOHO FW' ], -+ [ 'westell-6100' => 'Westell C90-610015-06 DSL Router' ], -+ [ 'xsense-aero' => 'Xsense Aero'] ++ [ 'Linksys RTP300' => 'rtp300' ], ++ [ 'Siemens SpeedStream 4200' => 'siemens-ss4200' ], ++ [ 'Sitecom DC-202 FW' => 'sitecom-dc202' ], ++ [ 'SMC Barricade FW' => 'smc-barricade' ], ++ [ 'SMC Barricade FW (7004VBR model config)' => 'smc-barricade-7004vbr' ], ++ [ 'SMC Barricade 7401BRA FW' => 'smc-barricade-7401bra' ], ++ [ 'SMC Barricade FW (alternate config)' => 'smc-barricade-alt' ], ++ [ 'SOHOWare BroadGuard NBG800' => 'sohoware-nbg800' ], ++ [ 'Sveasoft WRT54G/WRT54GS' => 'sveasoft' ], ++ [ 'Thomson SpeedTouch 536v6' => 'thomson-st536v6' ], ++ [ 'Thomson/Technicolor TG782' => 'thomson-tg782' ], ++ [ 'Vigor 2200 USB' => 'vigor-2200usb' ], ++ [ 'Watchguard Edge X FW' => 'watchguard-edge-x' ], ++ [ 'Watchguard SOHO FW' => 'watchguard-soho' ], ++ [ 'Westell C90-610015-06 DSL Router' => 'westell-6100' ], ++ [ 'Xsense Aero' => 'xsense-aero' ] + ] ); + return $devices; + @@ -114,47 +130,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r # my $c = shift; - my $Labels = ( -+ my $dnsservices = ( [ -+ [ $c->l('1984') => '1984' ], -+ [ $c->l('changeip') => 'changeip' ], -+ [ $c->l('cloudflare') => 'cloudflare' ], -+ [ $c->l('cloudns') => 'cloudns' ], -+ [ $c->l('digitalocean') => 'digitalocean' ], -+ [ $c->l('dinahosting') => 'dinahosting' ], -+ [ $c->l('dnsexit') => 'dnsexit' ], -+ [ $c->l('dnsmadeeasy') => 'dnsmadeeasy' ], -+ [ $c->l('domeneshop') => 'domeneshop' ], -+ [ $c->l('dondominio') => 'dondominio' ], -+ [ $c->l('dslreports') => 'dslreports' ], -+ [ $c->l('duckdns') => 'duckdns' ], -+ [ $c->l('dyndns1') => 'dyndns1' ], -+ [ $c->l('dyndns2') => 'dyndns2' ], -+ [ $c->l('easydns') => 'easydns' ], -+ [ $c->l('enom') => 'enom' ], -+ [ $c->l('freedns') => 'freedns' ], -+ [ $c->l('freemyip') => 'freemyip' ], -+ [ $c->l('gandi') => 'gandi' ], -+ [ $c->l('godaddy') => 'godaddy' ], -+ [ $c->l('googledomains') => 'googledomains' ], -+ [ $c->l('hetzner') => 'hetzner' ], -+ [ $c->l('infomaniak') => 'infomaniak' ], -+ [ $c->l('keysystems') => 'keysystems' ], -+ [ $c->l('mythicdyn') => 'mythicdyn' ], -+ [ $c->l('namecheap') => 'namecheap' ], -+ [ $c->l('nfsn') => 'nfsn' ], -+ [ $c->l('njalla') => 'njalla' ], -+ [ $c->l('noip') => 'noip' ], -+ [ $c->l('nsupdate') => 'nsupdate' ], -+ [ $c->l('ovh') => 'ovh' ], -+ [ $c->l('porkbun') => 'porkbun' ], -+ [ $c->l('regfishde') => 'regfishde' ], -+ [ $c->l('sitelutions') => 'sitelutions' ], -+ [ $c->l('woima') => 'woima' ], -+ [ $c->l('yandex') => 'yandex' ], -+ [ $c->l('zoneedit') => 'zoneedit' ] -+ ] ); -+ return $dnsservices; - +- - # v3.11.1 labels - [ - [$c->l('1984') '1984'], @@ -196,9 +172,82 @@ diff -urN smeserver-ddclient-1.3.0.old/r - [$c->l('zoneedit1') 'zoneedit1'] - ] - # end of v3.11.1 labels -- ++ my $dnsservices = ( [ ++ [ $c->l('1984') => '1984' ], ++ [ $c->l('changeip') => 'changeip' ], ++ [ $c->l('cloudflare') => 'cloudflare' ], ++ [ $c->l('cloudns') => 'cloudns' ], ++ [ $c->l('digitalocean') => 'digitalocean' ], ++ [ $c->l('dinahosting') => 'dinahosting' ], ++ [ $c->l('dnsexit') => 'dnsexit' ], ++ [ $c->l('dnsmadeeasy') => 'dnsmadeeasy' ], ++ [ $c->l('domeneshop') => 'domeneshop' ], ++ [ $c->l('dondominio') => 'dondominio' ], ++ [ $c->l('dslreports') => 'dslreports' ], ++ [ $c->l('duckdns') => 'duckdns' ], ++ [ $c->l('dyndns1') => 'dyndns1' ], ++ [ $c->l('dyndns2') => 'dyndns2' ], ++ [ $c->l('easydns') => 'easydns' ], ++ [ $c->l('enom') => 'enom' ], ++ [ $c->l('freedns') => 'freedns' ], ++ [ $c->l('freemyip') => 'freemyip' ], ++ [ $c->l('gandi') => 'gandi' ], ++ [ $c->l('godaddy') => 'godaddy' ], ++ [ $c->l('googledomains') => 'googledomains' ], ++ [ $c->l('hetzner') => 'hetzner' ], ++ [ $c->l('infomaniak') => 'infomaniak' ], ++ [ $c->l('keysystems') => 'keysystems' ], ++ [ $c->l('mythicdyn') => 'mythicdyn' ], ++ [ $c->l('namecheap') => 'namecheap' ], ++ [ $c->l('nfsn') => 'nfsn' ], ++ [ $c->l('njalla') => 'njalla' ], ++ [ $c->l('noip') => 'noip' ], ++ [ $c->l('nsupdate') => 'nsupdate' ], ++ [ $c->l('ovh') => 'ovh' ], ++ [ $c->l('porkbun') => 'porkbun' ], ++ [ $c->l('regfishde') => 'regfishde' ], ++ [ $c->l('sitelutions') => 'sitelutions' ], ++ [ $c->l('woima') => 'woima' ], ++ [ $c->l('yandex') => 'yandex' ], ++ [ $c->l('zoneedit') => 'zoneedit' ] ++ ] ); ++ return $dnsservices; + - - #[ [ $c->l('CUSTOMDNS'), 'CUSTOMDNS' ], +- #[ $c->l('DYNDNS1'), 'DYNDNS1' ], +- #[ $c->l('DYNDNS2'), 'DYNDNS2' ], +- #[ $c->l('DYNDNS3'), 'DYNDNS3' ], +- #[ $c->l('ZONEDIT'), 'ZONEDIT' ], +- #[ $c->l('EASYDNS'), 'EASYDNS' ], +- #[ $c->l('HAMMER'), 'HAMMER' ], +- #[ $c->l('DSLREPORTS'), 'DSLREPORTS' ], +- #[ $c->l('EURODYNDNS'), 'EURODYNDNS' ], +- #[ $c->l('DTDNS'), 'DTDNS' ], +- #[ $c->l('LOOPIA'), 'LOOPIA' ], +- #[ $c->l('DNSPARK'), 'DNSPARK' ], +- #[ $c->l('DYNHOST'), 'DYNHOST' ], +- #[ $c->l('NOIP'), 'NOIP' ], +- #[ $c->l('CHANGEIP'), 'CHANGEIP' ], +- #[ $c->l('NAMECHEAP'), 'NAMECHEAP' ], +- #[ $c->l('SPDNS'), 'SPDNS' ], +- #[ $c->l('SITELUTIONS'), 'SITELUTIONS' ], +- #[ $c->l('FREEDNS'), 'FREEDNS' ], +- #[ $c->l('NSUPDATE'), 'NSUPDATE' ], +- #[ $c->l('CLOUDFLARE'), 'CLOUDFLARE' ], +- #[ $c->l('GOOGLEDOMAINS'), 'GOOGLEDOMAINS' ], +- #[ $c->l('DUCKDNS'), 'DUCKDNS' ], +- #[ $c->l('FREEMYIP'), 'FREEMYIP' ], +- #[ $c->l('WOIMA'), 'WOIMA' ], +- #[ $c->l('YANDEX'), 'YANDEX' ], +- #[ $c->l('DNSMADEEASY'), 'DNSMADEEASY' ], +- #[ $c->l('DONDOMINIO'), 'DONDOMINIO' ], +- #[ $c->l('NEARLYFREESPEECH'), 'NFSN' ], +- #[ $c->l('OVH'), 'OVH' ], +- #[ $c->l('CLOUDNS'), 'CLOUDNS' ] +- #] +- ); +- return $Labels; + #my $output = `ddclient -list-protocols`; # Run ddclient command and capture the output + #my @protocols; + #foreach my $line (split /\n/, $output) { @@ -208,24 +257,10 @@ diff -urN smeserver-ddclient-1.3.0.old/r + #push @protocols, [$custom_value, $protocol]; + #} + #return \@protocols; # Return a reference to the protocols array -+} -+ -+# Pre 3.11.1 dns services -+ #[ [ $c->l('CUSTOMDNS'), 'CUSTOMDNS' ], - #[ $c->l('DYNDNS1'), 'DYNDNS1' ], - #[ $c->l('DYNDNS2'), 'DYNDNS2' ], - #[ $c->l('DYNDNS3'), 'DYNDNS3' ], -@@ -196,9 +307,6 @@ - #[ $c->l('OVH'), 'OVH' ], - #[ $c->l('CLOUDNS'), 'CLOUDNS' ] - #] -- ); -- return $Labels; --} + } sub main { - # -@@ -230,13 +338,15 @@ +@@ -230,13 +304,15 @@ my $emptycust = ( scalar @FreeDomains == 0 ); my $Labels = ( @@ -240,7 +275,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r + [ $c->l('SME external Interface') => "smeIF" ], + [ $c->l('SME configuration DB') => 'smeCMD' ], + [ $c->l('web') => 'web' ], -+ [ $c->l('router') => 'router' ], ++ [ $c->l('Router/Firewall') => 'router' ], + [ $c->l('Interface') => 'if' ], + [ $c->l('IP') => 'ip' ], + [ $c->l('Command') => 'cmd' ] @@ -248,7 +283,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r ); $c->stash( -@@ -246,6 +356,9 @@ +@@ -246,6 +322,9 @@ domains => \@domains, freedomains => \@FreeDomains, methodlabels => $Labels, @@ -258,7 +293,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r emptydom => $emptydom, emptycust => $emptycust ); -@@ -260,6 +373,7 @@ +@@ -260,6 +339,7 @@ # Called to update the parameters relating to the Ip address of the server # my $c = shift; @@ -266,7 +301,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r $ddc_datas{"success"} = pushParams($c); do_display($c); } -@@ -269,6 +383,7 @@ +@@ -269,6 +349,7 @@ #Called to update/delete the ddclient for a specific inbuilt domain # my $c = shift; @@ -274,7 +309,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r my $retmsg; if ( $c->param("Route") eq "ddclient2" ) { #Route is hidden field $retmsg = performModifyCustom($c); -@@ -276,10 +391,11 @@ +@@ -276,10 +357,11 @@ else { $retmsg = performModifyDomain($c); } @@ -287,7 +322,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r $c->l( '' . $dns ) ); do_display( $c, %ddc_datas ); } -@@ -296,7 +412,7 @@ +@@ -296,7 +378,7 @@ # Create custom domain # my $c = shift; @@ -296,7 +331,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r my $modul = ''; my $trt = "NEW"; -@@ -305,18 +421,21 @@ +@@ -305,18 +387,21 @@ title => $title, modul => $modul, ddc_datas => \%ddc_datas, @@ -320,7 +355,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r $c->l( '' . $dns ) ); do_display( $c, %ddc_datas ); } -@@ -334,7 +453,7 @@ +@@ -334,7 +419,7 @@ # Display delete or modify panel for custom domain # my $c = shift; @@ -329,7 +364,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r my $modul = ''; my $trt = $c->param("trt"); -@@ -349,7 +468,9 @@ +@@ -349,7 +434,9 @@ title => $title, modul => $modul, ddc_datas => \%ddc_datas, @@ -340,7 +375,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r ); $c->render( template => 'ddclient' ); } -@@ -360,21 +481,23 @@ +@@ -360,21 +447,23 @@ # param trt = MOD or DEL # my $c = shift; @@ -367,7 +402,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r ); $c->render( template => 'ddclient' ); } -@@ -386,10 +509,11 @@ +@@ -386,10 +475,11 @@ # my $c = shift; my $route = $c->current_route; @@ -380,7 +415,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r #Delete it and return to front summary panel - depends on route domain or custom if ( $c->param("Route") eq "ddclient2" ) { #Route is hidden field -@@ -400,7 +524,7 @@ +@@ -400,7 +490,7 @@ } if ( $retmsg eq "ok" ) { @@ -389,7 +424,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r $c->l( '' . $c->param("dns") ) ); } else { $ddc_datas{"error"} = $retmsg; } -@@ -415,15 +539,16 @@ +@@ -415,15 +505,16 @@ # my $c = shift; my $route = $c->current_route; @@ -408,16 +443,68 @@ diff -urN smeserver-ddclient-1.3.0.old/r } else { $ddc_datas{"error"} = $retmsg; } do_display( $c, %ddc_datas ); -@@ -588,6 +713,8 @@ +@@ -567,6 +658,8 @@ + my $Extinterface = $ddretrieve->prop('Extinterface') || ''; + my $cmd = $ddretrieve->prop('cmd') || ''; + my $forceIP = $ddretrieve->prop('ForceIP') || ''; ++ my $fwlogin = $ddretrieve->prop('fwlogin') || ''; ++ my $fwpassword = $ddretrieve->prop('fwpassword') || ''; + my $res = { + "ssl" => $ssl, + "DeamonUpdate" => $DeamonUpdate, +@@ -574,29 +667,43 @@ + "Extinterface" => $Extinterface, + "cmd" => $cmd, + "ForceIP" => $forceIP, +- "urlcheckip" => $urlcheckip ++ "urlcheckip" => $urlcheckip, ++ "FWlogin" => $fwlogin, ++ "FWpassword" => $fwpassword + }; + return $res; + } + + sub pushParams { + my $c = shift; +- my $DeamonUpdate = $c->param('retrievedeamonupdate'); +- my $urlcheckip = $c->param('retrieveurlcheckip'); +- my $ssl = $c->param('retrievessl'); ++ my $retrievedeamonupdate = $c->param('retrievedeamonupdate'); ++ my $retrieverouter = $c->param('retrieverouter'); ++ my $retrievewebservice = $c->param('retrievewebservice'); ++ my $retrieveurlcheckip = $c->param('retrieveurlcheckip'); ++ my $retrievessl = $c->param('retrievessl'); + my $retrievemethod = $c->param('retrievemethod'); my $retrieveinterface = $c->param('retrieveinterface'); my $retrievecmd = $c->param('retrievecmd'); my $retrieveip = $c->param('retrieveip'); ++ my $retrievefwlogin = $c->param('retrieverouterlogin'); ++ my $retrievefwpassword = $c->param('retrieverouterpassword'); + + #print 1 / 0; #Crash my $ddclient = $db->get('ddclient'); - $ddclient->set_prop( 'urlcheckip' => $urlcheckip ); -@@ -616,7 +743,7 @@ +- $ddclient->set_prop( 'urlcheckip' => $urlcheckip ); +- $ddclient->set_prop( 'DeamonUpdate' => $DeamonUpdate ); +- $ddclient->set_prop( 'SSL' => $ssl ); ++ $ddclient->set_prop( 'urlcheckip' => $retrievewebservice || $retrieveurlcheckip ); ++ $ddclient->set_prop( 'DeamonUpdate' => $retrievedeamonupdate ); ++ $ddclient->set_prop( 'SSL' => $retrievessl ); + $ddclient->set_prop( 'method' => $retrievemethod ); +- $ddclient->set_prop( 'Extinterface' => $retrieveinterface ); ++ if ($retrievemethod eq 'router') { ++ $ddclient->set_prop( 'Extinterface' => $retrieverouter ); ++ } else { ++ $ddclient->set_prop( 'Extinterface' => $retrieveinterface ); ++ } + $ddclient->set_prop( 'cmd' => $retrievecmd ); + $ddclient->set_prop( 'ForceIP' => $retrieveip ); ++ $ddclient->set_prop( 'fwlogin' => $retrievefwlogin ); ++ $ddclient->set_prop( 'fwpassword' => $retrievefwpassword ); + + $domaindb->reload(); + +@@ -616,7 +723,7 @@ #------------------------------------------------------------ my $domainName = $c->param('domainName'); @@ -426,7 +513,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r $domainName = $1; } else { -@@ -624,7 +751,7 @@ +@@ -624,7 +731,7 @@ } my $domainLogin = $c->param('login'); @@ -435,7 +522,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r $domainLogin = $1; } else { -@@ -632,7 +759,7 @@ +@@ -632,7 +739,7 @@ } my $domainPassword = $c->param('password'); @@ -444,7 +531,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r $domainPassword = $1; } else { -@@ -646,7 +773,7 @@ +@@ -646,7 +753,7 @@ my $dns = $c->param('dns'); if ( $dns eq 'CUSTOMDNS' ) { @@ -453,7 +540,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r $customDNS = $1; } else -@@ -685,7 +812,7 @@ +@@ -685,7 +792,7 @@ # Attempt to delete domain #------------------------------------------------------------ @@ -462,7 +549,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r $domain = $1; } else { -@@ -726,7 +853,7 @@ +@@ -726,7 +833,7 @@ #------------------------------------------------------------ my $domainName = $c->param('domainName'); @@ -471,7 +558,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r $domainName = $1; } else { -@@ -749,7 +876,7 @@ +@@ -749,7 +856,7 @@ my $domainDesc = $c->param('desc'); my $domainLogin = $c->param('login'); @@ -480,7 +567,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r $domainLogin = $1; } else { -@@ -757,7 +884,7 @@ +@@ -757,7 +864,7 @@ } my $domainPassword = $c->param('password'); @@ -489,7 +576,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r $domainPassword = $1; } else { -@@ -771,7 +898,7 @@ +@@ -771,7 +878,7 @@ my $dns = $c->param('dns'); if ( $dns eq 'CUSTOMDNS' ) { @@ -498,7 +585,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r $customDNS = $1; } else { -@@ -809,7 +936,7 @@ +@@ -809,7 +916,7 @@ #------------------------------------------------------------ my $domainName = $c->param('domainName'); @@ -507,7 +594,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r $domainName = $1; } else { -@@ -817,7 +944,7 @@ +@@ -817,7 +924,7 @@ } my $domainLogin = $c->param('login'); @@ -516,7 +603,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r $domainLogin = $1; } else { -@@ -825,7 +952,7 @@ +@@ -825,7 +932,7 @@ } my $domainPassword = $c->param('password'); @@ -525,7 +612,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r $domainPassword = $1; } else { -@@ -839,7 +966,7 @@ +@@ -839,7 +946,7 @@ my $dns = $c->param('dns'); if ( $dns eq 'CUSTOMDNS' ) { @@ -534,7 +621,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r $customDNS = $1; } else -@@ -878,7 +1005,7 @@ +@@ -878,7 +985,7 @@ # Attempt to delete domain #------------------------------------------------------------ @@ -648,7 +735,7 @@ diff -urN smeserver-ddclient-1.3.0.old/r diff -urN smeserver-ddclient-1.3.0.old/root/usr/share/smanager/themes/default/templates/partials/_ddc_paramlist.html.ep smeserver-ddclient-1.3.0/root/usr/share/smanager/themes/default/templates/partials/_ddc_paramlist.html.ep --- smeserver-ddclient-1.3.0.old/root/usr/share/smanager/themes/default/templates/partials/_ddc_paramlist.html.ep 2023-11-10 16:11:05.902271946 +0000 -+++ smeserver-ddclient-1.3.0/root/usr/share/smanager/themes/default/templates/partials/_ddc_paramlist.html.ep 2023-12-01 17:12:00.000000000 +0000 ++++ smeserver-ddclient-1.3.0/root/usr/share/smanager/themes/default/templates/partials/_ddc_paramlist.html.ep 2023-12-04 10:53:00.000000000 +0000 @@ -1,4 +1,9 @@
+