403Webshell
Server IP : 189.126.111.107  /  Your IP : 216.73.217.69
Web Server : Apache
System : Linux www.gadotticar.com.br 5.4.0-135-generic #152-Ubuntu SMP Wed Nov 23 20:19:22 UTC 2022 x86_64
User : gadotticar ( 1000)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/webmin/virtual-server/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/webmin/virtual-server/save_newmxs.cgi
#!/usr/bin/perl
# Save secondary MX servers

require './virtual-server-lib.pl';
&can_edit_templates() || &error($text{'newmxs_ecannot'});
&ReadParse();
&error_setup($text{'newmxs_err'});

&ui_print_header(undef, $text{'newmxs_title'}, "");

# Get old MX servers and all servers
&foreign_require("servers");
@oldmxs = &list_mx_servers();
%oldmxids = map { $_->{'id'}, $_ } @oldmxs;
@servers = grep { $_->{'user'} } &servers::list_servers();

foreach $id (split(/\0/, $in{'servers'})) {
	($server) = grep { $_->{'id'} eq $id } @servers;
	if ($server) {
		# Make sure the system actually has Virtualmin 2.98+
		&$first_print(&text('newmxs_doing', $server->{'host'}));
		&remote_foreign_require($server, "webmin", "webmin-lib.pl");
		%minfo = &remote_foreign_call($server, "webmin",
				"get_module_info", "virtual-server");
		if (!$minfo{'version'}) {
			# Virtualmin not installed
			&$second_print(&text('newmxs_evirtualmin',
					     $server->{'host'}));
			goto failed;
			}
		elsif ($minfo{'version'} < 2.98) {
			# Old Virtualmin version
			&$second_print(&text('newmxs_eversion',
					     $server->{'host'},
				     	     $minfo{'version'}, 2.98));
			goto failed;
			}
		else {
			# Ask the remote server if it is OK
			&remote_foreign_require($server, "virtual-server",
						"virtual-server-lib.pl");
			$mxerr = &remote_foreign_call($server, "virtual-server",
						      "check_secondary_mx");
			if ($mxerr) {
				&$second_print(&text('newmxs_eprob',
					$server->{'host'}, $mxerr));
				goto failed;
				}
			else {
				if ($in{"mxname_".$server->{'id'}."_def"}) {
					delete($server->{'mxname'});
					}
				else {
					$in{"mxname_".$server->{'id'}} =~
					    /^[a-z0-9\.\-\_]+$/ ||
						&text('newmxs_emxname',
						      $server->{'host'});
					$server->{'mxname'} =
						$in{"mxname_".$server->{'id'}};
					}
				push(@mxs, $server);
				}
			$newmxids{$server->{'id'}} = $server;
			}
		&$second_print($text{'setup_done'});
		}
	}
&save_mx_servers(\@mxs);

# Update all existing email domains on new MX servers
foreach my $d (&list_domains()) {
	next if (!$d->{'mail'});
	local $oldd = { %$d };
	&$first_print(&text('newmxs_dom', $d->{'dom'}));
	&$indent_print();

	local @ids = split(/\s+/, $d->{'mx_servers'});
	local @added;
	if ($in{'addexisting'}) {
		# Add to new secondaries
		foreach $server (@mxs) {
			if (!$oldmxids{$server->{'id'}}) {
				&$first_print(&text('newmxs_adding',
						    $server->{'host'}));
				$err = &setup_one_secondary($d, $server);
				if (!$err) {
					push(@ids, $server->{'id'});
					&$second_print($text{'setup_done'});
					}
				else {
					&$second_print(&text('newmxs_failed',
							     $err));
					}
				push(@added, $server);
				}
			}
		}

	# Remove from old secondaries
	foreach $server (@oldmxs) {
		if (!$newmxids{$server->{'id'}} &&
		    &indexof($server->{'id'}, @ids) >= 0) {
			&$first_print(&text('newmxs_removing',
					    $server->{'host'}));
			$err = &delete_one_secondary($d, $server);
			if (!$err) {
				&$second_print($text{'setup_done'});
				}
			else {
				&$second_print(&text('newmxs_failed', $err));
				}
			@ids = grep { $_ != $server->{'id'} } @ids;
			}
		}
	$d->{'mx_servers'} = join(" ", @ids);

	if ($d->{'dns'}) {
		# Add or remove DNS MX records
		&modify_dns($d, $oldd);
		}

	# Re-sync virtusers for domain to secondaries, if any were added
	if (@added) {
		&$first_print($text{'newmxs_syncing'});
		@rv = &sync_secondary_virtusers($d, \@added);
		@errs = grep { $_->[1] } @rv;
		if (@errs) {
			&$second_print(&text('newmxs_esynced',
				join(", ", map { $_->[0]->{'host'}." - ".
						 ($_->[1] || "OK") } @rv)));
			}
		else {
			&$second_print(&text('newmxs_synced',
				join(", ", map { $_->[0]->{'host'} } @rv)));
			}
		}

	&save_domain($d);
	&$outdent_print();
	&$second_print($text{'setup_done'});
	}

&run_post_actions();
&webmin_log("mxs");
failed:			# Goto here if one server fails
&ui_print_footer("", $text{'index_return'});


Youez - 2016 - github.com/yon3zu
LinuXploit