--- /dev/null
+#!/usr/bin/perl\r
+#\r
+# SmoothWall CGIs\r
+#\r
+# This code is distributed under the terms of the GPL\r
+#\r
+# (c) The SmoothWall Team\r
+#\r
+# $Id: modem.cgi,v 1.4.2.7 2005/02/22 22:21:56 gespinasse Exp $\r
+#\r
+\r
+use strict;\r
+\r
+# enable only the following on debugging purpose\r
+#use warnings;\r
+#use CGI::Carp 'fatalsToBrowser';\r
+\r
+require 'CONFIG_ROOT/general-functions.pl';\r
+require "${General::swroot}/lang.pl";\r
+require "${General::swroot}/header.pl";\r
+\r
+my %modemsettings=();\r
+my $errormessage = '';\r
+\r
+&Header::showhttpheaders();\r
+\r
+$modemsettings{'ACTION'} = '';\r
+$modemsettings{'VALID'} = '';\r
+\r
+&Header::getcgihash(\%modemsettings);\r
+\r
+if ($modemsettings{'ACTION'} eq $Lang::tr{'save'})\r
+{ \r
+ if (!($modemsettings{'TIMEOUT'} =~ /^\d+$/))\r
+ {\r
+ $errormessage = $Lang::tr{'timeout must be a number'};\r
+ goto ERROR;\r
+ }\r
+ERROR: \r
+ if ($errormessage) {\r
+ $modemsettings{'VALID'} = 'no'; }\r
+ else {\r
+ $modemsettings{'VALID'} = 'yes'; }\r
+\r
+ &General::writehash("${General::swroot}/modem/settings", \%modemsettings);\r
+}\r
+\r
+if ($modemsettings{'ACTION'} eq $Lang::tr{'restore defaults'})\r
+{\r
+ system('/bin/cp', "${General::swroot}/modem/defaults", "${General::swroot}/modem/settings", '-f');\r
+}\r
+\r
+&General::readhash("${General::swroot}/modem/settings", \%modemsettings);\r
+\r
+&Header::openpage($Lang::tr{'modem configuration'}, 1, '');\r
+\r
+&Header::openbigbox('100%', 'left', '', $errormessage);\r
+\r
+if ($errormessage) {\r
+ &Header::openbox('100%', 'left', $Lang::tr{'error messages'});\r
+ print "<font class='base'>$errormessage </font>\n";\r
+ &Header::closebox();\r
+}\r
+\r
+print "<form method='post' action='$ENV{'SCRIPT_NAME'}'>\n";\r
+\r
+&Header::openbox('100%', 'left', "$Lang::tr{'modem configuration'}:");\r
+print <<END\r
+<table width='100%'>\r
+<tr>\r
+ <td width='25%' class='base'>$Lang::tr{'init string'} <img src='/blob.gif' alt='*' /></td>\r
+ <td width='25%'><input type='text' name='INIT' value='$modemsettings{'INIT'}' /></td>\r
+ <td width='25%' class='base'>$Lang::tr{'hangup string'} <img src='/blob.gif' alt='*' /></td>\r
+ <td width='25%'><input type='text' name='HANGUP' value='$modemsettings{'HANGUP'}' /></td>\r
+</tr>\r
+<tr>\r
+ <td class='base'>$Lang::tr{'speaker on'} <img src='/blob.gif' alt='*' /></td>\r
+ <td><input type='text' name='SPEAKER_ON' value='$modemsettings{'SPEAKER_ON'}' /></td>\r
+ <td class='base'>$Lang::tr{'speaker off'} <img src='/blob.gif' alt='*' /></td>\r
+ <td><input type='text' name='SPEAKER_OFF' value='$modemsettings{'SPEAKER_OFF'}' /></td>\r
+</tr>\r
+<tr>\r
+ <td class='base'>$Lang::tr{'tone dial'} <img src='/blob.gif' alt='*' /></td>\r
+ <td><input type='text' name='TONE_DIAL' value='$modemsettings{'TONE_DIAL'}' /></td>\r
+ <td class='base'>$Lang::tr{'pulse dial'} <img src='/blob.gif' alt='*' /></td>\r
+ <td><input type='text' name='PULSE_DIAL' value='$modemsettings{'PULSE_DIAL'}' /></td>\r
+</tr>\r
+<tr>\r
+ <td class='base'>$Lang::tr{'connect timeout'}</td>\r
+ <td><input type='text' name='TIMEOUT' value='$modemsettings{'TIMEOUT'}' /></td>\r
+ <td class='base'> </td>\r
+ <td> </td>\r
+</tr>\r
+\r
+</table>\r
+<table width='100%'>\r
+<hr />\r
+<tr>\r
+ <td width='33%'>\r
+ <img src='/blob.gif' align='top' alt='*' /> \r
+ <font class='base'>$Lang::tr{'this field may be blank'}</font>\r
+ </td>\r
+ <td width='33%' align='center'>\r
+ <input type='submit' name='ACTION' value='$Lang::tr{'restore defaults'}' />\r
+ </td>\r
+ <td width='33%' align='center'>\r
+ <input type='submit' name='ACTION' value='$Lang::tr{'save'}' />\r
+ </td>\r
+</tr>\r
+</table>\r
+</div>\r
+END\r
+;\r
+&Header::closebox();\r
+\r
+print "</form>\n";\r
+\r
+&Header::closebigbox();\r
+\r
+&Header::closepage();\r