Revision: 5603
          http://ipcop.svn.sourceforge.net/ipcop/?rev=5603&view=rev
Author:   eoberlander
Date:     2011-04-09 15:08:05 +0000 (Sat, 09 Apr 2011)

Log Message:
-----------
Add errormessage box highlighting, fix some typos, tidy code, add errorchecking 
of email server hostname.

Modified Paths:
--------------
    ipcop/trunk/html/cgi-bin/email.cgi
    ipcop/trunk/updates/1.9.20/ROOTFILES.i486-1.9.20

Modified: ipcop/trunk/html/cgi-bin/email.cgi
===================================================================
--- ipcop/trunk/html/cgi-bin/email.cgi  2011-04-09 11:37:01 UTC (rev 5602)
+++ ipcop/trunk/html/cgi-bin/email.cgi  2011-04-09 15:08:05 UTC (rev 5603)
@@ -36,7 +36,7 @@
 my %settings;
 my $errormessage = '';
 my $infomessage  = '';
-my $saveerror    = 0;
+my $saveerror    = '';
 
 my $debugFormparams = 0;
 
@@ -46,31 +46,30 @@
 &Header::showhttpheaders();
 
 # Init parameters
-$cgiparams{'EMAIL_TO'} = '';
-$cgiparams{'EMAIL_FROM'} = '';
-$cgiparams{'EMAIL_USR'} = '';
-$cgiparams{'EMAIL_PW'} = '';
-$cgiparams{'EMAIL_SERVER'} = '';
+$cgiparams{'EMAIL_TO'}          = '';
+$cgiparams{'EMAIL_FROM'}        = '';
+$cgiparams{'EMAIL_USR'}         = '';
+$cgiparams{'EMAIL_PW'}          = '';
+$cgiparams{'EMAIL_SERVER'}      = '';
 $cgiparams{'EMAIL_SERVER_PORT'} = '';
 
 &General::getcgihash(\%cgiparams);
 
 &General::readhash('/var/ipcop/email/settings', \%settings);
 
-
 if ($cgiparams{'ACTION'} eq $Lang::tr{'save'}) {
     &validSave();
 
     if ($errormessage) {
-        $saveerror = 1;
+        $saveerror = 'error';
     }
     else {    # no error, all right, save new settings
 
-        $settings{'EMAIL_TO'} = $cgiparams{'EMAIL_TO'};
-        $settings{'EMAIL_FROM'} = $cgiparams{'EMAIL_FROM'};
-        $settings{'EMAIL_USR'} = $cgiparams{'EMAIL_USR'};
-        $settings{'EMAIL_PW'} = $cgiparams{'EMAIL_PW'};
-        $settings{'EMAIL_SERVER'} = $cgiparams{'EMAIL_SERVER'};
+        $settings{'EMAIL_TO'}          = $cgiparams{'EMAIL_TO'};
+        $settings{'EMAIL_FROM'}        = $cgiparams{'EMAIL_FROM'};
+        $settings{'EMAIL_USR'}         = $cgiparams{'EMAIL_USR'};
+        $settings{'EMAIL_PW'}          = $cgiparams{'EMAIL_PW'};
+        $settings{'EMAIL_SERVER'}      = $cgiparams{'EMAIL_SERVER'};
         $settings{'EMAIL_SERVER_PORT'} = $cgiparams{'EMAIL_SERVER_PORT'};
 
         &General::writehash('/var/ipcop/email/settings', \%settings);
@@ -78,7 +77,7 @@
     }
 }    # end if ($cgiparams{'ACTION'} eq $Lang::tr{'save'})
 
-# if user want to save settings and get a errormessage, we don\xB4t
+# If user wants to save settings, but gets an errormessage, we don't
 # overwrite users input
 unless ($saveerror) {
 
@@ -86,14 +85,14 @@
     if (!exists($settings{'EMAIL_FROM'})) {
         my %mainsettings = ();
         &General::readhash('/var/ipcop/main/settings', \%mainsettings);
-        $settings{'EMAIL_FROM'} = 
$mainsettings{'HOSTNAME'}."@".$mainsettings{'DOMAINNAME'};
+        $settings{'EMAIL_FROM'} = $mainsettings{'HOSTNAME'} . "@" . 
$mainsettings{'DOMAINNAME'};
     }
 
-    $cgiparams{'EMAIL_TO'} = $settings{'EMAIL_TO'};
-    $cgiparams{'EMAIL_FROM'} = $settings{'EMAIL_FROM'};
-    $cgiparams{'EMAIL_USR'} = $settings{'EMAIL_USR'};
-    $cgiparams{'EMAIL_PW'} = $settings{'EMAIL_PW'};
-    $cgiparams{'EMAIL_SERVER'} = $settings{'EMAIL_SERVER'};
+    $cgiparams{'EMAIL_TO'}          = $settings{'EMAIL_TO'};
+    $cgiparams{'EMAIL_FROM'}        = $settings{'EMAIL_FROM'};
+    $cgiparams{'EMAIL_USR'}         = $settings{'EMAIL_USR'};
+    $cgiparams{'EMAIL_PW'}          = $settings{'EMAIL_PW'};
+    $cgiparams{'EMAIL_SERVER'}      = $settings{'EMAIL_SERVER'};
     $cgiparams{'EMAIL_SERVER_PORT'} = $settings{'EMAIL_SERVER_PORT'};
 
 }    # end unless ($saveerror)
@@ -102,7 +101,7 @@
 
     my $template = "/var/ipcop/email/templates/test";
 
-    if(-e "$template.${Lang::language}.tpl") {
+    if (-e "$template.${Lang::language}.tpl") {
         $template .= ".${Lang::language}.tpl";
     }
     else {
@@ -116,16 +115,15 @@
 
     my $return = `$cmd`;
 
-    if($return =~ /Email was sent successfully!/) {
-        $infomessage = "$Lang::tr{'test email was sent'}<br/>";
+    if ($return =~ /Email was sent successfully!/) {
+        $infomessage = "$Lang::tr{'test email was sent'}";
     }
     else {
         $errormessage = "$Lang::tr{'test email could not be sent'}:<br/>";
         $errormessage .= "$return <br />";
     }
-} # end if ($cgiparams{'ACTION'} eq $Lang::tr{'send test mail'})
+}    # end if ($cgiparams{'ACTION'} eq $Lang::tr{'send test mail'})
 
-
 &Header::openpage($Lang::tr{'email settings'}, 1, '');
 &Header::openbigbox('100%', 'left');
 
@@ -155,7 +153,7 @@
     &Header::closebox();
 }
 
-&Header::openbox('100%', 'left', "$Lang::tr{'email settings'}:");
+&Header::openbox('100%', 'left', "$Lang::tr{'email settings'}:", $saveerror);
 
 print <<END;
 <form method='post' action='$ENV{'SCRIPT_NAME'}'>
@@ -213,9 +211,6 @@
             <input type='submit' name='ACTION' value='$Lang::tr{'send test 
mail'}' />
         </td>
     </tr>
-
-
-
 </table>
 <hr />
 <table width='100%'>
@@ -227,8 +222,8 @@
     <td class='button2buttons'>
 END
 
-# if user input cause an error
-# and user want a reset, we re-read settings from settingsfile
+# If user input caused an error
+# and user wants a reset, we re-read settings from settingsfile
 if ($errormessage ne '') {
     print "<input type='submit' name='ACTION' value='$Lang::tr{'reset'}' />";
 }
@@ -252,20 +247,27 @@
 
 sub validSave
 {
-
-    if($cgiparams{'EMAIL_TO'} eq '' || (! 
&General::validemail($cgiparams{'EMAIL_TO'})) ) {
+    if ($cgiparams{'EMAIL_TO'} eq '' || 
(!&General::validemail($cgiparams{'EMAIL_TO'}))) {
         $errormessage .= "$Lang::tr{'to email bad'}<br/>";
     }
 
-    if($cgiparams{'EMAIL_FROM'} eq '' || (! 
&General::validemail($cgiparams{'EMAIL_FROM'}))) {
+    if ($cgiparams{'EMAIL_FROM'} eq '' || 
(!&General::validemail($cgiparams{'EMAIL_FROM'}))) {
         $errormessage .= "$Lang::tr{'from email bad'}<br/>";
     }
 
-    if($cgiparams{'EMAIL_SERVER'} eq '') {
+    if ($cgiparams{'EMAIL_SERVER'} eq '') {
         $errormessage .= "$Lang::tr{'email server can not be empty'}<br/>";
     }
+    elsif (!&General::validhostname($cgiparams{'EMAIL_SERVER'})
+        && !&General::validfqdn($cgiparams{'EMAIL_SERVER'}))
+    {
+        $errormessage .= "$Lang::tr{'email server'}: $Lang::tr{'invalid 
hostname'}<br/>";
+    }
 
-    if($cgiparams{'EMAIL_SERVER_PORT'} ne '' && (! 
&General::validport($cgiparams{'EMAIL_SERVER_PORT'})) ) {
+    if ($cgiparams{'EMAIL_SERVER_PORT'} ne '' && 
(!&General::validport($cgiparams{'EMAIL_SERVER_PORT'}))) {
         $errormessage .= "$Lang::tr{'email server port bad'}<br/>";
     }
+
+    # Remove trailing break
+    $errormessage =~ s/<br\/>$//;
 }

Modified: ipcop/trunk/updates/1.9.20/ROOTFILES.i486-1.9.20
===================================================================
--- ipcop/trunk/updates/1.9.20/ROOTFILES.i486-1.9.20    2011-04-09 11:37:01 UTC 
(rev 5602)
+++ ipcop/trunk/updates/1.9.20/ROOTFILES.i486-1.9.20    2011-04-09 15:08:05 UTC 
(rev 5603)
@@ -1,3 +1,4 @@
 ## please place IPCop files first, then packages sorted by alphabetical order
+/home/httpd/cgi-bin/email.cgi
 /home/httpd/cgi-bin/proxy.cgi
 /usr/local/bin/emailhelper


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Xperia(TM) PLAY
It's a major breakthrough. An authentic gaming
smartphone on the nation's most reliable network.
And it wants your games.
http://p.sf.net/sfu/verizon-sfdev
_______________________________________________
Ipcop-svn mailing list
Ipcop-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipcop-svn

Reply via email to