]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - html/cgi-bin/mac.cgi
Impoved mac.cgi page. Fixed table and added some comments.
[people/pmueller/ipfire-2.x.git] / html / cgi-bin / mac.cgi
index 5a6d65bfa1a446b1c473b3cdc7bb02963fc7110c..99eb6088caa141f8e7636c65f3ea00a44429e412 100755 (executable)
@@ -46,33 +46,59 @@ if ($macsettings{'ACTION'} eq $Lang::tr{'save'}) {
        $macsettings{'MAC'} =~ s/\-/:/g;
        my @mac = split(/:/,$macsettings{"MAC"});
        if ($#mac == 5) { 
-               if (($mac[0] eq "00")||($mac[0] eq "0")){
+               foreach (@mac) {
+                       unless ($_ =~ /^[a-fA-F0-9]{1,2}$/) {
+                                       $errormessage = $Lang::tr{'mac address error not valid'};
+                                       last;                   
+                       }
+               }
+       } else {
+               $errormessage = $Lang::tr{'mac address error not valid'};
+       }
+       $macsettings{'MAC2'} =~ s/\-/:/g;
+       
+       if ( not ($macsettings{'MAC2'} eq "" )) {
+               my @mac = split(/:/,$macsettings{"MAC2"});
+               if ($#mac == 5) { 
                        foreach (@mac) {
                                unless ($_ =~ /^[a-fA-F0-9]{1,2}$/) {
                                                $errormessage = $Lang::tr{'mac address error not valid'};
                                                last;                   
-                               }                        
+                               }
                        }
-               } else {        
-                       $errormessage = $Lang::tr{'mac address error not 00'};
-               }
-               if ($errormessage eq "") {
-                       $macsettings{'MAC'} =~ s/\:/-/g;
-                       &General::writehash("${General::swroot}/mac/settings", \%macsettings);  
-                       &Header::openbox('100%', 'left', $Lang::tr{'mac address saved'});                                                               
-                       print "<font class='base'>$Lang::tr{'mac address saved txt'}</font>\n";
-                       &Header::closebox();            
+               } else {
+                       $errormessage = $Lang::tr{'mac address error not valid'};
                }
-       } else {
-               $errormessage = $Lang::tr{'mac address error not valid'};
+       }
+       if ($errormessage eq "") {
+               $macsettings{'MAC'} =~ s/\:/-/g;
+               $macsettings{'MAC2'} =~ s/\:/-/g;
+               &General::writehash("${General::swroot}/mac/settings", \%macsettings);  
+               &Header::openbox('100%', 'left', $Lang::tr{'mac address saved'});                                                               
+               print "<font class='base'>$Lang::tr{'mac address saved txt'}</font>\n";
+               &Header::closebox();
        }
 }
-if ($macsettings{'RECONNECT'} eq $Lang::tr{'mac reconnection'}) {
+if ($macsettings{'ACTION'} eq $Lang::tr{'reconnect'}) {
        system("/usr/local/bin/redctrl restart >/dev/null 2>&1 &");
        &Header::openbox('100%', 'left', $Lang::tr{'mac address recon'} );
        print "<font class='base'>$Lang::tr{'mac address done'}</font>\n";
        &Header::closebox();    
 }
+if ($macsettings{'ACTION'} eq $Lang::tr{'delete'} ) {
+       system("cat /dev/null > ${General::swroot}/mac/settings &");
+       &Header::openbox('100%', 'left', $Lang::tr{'mac address deleted'} );
+       print "<font class='base'>$Lang::tr{'mac address deleted txt'}</font>\n";
+       &Header::closebox();    
+}
+if ($macsettings{'ACTION'} eq $Lang::tr{'reboot'}) {
+       &General::log($Lang::tr{'rebooting ipfire'});
+       system("/usr/local/bin/ipfirereboot boot");
+       &Header::openbox('100%', 'left', $Lang::tr{'rebooting ipfire'} );
+       print "&nbsp;&nbsp;<img src='/images/indicator.gif' /><br /><br />";
+       print "<meta http-equiv='refresh' content='120;'>";
+       &Header::closebox();
+}
 
 # DPC move error message to top so it is seen!
 if ($errormessage) {
@@ -88,30 +114,98 @@ print <<END
 
 <table border="0"  width='100%'>
   <tr>
-    <td><font class='base'>$Lang::tr{'mac desc'}</font></td>
+    <td colspan="2"><font class='base'>$Lang::tr{'mac desc'}</font></td>
   </tr>
   <tr>
-    <td>&nbsp;</td>
+    <td colspan="2">&nbsp;</td>
   </tr>
   <tr>
-    <td><font class='base'>$Lang::tr{'mac new'}&nbsp;</font>
+    <td width="25%"><font class='base'>$Lang::tr{'mac new'}&nbsp;</font></td><td>
+END
+;
+if ($macsettings{'ACTION'} eq $Lang::tr{'delete'} ) {
+print <<END 
+      <input type="text" name="MAC" maxlength="17" value=''/></td>
+END
+;
+} else {   
+print <<END
       <input type="text" name="MAC" maxlength="17" value='$macsettings{"MAC"}'/></td>
+END
+;  
+} 
+print <<END    
+  </tr>
+    <tr>
+    <td>&nbsp;</td>
   </tr>
   <tr>
-    <td><hr /></td>
+    <td><font class='base'>$Lang::tr{'mac2 new'}&nbsp;</font></td><td>
+END
+;
+if ($macsettings{'ACTION'} eq $Lang::tr{'delete'} ) {
+print <<END 
+      <input type="text" name="MAC2" maxlength="17" value=''/><img src='/blob.gif' alt='*' /></td>
+END
+;
+} else {   
+print <<END
+      <input type="text" name="MAC2" maxlength="17" value='$macsettings{"MAC2"}'/><img src='/blob.gif' alt='*' /></td>
+END
+;  
+} 
+print <<END    
+  </tr>
+    <tr>
+    <td colspan="2"><hr /></td>
   </tr>
   <tr>
-    <td><div align="center">
+    <td colspan="2"><div align="center">
+END
+;
+if ($macsettings{'ACTION'} eq $Lang::tr{'delete'} ) {
+print <<END
+      <input type='submit' name='ACTION' value='$Lang::tr{'save'}' />
+      &nbsp;&nbsp;&nbsp;&nbsp;
+      <input type='submit' name='ACTION' value='$Lang::tr{'delete'}' />
+      &nbsp;&nbsp;&nbsp;&nbsp;
+      <input type='submit' name='ACTION' value='$Lang::tr{'reboot'}' />
+END
+;
+} elsif ($macsettings{'ACTION'} eq $Lang::tr{'save'} && $errormessage eq "") { 
+print <<END
+      <input type='submit' name='ACTION' value='$Lang::tr{'save'}' />
+      &nbsp;&nbsp;&nbsp;&nbsp;
+      <input type='submit' name='ACTION' value='$Lang::tr{'delete'}' />
+      &nbsp;&nbsp;&nbsp;&nbsp;
+      <input type='submit' name='ACTION' value='$Lang::tr{'reconnect'}' />
+END
+;
+} elsif ($macsettings{'ACTION'} eq $Lang::tr{'save'}) {        
+print <<END
+      <input type='submit' name='ACTION' value='$Lang::tr{'save'}' />
+END
+;
+} else {       
+print <<END
       <input type='submit' name='ACTION' value='$Lang::tr{'save'}' />
       &nbsp;&nbsp;&nbsp;&nbsp;
-      <input type='submit' name='RECONNECT' value='$Lang::tr{'mac reconnection'}' />
+      <input type='submit' name='ACTION' value='$Lang::tr{'delete'}' />
+END
+;
+}
+print <<END
     </div></td>
   </tr>
+  <tr>
+    <td colspan="2"align='left'>
+        <img src='/blob.gif' alt='*' />&nbsp;$Lang::tr{'this field may be blank'}</td>
+  </tr>
+
 </table>
 
 END
 ;
-
 &Header::closebox();
 
 print "</form>\n";