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