[ Avaa Bypassed ]




Upload:

Command:

www-data@3.148.202.164: ~ $
#!/usr/bin/perl
# Show a form to edit or create a target

use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './iscsi-target-lib.pl';
our (%text, %in);
&ReadParse();
my $conf = &get_iscsi_config();

# Get the target and show page header
my $target;
if ($in{'new'}) {
	&ui_print_header(undef, $text{'target_title1'}, "");
	$target = { 'members' => [ ] };
	}
else {
	&ui_print_header(undef, $text{'target_title2'}, "");
	($target) = grep { $_->{'value'} eq $in{'name'} }
			 &find($conf, "Target");
	$target || &error($text{'target_egone'});
	}

print &ui_form_start("save_target.cgi", "post");
print &ui_hidden("new", $in{'new'});
print &ui_hidden("oldname", $in{'name'});
print &ui_table_start($text{'target_header'}, undef, 2);

# Target name
my ($host, $tname);
if ($in{'new'}) {
	$host = &find_host_name($conf) || &generate_host_name();
	$tname = "";
	}
else {
	($host, $tname) = split(/:/, $target->{'value'});
	}
print &ui_table_row($text{'target_name'},
	"<tt>".$host.":</tt>".&ui_textbox("name", $tname, 30));

# Logical units it contains
my @luns = &find_value($target->{'members'}, "Lun");
for(my $i=0; $i<@luns+1; $i++) {
	my ($lunid, $lunstr) = split(/\s+/, $luns[$i]);
	my %lunopts = map { split(/=/, $_) } split(/,/, $lunstr);

	my @opts;

	# Start with option for no device
	my $none_found = 0;
	if ($i > 0) {
		push(@opts, [ 'none', $text{'target_none'} ]);
		$none_found = 1 if (!$lunopts{'Path'} && !$lunopts{'Sectors'});
		}

	# Add regular partitions
	my $part_found = 0;
	my $sel = &fdisk::partition_select("part".$i, $lunopts{'Path'}, 0,
					   \$part_found);
	push(@opts, [ 'part', $text{'target_part'}, $sel ]);

	# Then add RAID devices
	my $rconf = &raid::get_raidtab();
	my @ropts;
	my $raid_found = 0;
	foreach my $c (@$rconf) {
		if ($c->{'active'}) {
			push(@ropts, [ $c->{'value'},
				       &text('target_md',
					     substr($c->{'value'}, -1)) ]);
			$raid_found = 1 if ($lunopts{'Path'} eq $c->{'value'});
			}
		}
	if (@ropts) {
		push(@opts, [ 'raid', $text{'target_raid'},
		      &ui_select("raid".$i, $lunopts{'Path'}, \@ropts) ]);
		}

	# Then add LVM logical volumes
	my @vgs = sort { $a->{'name'} cmp $b->{'name'} }
		       &lvm::list_volume_groups();
	my @lvs;
	foreach my $v (@vgs) {
		push(@lvs, sort { $a->{'name'} cmp $b->{'name'} }
				&lvm::list_logical_volumes($v->{'name'}));
		}
	my @lopts;
	my $lvm_found = 0;
	foreach my $l (@lvs) {
		push(@lopts, [ $l->{'device'},
			       &text('target_lv', $l->{'vg'}, $l->{'name'}) ]);
		$lvm_found = 1 if (&same_file($lunopts{'Path'},$l->{'device'}));
		}
	if (@lopts) {
		push(@opts, [ 'lvm', $text{'target_lvm'},
		      &ui_select("lvm".$i, $lunopts{'Path'}, \@lopts) ]);
		}

	# Add special null-IO mode
	my $null_found = 0;
	push(@opts, [ 'null', $text{'target_null'},
		      &ui_textbox("null".$i, $lunopts{'Sectors'}, 10)." ".
		      $text{'target_sectors'} ]);
	$null_found = 1 if ($lunopts{'Type'} eq 'nullio');

	# Then add other file mode
	my $mode = $part_found ? 'part' :
		   $raid_found ? 'raid' :
		   $none_found ? 'none' :
		   $null_found ? 'null' :
		   $lvm_found ? 'lvm' : 'other';
	push(@opts, [ 'other', $text{'target_other'},
		      &ui_textbox("other".$i,
			  $mode eq 'other' ? $lunopts{'Path'} : "", 50).
		      " ".&file_chooser_button("other") ]);

	# Options for this lun
	my @grid;
	push(@grid, "<b>".$text{'target_type'}."</b>",
		    &ui_select("type".$i, $lunopts{'Type'} || "fileio",
			       [ [ 'fileio', $text{'target_fileio'} ],
			         [ 'blockio', $text{'target_blockio'} ] ]));
	push(@grid, "<b>".$text{'target_iomode'}."</b>",
		    &ui_select("iomode".$i, $lunopts{'IOMode'},
			       [ [ '', $text{'target_wt'} ],
				 [ 'wb', $text{'target_wb'} ],
				 [ 'ro', $text{'target_ro'} ] ]));

	print &ui_table_row(&text('target_lun', $i+1),
		&ui_radio_table("mode".$i, $mode, \@opts)."\n".
		&ui_grid_table(\@grid, 2));
	}

print &ui_table_hr();

# Incoming user(s)
my @iusers = &find_value($target->{'members'}, "IncomingUser");
my $utable = &ui_columns_start([
		$text{'target_uname'},
		$text{'target_upass'},
		]);
my $i = 0;
foreach my $u (@iusers, "", "") {
	my ($uname, $upass) = split(/\s+/, $u);
	$utable .= &ui_columns_row([
		&ui_textbox("uname_$i", $uname, 30),
		&ui_textbox("upass_$i", $upass, 20),
		]);
	$i++;
	}
$utable .= &ui_columns_end();
print &ui_table_row($text{'target_iuser'},
	&ui_radio("iuser_def", @iusers ? 0 : 1,
		  [ [ 1, $text{'target_iuserall'} ],
		    [ 0, $text{'target_iuserbelow'} ] ])."<br>\n".
	$utable);

# Outgoing user
my $u = &find_value($target->{'members'}, "OutgoingUser");
my ($uname, $upass) = split(/\s+/, $u);
print &ui_table_row($text{'target_ouser'},
	&ui_radio("ouser_def", $u ? 0 : 1,
		  [ [ 1, $text{'target_ousernone'} ],
		    [ 0, $text{'target_ousername'} ] ])." ".
	&ui_textbox("ouser", $uname, 30)." ".
	$text{'target_ouserpass'}." ".
	&ui_textbox("opass", $upass, 20));

print &ui_table_hr();

# Optional alias name
my $a = &find_value($target->{'members'}, "Alias");
print &ui_table_row($text{'target_alias'},
	&ui_opt_textbox("alias", $a, 20, $text{'target_noalias'}));

# Header digest mode
my $h = &find_value($target->{'members'}, "HeaderDigest");
print &ui_table_row($text{'target_hdigest'},
	&ui_select("hdigest", $h,
		   [ [ "", $text{'target_nodigest'} ],
		     [ "CRC32C" ] ], 1, 0, 1));

# Data digest mode
$h = &find_value($target->{'members'}, "DataDigest");
print &ui_table_row($text{'target_ddigest'},
	&ui_select("ddigest", $h,
		   [ [ "", $text{'target_nodigest'} ],
		     [ "CRC32C" ] ], 1, 0, 1));

print &ui_table_end();
if ($in{'new'}) {
	print &ui_form_end([ [ undef, $text{'create'} ] ]);
	}
else {
	print &ui_form_end([ [ undef, $text{'save'} ],
			     [ 'delete', $text{'delete'} ] ]);
	}

&ui_print_footer("", $text{'index_return'});

Filemanager

Name Type Size Permission Actions
help Folder 0755
images Folder 0755
lang Folder 0755
atboot.cgi File 1.02 KB 0755
config File 211 B 0644
config-debian-linux File 231 B 0644
config-debian-linux-ALL-4.0 File 201 B 0644
config-openSUSE-Linux-15.0-ALL File 223 B 0644
config-suse-linux File 223 B 0644
config.info File 309 B 0644
config.info.ca File 393 B 0644
config.info.de File 333 B 0644
config.info.no File 302 B 0644
delete_allows.cgi File 764 B 0755
delete_targets.cgi File 874 B 0755
down_allow.cgi File 578 B 0755
edit_addr.cgi File 1003 B 0755
edit_allow.cgi File 1.55 KB 0755
edit_auth.cgi File 1.41 KB 0755
edit_conn.cgi File 1.42 KB 0755
edit_manual.cgi File 652 B 0755
edit_target.cgi File 5.68 KB 0755
edit_timeout.cgi File 903 B 0755
index.cgi File 3.44 KB 0755
install_check.pl File 348 B 0755
iscsi-target-lib.pl File 12.14 KB 0644
list_allow.cgi File 1.64 KB 0755
log_parser.pl File 484 B 0755
module.info File 205 B 0644
module.info.af File 0 B 0644
module.info.af.auto File 130 B 0644
module.info.ar File 0 B 0644
module.info.ar.auto File 159 B 0644
module.info.be File 0 B 0644
module.info.be.auto File 207 B 0644
module.info.bg File 0 B 0644
module.info.bg.auto File 184 B 0644
module.info.ca File 149 B 0644
module.info.cs File 0 B 0644
module.info.cs.auto File 120 B 0644
module.info.da File 0 B 0644
module.info.da.auto File 119 B 0644
module.info.de File 103 B 0644
module.info.el File 0 B 0644
module.info.el.auto File 221 B 0644
module.info.es File 0 B 0644
module.info.es.auto File 144 B 0644
module.info.eu File 0 B 0644
module.info.eu.auto File 114 B 0644
module.info.fa File 0 B 0644
module.info.fa.auto File 185 B 0644
module.info.fi File 0 B 0644
module.info.fi.auto File 116 B 0644
module.info.fr File 0 B 0644
module.info.fr.auto File 144 B 0644
module.info.he File 0 B 0644
module.info.he.auto File 147 B 0644
module.info.hr File 0 B 0644
module.info.hr.auto File 126 B 0644
module.info.hu File 0 B 0644
module.info.hu.auto File 153 B 0644
module.info.it File 0 B 0644
module.info.it.auto File 144 B 0644
module.info.ja File 0 B 0644
module.info.ja.auto File 181 B 0644
module.info.ko File 0 B 0644
module.info.ko.auto File 159 B 0644
module.info.lt File 0 B 0644
module.info.lt.auto File 134 B 0644
module.info.lv File 0 B 0644
module.info.lv.auto File 128 B 0644
module.info.ms File 131 B 0644
module.info.mt File 0 B 0644
module.info.mt.auto File 128 B 0644
module.info.nl File 0 B 0644
module.info.nl.auto File 130 B 0644
module.info.no File 19 B 0644
module.info.no.auto File 99 B 0644
module.info.pl File 0 B 0644
module.info.pl.auto File 135 B 0644
module.info.pt File 0 B 0644
module.info.pt.auto File 129 B 0644
module.info.pt_BR File 0 B 0644
module.info.pt_BR.auto File 135 B 0644
module.info.ro File 0 B 0644
module.info.ro.auto File 129 B 0644
module.info.ru File 0 B 0644
module.info.ru.auto File 219 B 0644
module.info.sk File 0 B 0644
module.info.sk.auto File 119 B 0644
module.info.sl File 0 B 0644
module.info.sl.auto File 111 B 0644
module.info.sv File 0 B 0644
module.info.sv.auto File 112 B 0644
module.info.th File 0 B 0644
module.info.th.auto File 260 B 0644
module.info.tr File 0 B 0644
module.info.tr.auto File 133 B 0644
module.info.uk File 0 B 0644
module.info.uk.auto File 188 B 0644
module.info.ur File 0 B 0644
module.info.ur.auto File 243 B 0644
module.info.vi File 0 B 0644
module.info.vi.auto File 134 B 0644
module.info.zh File 0 B 0644
module.info.zh.auto File 112 B 0644
module.info.zh_TW File 0 B 0644
module.info.zh_TW.auto File 112 B 0644
restart.cgi File 355 B 0755
save_addr.cgi File 943 B 0755
save_allow.cgi File 1.27 KB 0755
save_auth.cgi File 1.22 KB 0755
save_conn.cgi File 1.34 KB 0755
save_manual.cgi File 455 B 0755
save_target.cgi File 4.1 KB 0755
save_timeout.cgi File 862 B 0755
start.cgi File 332 B 0755
stop.cgi File 307 B 0755
up_allow.cgi File 576 B 0755