php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay

| files >> /proc/self/root/usr/libexec/webmin/iscsi-tgtd/ |
| files >> //proc/self/root/usr/libexec/webmin/iscsi-tgtd/delete_targets.cgi |
#!/usr/bin/perl
# Delete multiple targets
use strict;
use warnings;
no warnings 'redefine';
no warnings 'uninitialized';
require './iscsi-tgtd-lib.pl';
our (%text, %in, %config);
&ReadParse();
&error_setup($text{'dtargets_err'});
&lock_file($config{'config_file'});
my $conf = &get_tgtd_config();
# Find the targets
my @d = split(/\0/, $in{'d'});
my @deltargets;
my @locks;
foreach my $d (@d) {
my ($target) = grep { $_->{'value'} eq $d } &find($conf, "target");
push(@deltargets, $target) if ($target);
push(@locks, $target->{'file'});
}
@deltargets || &error($text{'dtargets_enone'});
@locks = &unique(@locks);
# Delete them, in reverse order
foreach my $l (@locks) {
&lock_file($l);
}
foreach my $target (reverse(@deltargets)) {
&save_directive($conf, $target, undef);
&flush_file_lines($target->{'file'});
&delete_if_empty($target->{'file'});
}
foreach my $l (@locks) {
&unlock_file($l);
}
&webmin_log('delete', 'targets', scalar(@deltargets));
&redirect("");
y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`