X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=html%2Fcgi-bin%2Ftor.cgi;h=befd5083442993a57168fa6315ccdeba3b20b568;hb=33c4c29b5e32c818e1c0fc925424950f8cd613f6;hp=2a31dd4bf8ebc51875e7d53516f750316c444b55;hpb=9e78ce6142549d6d786fe97c56bf58df6b81e80f;p=people%2Fteissler%2Fipfire-2.x.git diff --git a/html/cgi-bin/tor.cgi b/html/cgi-bin/tor.cgi old mode 100644 new mode 100755 index 2a31dd4bf..befd50834 --- a/html/cgi-bin/tor.cgi +++ b/html/cgi-bin/tor.cgi @@ -57,9 +57,42 @@ my @accounting_periods = ('daily', 'weekly', 'monthly'); my $TOR_CONTROL_PORT = 9051; +my $string=(); +my $memory=(); +my @memory=(); +my @pid=(); +my @tor=(); +sub daemonstats +{ + $memory = 0; + # for pid and memory + open(FILE, '/usr/local/bin/addonctrl tor status | '); + @tor = ; + close(FILE); + $string = join("", @tor); + $string =~ s/[a-z_]//gi; + $string =~ s/\[[0-1]\;[0-9]+//gi; + $string =~ s/[\(\)\.]//gi; + $string =~ s/ //gi; + $string =~ s///gi; + @pid = split(/\s/,$string); + if (open(FILE, "/proc/$pid[0]/statm")){ + my $temp = ; + @memory = split(/ /,$temp); + close(FILE); + } + $memory+=$memory[0]; +} +daemonstats(); + our %netsettings = (); &General::readhash("${General::swroot}/ethernet/settings", \%netsettings); +our %color = (); +our %mainsettings = (); +&General::readhash("${General::swroot}/main/settings", \%mainsettings); +&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color); + our %settings = (); $settings{'TOR_ENABLED'} = 'off'; @@ -75,6 +108,7 @@ $settings{'TOR_RELAY_ENABLED'} = 'off'; $settings{'TOR_RELAY_MODE'} = 'exit'; $settings{'TOR_RELAY_ADDRESS'} = ''; $settings{'TOR_RELAY_PORT'} = 9001; +$settings{'TOR_RELAY_DIRPORT'} = 0; $settings{'TOR_RELAY_NICKNAME'} = ''; $settings{'TOR_RELAY_CONTACT_INFO'} = ''; $settings{'TOR_RELAY_BANDWIDTH_RATE'} = 0; @@ -110,6 +144,11 @@ if ($settings{'ACTION'} eq $Lang::tr{'save'}) { if (!&General::validport($settings{'TOR_RELAY_PORT'})) { $errormessage = "$Lang::tr{'tor errmsg invalid relay port'}: $settings{'TOR_RELAY_PORT'}"; } + if ($settings{'TOR_RELAY_DIRPORT'} ne '0') { + if (!&General::validport($settings{'TOR_RELAY_DIRPORT'})) { + $errormessage = "$Lang::tr{'tor errmsg invalid directory port'}: $settings{'TOR_RELAY_DIRPORT'}"; + } + } if ($settings{'TOR_RELAY_ADDRESS'} ne '') { if ((!&General::validfqdn($settings{'TOR_RELAY_ADDRESS'})) && (!&General::validip($settings{'TOR_RELAY_ADDRESS'}))) { @@ -192,12 +231,37 @@ sub showMainBox() { print "
\n"; - &Header::openbox('100%', 'left', $Lang::tr{'tor configuration'}); + &Header::openbox('100%', 'center', $Lang::tr{'tor'}); + + +if ( ($memory != 0) && (@pid[0] ne "///") ){ + print ""; + print ""; + print ""; + print ""; + print ""; + print ""; + print ""; + print ""; + print ""; + print ""; + print "
$Lang::tr{'tor service'}
$Lang::tr{'tor daemon'}$Lang::tr{'running'}
PID$Lang::tr{'memory'}
@pid[0]$memory KB
"; + } else { + print ""; + print ""; + print ""; + print ""; + print "
$Lang::tr{'tor service'}
$Lang::tr{'tor daemon'}$Lang::tr{'stopped'}
"; + } + + &Header::closebox(); + + &Header::openbox('100%', 'center', $Lang::tr{'tor configuration'}); print < + - + @@ -222,12 +286,11 @@ END print < -

-
$Lang::tr{'tor common settings'}$Lang::tr{'tor common settings'}
$Lang::tr{'tor enabled'}:
+
- +
$Lang::tr{'tor acls'}$Lang::tr{'tor acls'}
@@ -244,12 +307,11 @@ END

-

- +
- + @@ -265,7 +327,13 @@ END foreach my $country_name (sort @country_names) { my $country_code = Locale::Country::country2code($country_name); $country_code = uc($country_code); - print "\n"; + print "\n"; } print <
$Lang::tr{'tor exit nodes'}$Lang::tr{'tor exit nodes'}
-

END &Header::closebox(); @@ -305,10 +372,10 @@ END } $selected{'TOR_RELAY_ACCOUNTING_PERIOD'}{$settings{'TOR_RELAY_ACCOUNTING_PERIOD'}} = 'selected'; - &Header::openbox('100%', 'left', $Lang::tr{'tor relay configuration'}); + &Header::openbox('100%', 'center', $Lang::tr{'tor relay configuration'}); print < + @@ -334,6 +401,14 @@ END + + + + + +
$Lang::tr{'tor relay mode'}: @@ -321,7 +388,7 @@ END $Lang::tr{'tor relay nickname'}: * - +
  $Lang::tr{'tor directory port'}: +  $Lang::tr{'tor 0 = disabled'} +
$Lang::tr{'tor contact info'}: * @@ -342,11 +417,11 @@ END
-
+
- +
- + @@ -407,7 +482,7 @@ END &Header::closebox(); print < +
$Lang::tr{'tor bandwidth settings'}$Lang::tr{'tor bandwidth settings'}
$Lang::tr{'tor bandwidth rate'}:
* $Lang::tr{'this field may be blank'} @@ -418,7 +493,7 @@ END
- +
@@ -429,13 +504,13 @@ END # If we have a control connection, show the stats. if ($torctrl) { - &Header::openbox('100%', 'left', $Lang::tr{'tor stats'}); + &Header::openbox('100%', 'center', $Lang::tr{'tor stats'}); my @traffic = &TorTrafficStats($torctrl); if (@traffic) { print < +
 
END if ($settings{'TOR_RELAY_ENABLED'} eq 'on') { @@ -476,7 +551,7 @@ END my $accounting = &TorAccountingStats($torctrl); if ($accounting) { print < +
@@ -527,7 +602,7 @@ END if (@nodes) { my $nodes_length = scalar @nodes; print < +
$Lang::tr{'tor accounting'}
@@ -546,7 +621,11 @@ END END if (exists($node->{'country_code'})) { + if (!$node->{'country_code'} or $node->{'country_code'} eq '??') { + print ""; + } else { print "$node->{"; + } } print </dev/null"); } + # Update pid and memory + daemonstats(); } sub TorConnect() {
$Lang::tr{'tor connected relays'} ($nodes_length)