]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - html/cgi-bin/ddns.cgi
Merge branch 'next' of ssh://git.ipfire.org/pub/git/ipfire-2.x into next
[people/teissler/ipfire-2.x.git] / html / cgi-bin / ddns.cgi
index 1de2d909ef01d58e9a8b719842c265e370fcead3..4e51ab6fd27ea8fb20e38e88ba4e74fe0fd51624 100644 (file)
@@ -1,13 +1,23 @@
 #!/usr/bin/perl
-#
-# SmoothWall CGIs
-#
-# This code is distributed under the terms of the GPL
-#
-# (c) The SmoothWall Team
-#
-# $Id: ddns.cgi,v 1.7.2.41 2006/02/07 01:29:47 franck78 Exp $
-#
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2011  IPFire Team  <info@ipfire.org>                     #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program 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.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
 
 use strict;
 
@@ -26,6 +36,11 @@ undef (@dummy);
 my $ddnsprefix = $Lang::tr{'ddns noip prefix'};
 $ddnsprefix =~ s/%/$General::noipprefix/;
 
+my %color = ();
+my %mainsettings = ();
+&General::readhash("${General::swroot}/main/settings", \%mainsettings);
+&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color);
+
 # Files used
 my $setting = "${General::swroot}/ddns/settings";
 our $datafile = "${General::swroot}/ddns/config";
@@ -124,11 +139,13 @@ if ($settings{'ACTION'} eq $Lang::tr{'add'}) {
        }
        
        # Permit an empty HOSTNAME for the nsupdate, regfish, dyndns, enom, ovh, zoneedit, no-ip, easydns
+       #and namecheap
         unless ($settings{'SERVICE'} eq 'zoneedit.com' || $settings{'SERVICE'} eq 'nsupdate' || 
                $settings{'SERVICE'} eq 'dyndns-custom'|| $settings{'SERVICE'} eq 'regfish.com' || 
                $settings{'SERVICE'} eq 'enom.com' || $settings{'SERVICE'} eq 'dnspark.com' ||
                $settings{'SERVICE'} eq 'ovh.com' || $settings{'HOSTNAME'} ne '' ||
-               $settings{'SERVICE'} eq 'no-ip.com' || $settings{'SERVICE'} eq 'easydns.com' ) {
+               $settings{'SERVICE'} eq 'no-ip.com' || $settings{'SERVICE'} eq 'easydns.com'  ||
+               $settings{'SERVICE'} eq 'namecheap.com' )       {
            $errormessage = $Lang::tr{'hostname not set'};
        }
        unless ($settings{'HOSTNAME'} eq '' || $settings{'HOSTNAME'} =~ /^[a-zA-Z_0-9-]+$/) {
@@ -215,9 +232,11 @@ if ($settings{'ACTION'} eq '')
 &Header::openbigbox('100%', 'left', '', $errormessage);
 
 my %checked =();     # Checkbox manipulations
+$checked{'SERVICE'}{'all-inkl.com'} = '';
 $checked{'SERVICE'}{'cjb.net'} = '';
 $checked{'SERVICE'}{'dhs.org'} = '';
 $checked{'SERVICE'}{'dnspark.com'} = '';
+$checked{'SERVICE'}{'dns.lightningwirelabs.com'} = '';
 $checked{'SERVICE'}{'dtdns.com'} = '';
 $checked{'SERVICE'}{'dyndns.org'} = '';
 $checked{'SERVICE'}{'dyndns-custom'} = '';
@@ -228,11 +247,13 @@ $checked{'SERVICE'}{'easydns.com'} = '';
 $checked{'SERVICE'}{'enom.com'} = '';
 $checked{'SERVICE'}{'freedns.afraid.org'} = '';
 $checked{'SERVICE'}{'hn.org'} = '';
+$checked{'SERVICE'}{'namecheap.com'} = '';
 $checked{'SERVICE'}{'no-ip.com'} = '';
 $checked{'SERVICE'}{'nsupdate'} = '';
 $checked{'SERVICE'}{'ovh.com'} = '';
 $checked{'SERVICE'}{'regfish.com'} = '';
 $checked{'SERVICE'}{'selfhost.de'} = '';
+$checked{'SERVICE'}{'strato.com'} = '';
 $checked{'SERVICE'}{'tzo.com'} = '';
 $checked{'SERVICE'}{'zoneedit.com'} = '';
 $checked{'SERVICE'}{$settings{'SERVICE'}} = "selected='selected'";
@@ -282,7 +303,7 @@ print <<END
 <tr>
     <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td>
     <td width='70%' class='base'>$Lang::tr{'avoid dod'}</td>
-    <td width='30%' align='center' class='base'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>
+    <td width='30%' align='right' valign='top' class='base'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></td>
 </tr>
 </table>
 </form>
@@ -307,9 +328,11 @@ print <<END
 <tr>
     <td width='25%' class='base'>$Lang::tr{'service'}:</td>
     <td width='25%'><select size='1' name='SERVICE'>
+    <option $checked{'SERVICE'}{'all-inkl.com'}>all-inkl.com</option>
     <option $checked{'SERVICE'}{'cjb.net'}>cjb.net</option>
     <option $checked{'SERVICE'}{'dhs.org'}>dhs.org</option>
     <option $checked{'SERVICE'}{'dnspark.com'}>dnspark.com</option>
+    <option $checked{'SERVICE'}{'dns.lightningwirelabs.com'}>dns.lightningwirelabs.com</option>
     <option $checked{'SERVICE'}{'dtdns.com'}>dtdns.com</option>
     <option $checked{'SERVICE'}{'dyndns.org'}>dyndns.org</option>
     <option $checked{'SERVICE'}{'dyndns-custom'}>dyndns-custom</option>
@@ -320,11 +343,13 @@ print <<END
     <option $checked{'SERVICE'}{'enom.com'}>enom.com</option>
     <option $checked{'SERVICE'}{'freedns.afraid.org'}>freedns.afraid.org</option>
     <option $checked{'SERVICE'}{'hn.org'}>hn.org</option>
+       <option $checked{'SERVICE'}{'namecheap.com'}>namecheap.com</option>
     <option $checked{'SERVICE'}{'no-ip.com'}>no-ip.com</option>
     <option $checked{'SERVICE'}{'nsupdate'}>nsupdate</option>
     <option $checked{'SERVICE'}{'ovh.com'}>ovh.com</option>
     <option $checked{'SERVICE'}{'regfish.com'}>regfish.com</option>
     <option $checked{'SERVICE'}{'selfhost.de'}>selfhost.de</option>
+    <option $checked{'SERVICE'}{'strato.com'}>strato.com</option>
 <!--    <option $checked{'SERVICE'}{'tzo.com'}>tzo.com</option>        comment this service out until a working fix is developed -->
     <option $checked{'SERVICE'}{'zoneedit.com'}>zoneedit.com</option>
     </select></td>
@@ -352,13 +377,14 @@ print <<END
     <td><input type='password' name='PASSWORD2' value='$settings{'PASSWORD2'}' /></td>
 </tr>
 </table>
+<br>
 <hr />
 <table width='100%'>
 <tr>
     <td class='base' valign='top'><img src='/blob.gif' alt='*' /></td>
     <td width='70%' class='base'>$ddnsprefix</td>
     
-    <td width='30%' align='center' class='base'>
+    <td width='30%' align='right' class='base'>
        <input type='hidden' name='ACTION' value='$Lang::tr{'add'}' />
        <input type='submit' name='SUBMIT' value='$buttontext' />    </td>
 </tr>
@@ -373,14 +399,14 @@ END
 #
 &Header::openbox('100%', 'left', $Lang::tr{'current hosts'});
 print <<END
-<table width='100%'>
+<table width='100%' class='tbl'>
 <tr>
-    <td width='15%' align='center' class='boldbase'><b>$Lang::tr{'service'}</b></td>
-    <td width='25%' align='center' class='boldbase'><b>$Lang::tr{'hostname'}</b></td>
-    <td width='30%' align='center' class='boldbase'><b>$Lang::tr{'domain'}</b></td>
-    <td width='10%' align='center' class='boldbase'><b>$Lang::tr{'proxy'}</b></td>
-    <td width='10%' align='center' class='boldbase'><b>$Lang::tr{'wildcards'}</b></td>
-    <td width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></td>
+    <th width='15%' align='center' class='boldbase'><b>$Lang::tr{'service'}</b></th>
+    <th width='25%' align='center' class='boldbase'><b>$Lang::tr{'hostname'}</b></th>
+    <th width='30%' align='center' class='boldbase'><b>$Lang::tr{'domain'}</b></th>
+    <th width='10%' align='center' class='boldbase'><b>$Lang::tr{'proxy'}</b></th>
+    <th width='10%' align='center' class='boldbase'><b>$Lang::tr{'wildcards'}</b></th>
+    <th width='10%' colspan='3' class='boldbase' align='center'><b>$Lang::tr{'action'}</b></th>
 </tr>
 END
 ;
@@ -403,7 +429,7 @@ foreach my $line (@current) {
        $descproxy = $Lang::tr{'click to disable'};
     } else {
        $gifproxy = 'off.gif';
-       $descproxy = $Lang::tr{'click to enable'}; 
+       $descproxy = $Lang::tr{'click to enable'};
     }
 
     my $gifwildcard='';
@@ -427,26 +453,30 @@ foreach my $line (@current) {
        $gif = 'off.gif';
        $gdesc = $Lang::tr{'click to enable'};
     }
-                               
+
+       my $col="";
     #Colorize each line
     if ($settings{'KEY1'} eq $key) {
-       print "<tr bgcolor='${Header::colouryellow}'>";
+       print "<tr>";
+       $col="bgcolor='${Header::colouryellow}'";
     } elsif ($key % 2) {
-       print "<tr bgcolor='${Header::table2colour}'>";
+       print "<tr>";
+       $col="bgcolor='$color{'color20'}'";
     } else {
-       print "<tr bgcolor='${Header::table1colour}'>"; 
+       print "<tr>";
+       $col="bgcolor='$color{'color22'}'";
     }
-    
+
     #if a field is empty, replace it with a '---' to see colorized info!
     $temp[1] = '---' if (!$temp[1]);
     $temp[2] = '---' if (!$temp[2]);
 
     print <<END
-<td align='center'><a href='http://$temp[0]'>$temp[0]</a></td>
-<td align='center'>$sync$temp[1]</td>
-<td align='center'>$sync$temp[2]</td>
+<td align='center' $col><a href='http://$temp[0]'>$temp[0]</a></td>
+<td align='center' $col>$sync$temp[1]</td>
+<td align='center' $col>$sync$temp[2]</td>
 
-<td align='center'>
+<td align='center' $col>
 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
 <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' />
 <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gifproxy' alt='$descproxy' title='$descproxy' />
@@ -455,7 +485,7 @@ foreach my $line (@current) {
 </form>
 </td>
 
-<td align='center'>
+<td align='center' $col>
 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
 <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' />
 <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gifwildcard' alt='$descwildcard' title='$descwildcard' />
@@ -464,7 +494,7 @@ foreach my $line (@current) {
 </form>
 </td>
 
-<td align='center'>
+<td align='center' $col>
 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
 <input type='hidden' name='ACTION' value='$Lang::tr{'toggle enable disable'}' />
 <input type='image' name='$Lang::tr{'toggle enable disable'}' src='/images/$gif' alt='$gdesc' title='$gdesc' />
@@ -473,7 +503,7 @@ foreach my $line (@current) {
 </form>
 </td>
 
-<td align='center'>
+<td align='center' $col>
 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
 <input type='hidden' name='ACTION' value='$Lang::tr{'edit'}' />
 <input type='image' name='$Lang::tr{'edit'}' src='/images/edit.gif' alt='$Lang::tr{'edit'}' title='$Lang::tr{'edit'}' />
@@ -481,7 +511,7 @@ foreach my $line (@current) {
 </form>
 </td>
 
-<td align='center'>
+<td align='center' $col>
 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
 <input type='hidden' name='ACTION' value='$Lang::tr{'remove'}' />
 <input type='image' name='$Lang::tr{'remove'}' src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}' />
@@ -513,7 +543,7 @@ print <<END
     <td><img src='/images/delete.gif' alt='$Lang::tr{'remove'}' /></td>
     <td class='base'>$Lang::tr{'remove'}</td>
     <form method='post' action='$ENV{'SCRIPT_NAME'}'>
-        <td align='center' width='30%'><input type='submit' name='ACTION' value='$Lang::tr{'instant update'}' /></td>
+        <td align='right' width='30%'><input type='submit' name='ACTION' value='$Lang::tr{'instant update'}' /></td>
     </form>
 </tr>
 </table>