Server IP : 195.201.23.43 / Your IP : 3.137.210.249 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/webmin/virtual-server/ |
Upload File : |
#!/usr/bin/perl # Show rate limiting enable / disable form require './virtual-server-lib.pl'; &can_edit_templates() || &error($text{'ratelimit_ecannot'}); &ui_print_header(undef, $text{'ratelimit_title'}, "", "ratelimit"); &ReadParse(); # Check if can use $err = &check_ratelimit(); if ($err) { print &text('ratelimit_failed', $err),"<p>\n"; if (&can_install_ratelimit()) { print &ui_form_start("install_ratelimit.cgi"); print &text('ratelimit_installdesc'),"<p>\n"; print &ui_form_end([ [ undef, $text{'dkim_install'} ] ]); } &ui_print_footer("", $text{'index_return'}); return; } # If installed, check if version is usable $ver = &get_milter_greylist_version(); if (&compare_versions($ver, "4.3.7") < 0) { print &text('ratelimit_badversion', $ver, "4.3.7"),"<p>\n"; &ui_print_footer("", $text{'index_return'}); return; } # Show form to enable print &ui_form_start("save_ratelimit.cgi"); print &ui_table_start($text{'ratelimit_header'}, undef, 2); # Enabled? print &ui_table_row($text{'ratelimit_enabled'}, &ui_yesno_radio("enable", &is_ratelimit_enabled())); # Max messages / hour for all domains $conf = &get_ratelimit_config(); ($rl) = grep { $_->{'name'} eq 'ratelimit' && $_->{'values'}->[0] eq '"virtualmin_limit"' } @$conf; print &ui_table_row($text{'ratelimit_max'}, &ui_radio("max_def", $rl ? 0 : 1, [ [ 1, $text{'form_unlimit'} ], [ 0, &ratelimit_field("max", $rl) ] ])); # Max messages / hour by domain @rls = grep { $_->{'name'} eq 'ratelimit' && $_->{'values'}->[0] =~ /^"domain_(\d+)"/ } @$conf; $dtable = &ui_columns_start([ $text{'ratelimit_dom'}, $text{'ratelimit_dmax'} ]); $i = 0; foreach $rl (@rls, {}, {}) { my $did = $rl->{'values'}->[0] =~ /"domain_(\d+)"/ ? $1 : undef; $dtable .= &ui_columns_row([ &ui_select("dom_$i", $did, [ [ "", " " ], map { [ $_->{'id'}, &show_domain_name($_) ] } grep { $_->{'mail'} } sort { $a->{'dom'} cmp $b->{'dom'} } &list_domains() ]). " ", &ratelimit_field("max_$i", $rl), ]); $i++; } $dtable .= &ui_columns_end(); print &ui_table_row($text{'ratelimit_dtable'}, $dtable); print &ui_table_end(); print &ui_form_end([ [ undef, $text{'save'} ] ]); &ui_print_footer("", $text{'index_return'}); # ratelimit_field(name, &ratelimit-object) # Return HTML for a field for selecting a rate and time sub ratelimit_field { my ($name, $rl) = @_; my ($num, $time, $units); if ($rl && $rl->{'values'}->[4]) { $num = $rl->{'values'}->[2]; $time = $rl->{'values'}->[4]; if ($time =~ s/([smhdwy])$//) { $units = $1; } else { $units = "s"; } } else { $time = 1; $units = "h"; } return &text('ratelimit_per', &ui_textbox($name."_num", $num, 5), &ui_textbox($name."_time", $time, 5), &ui_select($name."_units", $units, [ map { [ $_, $text{'ratelimit_'.$_} ] } ('s', 'm', 'h', 'd', 'w', 'y') ])); }Private