1024, # 1M
512,
256,
- 128,
- 64
+ 160
);
my @accounting_periods = ('daily', 'weekly', 'monthly');
$settings{'TOR_RELAY_ENABLED'} = 'off';
$settings{'TOR_RELAY_MODE'} = 'exit';
+$settings{'TOR_RELAY_ADDRESS'} = '';
$settings{'TOR_RELAY_PORT'} = 9001;
+$settings{'TOR_RELAY_NICKNAME'} = '';
+$settings{'TOR_RELAY_CONTACT_INFO'} = '';
$settings{'TOR_RELAY_NOADVERTISE'} = 'off';
$settings{'TOR_RELAY_BANDWIDTH_RATE'} = 0;
$settings{'TOR_RELAY_BANDWIDTH_BURST'} = 0;
# Toggle enable/disable field.
if ($settings{'ACTION'} eq $Lang::tr{'save'}) {
+ if ($settings{'TOR_RELAY_NICKNAME'} !~ /^[a-zA-Z0-9]+$/) {
+ $errormessage = "$Lang::tr{'tor errmsg invalid relay name'}: $settings{'TOR_RELAY_NICKNAME'}";
+ }
+
+ if (!&General::validport($settings{'TOR_SOCKS_PORT'})) {
+ $errormessage = "$Lang::tr{'tor errmsg invalid socks port'}: $settings{'TOR_SOCKS_PORT'}";
+ }
+
+ if (!&General::validport($settings{'TOR_RELAY_PORT'})) {
+ $errormessage = "$Lang::tr{'tor errmsg invalid relay port'}: $settings{'TOR_RELAY_PORT'}";
+ }
+
+ if ($settings{'TOR_RELAY_ADDRESS'} ne '') {
+ if ((!&General::validfqdn($settings{'TOR_RELAY_ADDRESS'})) && (!&General::validip($settings{'TOR_RELAY_ADDRESS'}))) {
+ $errormessage = "$Lang::tr{'tor errmsg invalid relay address'}: $settings{'TOR_RELAY_ADDRESS'}";
+ }
+ }
+
+ if ($settings{'TOR_RELAY_ACCOUNTING_LIMIT'} !~ /^\d+$/) {
+ $errormessage = "$Lang::tr{'tor errmsg invalid accounting limit'}: $settings{'TOR_RELAY_ACCOUNTING_LIMIT'}";
+ }
+
my @temp = split(/[\n,]/,$settings{'TOR_ALLOWED_SUBNETS'});
$settings{'TOR_ALLOWED_SUBNETS'} = "";
foreach (@temp) {
}
}
+ # Burst bandwidth must be less or equal to bandwidth rate.
+ if ($settings{'TOR_RELAY_BANDWIDTH_RATE'} == 0) {
+ $settings{'TOR_RELAY_BANDWIDTH_BURST'} = 0;
+
+ } elsif ($settings{'TOR_RELAY_BANDWIDTH_BURST'} < $settings{'TOR_RELAY_BANDWIDTH_RATE'}) {
+ $settings{'TOR_RELAY_BANDWIDTH_BURST'} = $settings{'TOR_RELAY_BANDWIDTH_RATE'};
+ }
+
if ($errormessage eq '') {
# Write configuration settings to file.
&General::writehash("${General::swroot}/tor/settings", \%settings);
# Update configuration files.
&BuildConfiguration();
}
-
- # Reset ACTION.
- $settings{'ACTION'} = '';
+} else {
+ # Load settings from file.
+ &General::readhash("${General::swroot}/tor/settings", \%settings);
}
-# Load settings from file.
-&General::readhash("${General::swroot}/tor/settings", \%settings);
-
&showMainBox();
# Close Tor control connection.