Firewall-Masquerade avec interface http

crabs_firewall-3.0.1 ©2005-2011 - Christophe CAZAJUS (crabs-mettre_le_signe_at-crabs-world.com)

~~ / WWW / SITE / firewall.js
Makefile index.html info.cgi graph.cgi firewall.css firewall.js httprequest.js graph.js favicon.ico firewall.jpeg red.png sel.png
    1 //
    2 // =============================================================================
    3 //  crabs_firewall-3.0.1 : Firewall-Masquerade avec interface http
    4 //  Copyright (C) 2005-2011 : Christophe CAZAJUS (crabs-mettre_le_signe_at-crabs-world.com)
    5 //
    6 //  Ce source fait partie d'un projet logiciel libre. Vous pouvez le distribuer
    7 //  et/ou le modifier en respectant les termes de la GNU General Public License
    8 //  version 2 ou (suite a votre propre choix) une version ulterieure.
    9 //
   10 //  Ce programme est distribue dans l'espoir qu'il puisse etre utile, mais
   11 //  sans aucune garantie, meme si il est associe a un produit qui vous en
   12 //  propose une. Conformez-vous a la GNU General Public License pour avoir
   13 //  plus de precisions.
   14 //
   15 //  L'auteur ne peut etre tenu responsable de l'utilisation faite des
   16 //  composantes associees a ce projet (en partie ou dans leur totalite).
   17 //
   18 //  Une copie du fichier de la GNU GPL est fournie dans le repertoire DOC
   19 //  de ce projet sous le nom gnu_gpl.txt
   20 //
   21 // =============================================================================
   22 //
   23 var mode ;
   24 var current_config = null ;
   25 var current_log = null ;
   26 var current_graph = null ;
   27 var current_list ;
   28 var the_w ;
   29 var the_h ;
   30 var div_img ;
   31 var array_graph ;
   32 
   33 function firewall_init()
   34     {
   35     current_list = new Array( null, null, null ) ;
   36     div_img = new Array( 'r0', 's1', 'r1', 's0', 'cpu' ) ;
   37     accueil() ;
   38     array_graph = new Array() ;
   39     }
   40 
   41 function commun( r )
   42     {
   43     if ( mode != 'config' )
   44         {
   45         if ( current_config ) unselect( 'config_sl' ) ;
   46         current_config = null ;
   47         }
   48     if ( mode != 'log' )
   49         {
   50         if ( current_log ) unselect( 'log_sl' ) ;
   51         current_log = null ;
   52         }
   53     if ( mode != 'graph' )
   54         {
   55         if ( current_graph ) unselect( 'graph_sl' ) ;
   56         current_graph = null ;
   57         }
   58 
   59     document.getElementById('titre_id').innerHTML = 'Crabs Firewall : '+r[0] ;
   60     document.getElementById('firewall_mode_id').innerHTML = 'Mode : '+r[1] ;
   61 
   62     sl_remplit( 'config_sl', r[2], current_config, 0 ) ;
   63     sl_remplit( 'log_sl', r[3], current_log, 1 ) ;
   64     sl_remplit( 'graph_sl', r[4], current_graph, 2 ) ;
   65     }
   66 
   67 function accueil()
   68     {
   69     if ( mode == 'graph' ) clearTimeout() ;
   70     mode = 'accueil' ;
   71     var url = "info.cgi?w=accueil" ;
   72     var hr = getHTTPObject() ;
   73     hr.open( 'GET', url, false ) ;
   74     hr.send( null ) ;
   75     var reg = new RegExp( '<#>' ) ;
   76     var r = hr.responseText.split( reg ) ;
   77     var info = '<p class="info">'+r[5]+'<br>'+r[6]+'<br>'+r[7]+'</p>' ;
   78     document.getElementById('travail_id').innerHTML = info ;
   79     commun( r ) ;
   80     delete hr ;
   81     document.getElementById('travail_id').scrollTop = 0 ;
   82     }
   83 
   84 function parametres()
   85     {
   86     if ( mode == 'graph' ) clearTimeout() ;
   87     var rewind_div = true ;
   88     if ( mode == 'param' ) rewind_div = false ;
   89     mode = 'param' ;
   90     var url = "info.cgi?w=param" ;
   91     var hr = getHTTPObject() ;
   92     hr.open( 'GET', url, false ) ;
   93     hr.send( null ) ;
   94     var reg = new RegExp( '<#>' ) ;
   95     var r = hr.responseText.split( reg ) ;
   96     var info = '<pre>'+r[5]+'</pre><pre>'+r[6]+'</pre>' ;
   97     document.getElementById('travail_id').innerHTML = info ;
   98     commun( r ) ;
   99     delete hr ;
  100     if ( rewind_div ) document.getElementById('travail_id').scrollTop = 0 ;
  101     }
  102 
  103 function config( sl )
  104     {
  105     if ( mode == 'graph' ) clearTimeout() ;
  106     var rewind_div = true ;
  107     var i_sl = sl.options.selectedIndex ;
  108     var v = sl.options[i_sl].value ;
  109     if ( (mode=='config') && (v==current_config) ) rewind_div = false ;
  110     mode = 'config' ; current_config = v ;
  111     var url = "info.cgi?w=config&c="+v ;
  112     var hr = getHTTPObject() ;
  113     hr.open( 'GET', url, false ) ;
  114     hr.send( null ) ;
  115     var reg = new RegExp( '<#>' ) ;
  116     var r = hr.responseText.split( reg ) ;
  117     var info = '<pre>'+r[5]+'</pre><pre>'+r[6]+'</pre>' ;
  118     document.getElementById('travail_id').innerHTML = info ;
  119     commun( r ) ;
  120     delete hr ;
  121     if ( rewind_div ) document.getElementById('travail_id').scrollTop = 0 ;
  122     }
  123 
  124 function log( sl )
  125     {
  126     if ( mode == 'graph' ) clearTimeout() ;
  127     var rewind_div = true ;
  128     var i_sl = sl.options.selectedIndex ;
  129     var v = sl.options[i_sl].value ;
  130     if ( (mode == 'log') && (v==current_log) ) rewind_div = false ;
  131     mode = 'log' ; current_log = v ;
  132     var url = "info.cgi?w=log&l="+v ;
  133     var hr = getHTTPObject() ;
  134     hr.open( 'GET', url, false ) ;
  135     hr.send( null ) ;
  136     var reg = new RegExp( '<#>' ) ;
  137     var r = hr.responseText.split( reg ) ;
  138     var info = '<pre>'+r[5]+'</pre>' ;
  139     document.getElementById('travail_id').innerHTML = info ;
  140     commun( r ) ;
  141     delete hr ;
  142     if ( rewind_div ) document.getElementById('travail_id').scrollTop = 0 ;
  143     }
  144 
  145 function graph( sl )
  146     {
  147     if ( mode == 'graph' ) clearTimeout() ;
  148     var clear_div = true ;
  149     if ( mode=='graph' ) clear_div = false ;
  150     var i_sl = sl.options.selectedIndex ;
  151     var v = sl.options[i_sl].value ;
  152     mode = 'graph' ; current_graph = v ;
  153     if ( clear_div ) graphs_affiche()
  154     graph_go() ;
  155     }
  156 
  157 function graph_go()
  158     {
  159     clearTimeout() ;
  160     var v = current_graph ;
  161     if ( v == "derniers" )
  162         v = document.getElementById('graph_sl').options[1].value ;
  163 
  164     var vi = document.getElementById('fmin').value ;
  165     var va = document.getElementById('fmax').value ;
  166     var dd = document.getElementById('fdd').value ;
  167     var df = document.getElementById('fdf').value ;
  168 
  169     var url = 'info.cgi?w=graph&dt='+v+'&wi='+the_w+'&hi='+the_h
  170             + '&vi='+vi+'&va='+va+'&dd='+dd+'&df='+df ;
  171 
  172     var hr = getHTTPObject() ;
  173     hr.open( 'GET', url, false ) ;
  174     hr.send( null ) ;
  175     var reg = new RegExp( '<#>' ) ;
  176     var r = hr.responseText.split( reg ) ;
  177     commun( r ) ;
  178 
  179     for( var i=5; i<r.length-1; i++ )
  180         {
  181         info = r[i].split(';') ; img_id = 'i'+info[0] ;
  182         document.getElementById( img_id ).src = info[1] ;
  183         graph_courbe_info( img_id, info ) ;
  184         }
  185     delete hr ;
  186     if ( current_graph == "derniers" ) setTimeout( "graph_go();", 300000 ) ;
  187     }
  188 
  189 function graph_24()
  190     {
  191     clearTimeout() ;
  192     document.getElementById('fmin').value = "auto" ;
  193     document.getElementById('fmax').value = "auto" ;
  194     document.getElementById('fdd').value = "0:00" ;
  195     document.getElementById('fdf').value = "24:00" ;
  196     graph_go() ;
  197     }
  198 
  199 function graph_auto()
  200     {
  201     clearTimeout() ;
  202     document.getElementById('fmin').value = "auto" ;
  203     document.getElementById('fmax').value = "auto" ;
  204     document.getElementById('fdd').value = "auto" ;
  205     document.getElementById('fdf').value = "auto" ;
  206     graph_go() ;
  207     }
  208 
  209 
  210 function graphs_affiche( sl )
  211     {
  212     document.getElementById('travail_id').innerHTML
  213         = '<div class="form" id="graph_dep">'
  214         + '<b>Début :</b> <input type="text" size="12" id="fdd" value="0:00">'
  215         + '<b>Fin :</b> <input type="text" size="12" id="fdf" value="24:00">'
  216         + '<b>Vmin :</b> <input type="text" size="12" id="fmin" value="auto">'
  217         + '<b>Vmax :</b> <input type="text" size="12" id="fmax" value="auto">'
  218         + '<input type="button" onclick="graph_go();" value="Go...">'
  219         + '<input type="button" onclick="graph_24();" value="0-24h">'
  220         + '<input type="button" onclick="graph_auto();" value="Auto">'
  221         + '</div>'
  222         + '<div id="r0"><img id="ir0" src="red.png" alt="R0"></div>'
  223         + '<div id="s1"><img id="is1" src="red.png" alt="S1"></div>'
  224         + '<div id="r1"><img id="ir1" src="red.png" alt="R1"></div>'
  225         + '<div id="s0"><img id="is0" src="red.png" alt="S0"></div>'
  226         + '<div id="cpu"><img id="icpu" src="red.png" alt="CPU"></div>' ;
  227     var travail = document.getElementById( 'travail_id' ) ;
  228     var h = travail.offsetHeight ;
  229     var w = travail.offsetWidth ;
  230     var top = 45 ;  var offset = parseInt( ( h - 40 ) / 5 - 5 ) ;
  231     for ( var i=0; i<div_img.length; i++ )
  232         {
  233         div_id = document.getElementById( div_img[i] ) ;
  234         div_id.style.position = "absolute" ;
  235         div_id.style.top = top + 'px' ;
  236         div_id.style.height = offset + 'px' ;
  237         div_id.style.left = 0 ;
  238         div_id.style.width = w + 'px' ;
  239         top += offset + 5 ;
  240         var img_id = document.getElementById( 'i'+div_img[i] ) ;
  241         img_id.style.position = "absolute" ;
  242         img_id.style.top = "0" ;
  243         img_id.style.height = "100%" ;
  244         img_id.style.left = "0" ;
  245         img_id.style.width = "100%" ;
  246         }
  247     the_w = w ; the_h = offset ;
  248     graph_init() ;
  249     }
  250 
  251 function sl_remplit( sl_id, tableau, defaut, curlist )
  252     {
  253     if ( current_list[curlist] == tableau ) return ;
  254     current_list[curlist] = tableau ;
  255     var sl = document.getElementById( sl_id ) ;
  256     for( var i=sl.options.length-1; i>0; i-- ) sl.options[i] = null ;
  257     v = tableau.split( ';' ) ;
  258     for( var i=0; i<v.length; i++ )
  259         {
  260         sl.options[i] = new Option( v[i], v[i] ) ;
  261         if ( v[i] == defaut ) sl.options[i].selected=true;
  262         }
  263     }
  264 
  265 function unselect( sl_id )
  266     {
  267     var sl = document.getElementById( sl_id ) ;
  268     for( var i=0; i<sl.length; i++ )
  269         sl.options[i].selected=false;
  270     }
Makefile index.html info.cgi graph.cgi firewall.css firewall.js httprequest.js graph.js favicon.ico firewall.jpeg red.png sel.png
~~ / WWW / SITE / firewall.js

Haut de page

Contacter crabs

Date de génération : 22/09/2011 21:48