Merged revisions 114689 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r114689 | tilghman | 2008-04-26 08:15:21 -0500 (Sat, 26 Apr 2008) | 6 lines Clicking forward without selecting a message leaves an errant .lock file. (closes issue #12528) Reported by: pukepail Patches: patch.diff uploaded by pukepail (license 431) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@114690 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
parent
c5f11a59d0
commit
3376c2212c
|
@ -21,7 +21,7 @@ use DBI;
|
||||||
use Fcntl qw ( O_WRONLY O_CREAT O_EXCL );
|
use Fcntl qw ( O_WRONLY O_CREAT O_EXCL );
|
||||||
use Time::HiRes qw ( usleep );
|
use Time::HiRes qw ( usleep );
|
||||||
|
|
||||||
$context=""; # Define here your by default context (so you dont need to put voicemail@context in the login
|
$context=""; # Define here your by default context (so you dont need to put voicemail@context in the login)
|
||||||
|
|
||||||
@validfolders = ( "INBOX", "Old", "Work", "Family", "Friends", "Cust1", "Cust2", "Cust3", "Cust4", "Cust5" );
|
@validfolders = ( "INBOX", "Old", "Work", "Family", "Friends", "Cust1", "Cust2", "Cust3", "Cust4", "Cust5" );
|
||||||
|
|
||||||
|
@ -46,10 +46,10 @@ $context=""; # Define here your by default context (so you dont need to put voic
|
||||||
$astpath = "/_asterisk";
|
$astpath = "/_asterisk";
|
||||||
|
|
||||||
$stdcontainerstart = "<table align=center width=600><tr><td>\n";
|
$stdcontainerstart = "<table align=center width=600><tr><td>\n";
|
||||||
$footer = "<hr><font size=-1><a href=\"http://www.asterisk.org\">The Asterisk Open Source PBX</a> Copyright 2004, <a href=\"http://www.digium.com\">Digium, Inc.</a></a>";
|
$footer = "<hr><font size=-1><a href=\"http://www.asterisk.org\">The Asterisk Open Source PBX</a> Copyright 2004-2008, <a href=\"http://www.digium.com\">Digium, Inc.</a></a>";
|
||||||
$stdcontainerend = "</td></tr><tr><td align=right>$footer</td></tr></table>\n";
|
$stdcontainerend = "</td></tr><tr><td align=right>$footer</td></tr></table>\n";
|
||||||
|
|
||||||
sub lock_path() {
|
sub lock_path($) {
|
||||||
|
|
||||||
my($path) = @_;
|
my($path) = @_;
|
||||||
my $rand;
|
my $rand;
|
||||||
|
@ -80,14 +80,14 @@ sub lock_path() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub unlock_path() {
|
sub unlock_path($) {
|
||||||
|
|
||||||
my($path) = @_;
|
my($path) = @_;
|
||||||
|
|
||||||
unlink("$path/.lock");
|
unlink("$path/.lock");
|
||||||
}
|
}
|
||||||
|
|
||||||
sub untaint() {
|
sub untaint($) {
|
||||||
|
|
||||||
my($data) = @_;
|
my($data) = @_;
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ sub untaint() {
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub login_screen() {
|
sub login_screen($) {
|
||||||
print header;
|
print header;
|
||||||
my ($message) = @_;
|
my ($message) = @_;
|
||||||
print <<_EOH;
|
print <<_EOH;
|
||||||
|
@ -126,7 +126,7 @@ _EOH
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub check_login()
|
sub check_login($$)
|
||||||
{
|
{
|
||||||
local ($filename, $startcat) = @_;
|
local ($filename, $startcat) = @_;
|
||||||
local ($mbox, $context) = split(/\@/, param('mailbox'));
|
local ($mbox, $context) = split(/\@/, param('mailbox'));
|
||||||
|
@ -160,28 +160,28 @@ sub check_login()
|
||||||
}
|
}
|
||||||
} elsif (/\[(.*)\]/) {
|
} elsif (/\[(.*)\]/) {
|
||||||
$category = $1;
|
$category = $1;
|
||||||
} elsif ($category eq "general") {
|
} elsif ($category eq "general") {
|
||||||
if (/([^\s]+)\s*\=\s*(.*)/) {
|
if (/([^\s]+)\s*\=\s*(.*)/) {
|
||||||
if ($1 eq "dbname") {
|
if ($1 eq "dbname") {
|
||||||
$dbname = $2;
|
$dbname = $2;
|
||||||
} elsif ($1 eq "dbpass") {
|
} elsif ($1 eq "dbpass") {
|
||||||
$dbpass = $2;
|
$dbpass = $2;
|
||||||
} elsif ($1 eq "dbhost") {
|
} elsif ($1 eq "dbhost") {
|
||||||
$dbhost = $2;
|
$dbhost = $2;
|
||||||
} elsif ($1 eq "dbuser") {
|
} elsif ($1 eq "dbuser") {
|
||||||
$dbuser = $2;
|
$dbuser = $2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($dbname and $dbpass and $dbhost and $dbuser) {
|
if ($dbname and $dbpass and $dbhost and $dbuser) {
|
||||||
|
|
||||||
# db variables are present. Use db for authentication.
|
# db variables are present. Use db for authentication.
|
||||||
my $dbh = DBI->connect("DBI:mysql:$dbname:$dbhost",$dbuser,$dbpass);
|
my $dbh = DBI->connect("DBI:mysql:$dbname:$dbhost",$dbuser,$dbpass);
|
||||||
my $sth = $dbh->prepare(qq{select fullname,context from voicemail where mailbox='$mbox' and password='$pass' and context='$context'});
|
my $sth = $dbh->prepare(qq{select fullname,context from voicemail where mailbox='$mbox' and password='$pass' and context='$context'});
|
||||||
$sth->execute();
|
$sth->execute();
|
||||||
if (($fullname, $category) = $sth->fetchrow_array()) {;
|
if (($fullname, $category) = $sth->fetchrow_array()) {
|
||||||
return ($fullname ? $fullname : "Extension $mbox in $context",$category);
|
return ($fullname ? $fullname : "Extension $mbox in $context",$category);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} elsif (($category ne "general") && ($category ne "zonemessages")) {
|
} elsif (($category ne "general") && ($category ne "zonemessages")) {
|
||||||
if (/([^\s]+)\s*\=\>?\s*(.*)/) {
|
if (/([^\s]+)\s*\=\>?\s*(.*)/) {
|
||||||
@fields = split(/\,\s*/, $2);
|
@fields = split(/\,\s*/, $2);
|
||||||
|
@ -196,7 +196,7 @@ sub check_login()
|
||||||
return ("", $category);
|
return ("", $category);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub validmailbox()
|
sub validmailbox($$$$)
|
||||||
{
|
{
|
||||||
local ($context, $mbox, $filename, $startcat) = @_;
|
local ($context, $mbox, $filename, $startcat) = @_;
|
||||||
local $category = $startcat;
|
local $category = $startcat;
|
||||||
|
@ -215,7 +215,7 @@ sub validmailbox()
|
||||||
$category = "general";
|
$category = "general";
|
||||||
}
|
}
|
||||||
open(VMAIL, "<$filename") || die("Bleh, no $filename");
|
open(VMAIL, "<$filename") || die("Bleh, no $filename");
|
||||||
while(<VMAIL>) {
|
while (<VMAIL>) {
|
||||||
chomp;
|
chomp;
|
||||||
if (/include\s\"([^\"]+)\"$/) {
|
if (/include\s\"([^\"]+)\"$/) {
|
||||||
($tmp, $category) = &validmailbox($mbox, $context, "/etc/asterisk/$1");
|
($tmp, $category) = &validmailbox($mbox, $context, "/etc/asterisk/$1");
|
||||||
|
@ -224,28 +224,28 @@ sub validmailbox()
|
||||||
}
|
}
|
||||||
} elsif (/\[(.*)\]/) {
|
} elsif (/\[(.*)\]/) {
|
||||||
$category = $1;
|
$category = $1;
|
||||||
} elsif ($category eq "general") {
|
} elsif ($category eq "general") {
|
||||||
if (/([^\s]+)\s*\=\s*(.*)/) {
|
if (/([^\s]+)\s*\=\s*(.*)/) {
|
||||||
if ($1 eq "dbname") {
|
if ($1 eq "dbname") {
|
||||||
$dbname = $2;
|
$dbname = $2;
|
||||||
} elsif ($1 eq "dbpass") {
|
} elsif ($1 eq "dbpass") {
|
||||||
$dbpass = $2;
|
$dbpass = $2;
|
||||||
} elsif ($1 eq "dbhost") {
|
} elsif ($1 eq "dbhost") {
|
||||||
$dbhost = $2;
|
$dbhost = $2;
|
||||||
} elsif ($1 eq "dbuser") {
|
} elsif ($1 eq "dbuser") {
|
||||||
$dbuser = $2;
|
$dbuser = $2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($dbname and $dbpass and $dbhost and $dbuser) {
|
if ($dbname and $dbpass and $dbhost and $dbuser) {
|
||||||
|
|
||||||
# db variables are present. Use db for authentication.
|
# db variables are present. Use db for authentication.
|
||||||
my $dbh = DBI->connect("DBI:mysql:$dbname:$dbhost",$dbuser,$dbpass);
|
my $dbh = DBI->connect("DBI:mysql:$dbname:$dbhost",$dbuser,$dbpass);
|
||||||
my $sth = $dbh->prepare(qq{select fullname,context from voicemail where mailbox='$mbox' and password='$pass' and context='$context'});
|
my $sth = $dbh->prepare(qq{select fullname,context from voicemail where mailbox='$mbox' and password='$pass' and context='$context'});
|
||||||
$sth->execute();
|
$sth->execute();
|
||||||
if (($fullname, $context) = $sth->fetchrow_array()) {;
|
if (($fullname, $context) = $sth->fetchrow_array()) {
|
||||||
return ($fullname ? $fullname : "unknown", $category);
|
return ($fullname ? $fullname : "unknown", $category);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} elsif (($category ne "general") && ($category ne "zonemessages") && ($category eq $context)) {
|
} elsif (($category ne "general") && ($category ne "zonemessages") && ($category eq $context)) {
|
||||||
if (/([^\s]+)\s*\=\>?\s*(.*)/) {
|
if (/([^\s]+)\s*\=\>?\s*(.*)/) {
|
||||||
@fields = split(/\,\s*/, $2);
|
@fields = split(/\,\s*/, $2);
|
||||||
|
@ -282,37 +282,37 @@ sub mailbox_options()
|
||||||
$tmp .= $tmp2;
|
$tmp .= $tmp2;
|
||||||
} elsif (/\[(.*)\]/) {
|
} elsif (/\[(.*)\]/) {
|
||||||
$category = $1;
|
$category = $1;
|
||||||
} elsif ($category eq "general") {
|
} elsif ($category eq "general") {
|
||||||
if (/([^\s]+)\s*\=\s*(.*)/) {
|
if (/([^\s]+)\s*\=\s*(.*)/) {
|
||||||
if ($1 eq "dbname") {
|
if ($1 eq "dbname") {
|
||||||
$dbname = $2;
|
$dbname = $2;
|
||||||
} elsif ($1 eq "dbpass") {
|
} elsif ($1 eq "dbpass") {
|
||||||
$dbpass = $2;
|
$dbpass = $2;
|
||||||
} elsif ($1 eq "dbhost") {
|
} elsif ($1 eq "dbhost") {
|
||||||
$dbhost = $2;
|
$dbhost = $2;
|
||||||
} elsif ($1 eq "dbuser") {
|
} elsif ($1 eq "dbuser") {
|
||||||
$dbuser = $2;
|
$dbuser = $2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($dbname and $dbpass and $dbhost and $dbuser) {
|
if ($dbname and $dbpass and $dbhost and $dbuser) {
|
||||||
|
|
||||||
# db variables are present. Use db for authentication.
|
# db variables are present. Use db for authentication.
|
||||||
my $dbh = DBI->connect("DBI:mysql:$dbname:$dbhost",$dbuser,$dbpass);
|
my $dbh = DBI->connect("DBI:mysql:$dbname:$dbhost",$dbuser,$dbpass);
|
||||||
my $sth = $dbh->prepare(qq{select mailbox,fullname,context from voicemail where context='$context' order by mailbox});
|
my $sth = $dbh->prepare(qq{select mailbox,fullname,context from voicemail where context='$context' order by mailbox});
|
||||||
$sth->execute();
|
$sth->execute();
|
||||||
while (($mailbox, $fullname, $category) = $sth->fetchrow_array()) {
|
while (($mailbox, $fullname, $category) = $sth->fetchrow_array()) {
|
||||||
$text = $mailbox;
|
$text = $mailbox;
|
||||||
if ($fullname) {
|
if ($fullname) {
|
||||||
$text .= " (".$fullname.")";
|
$text .= " (".$fullname.")";
|
||||||
}
|
}
|
||||||
if ($mailbox eq $current) {
|
if ($mailbox eq $current) {
|
||||||
$tmp .= "<OPTION SELECTED>$text</OPTION>\n";
|
$tmp .= "<OPTION SELECTED>$text</OPTION>\n";
|
||||||
} else {
|
} else {
|
||||||
$tmp .= "<OPTION>$text</OPTION>\n";
|
$tmp .= "<OPTION>$text</OPTION>\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ($tmp, $category);
|
return ($tmp, $category);
|
||||||
}
|
}
|
||||||
} elsif (($category ne "general") && ($category ne "zonemessages")) {
|
} elsif (($category ne "general") && ($category ne "zonemessages")) {
|
||||||
if (/([^\s]+)\s*\=\>?\s*(.*)/) {
|
if (/([^\s]+)\s*\=\>?\s*(.*)/) {
|
||||||
@fields = split(/\,\s*/, $2);
|
@fields = split(/\,\s*/, $2);
|
||||||
|
@ -587,7 +587,7 @@ sub message_index()
|
||||||
my $message2;
|
my $message2;
|
||||||
my $msgcount;
|
my $msgcount;
|
||||||
my $hasmsg;
|
my $hasmsg;
|
||||||
my $newmessages, $oldmessages;
|
my ($newmessages, $oldmessages);
|
||||||
my $format = param('format');
|
my $format = param('format');
|
||||||
if (!$format) {
|
if (!$format) {
|
||||||
$format = &getcookie('format');
|
$format = &getcookie('format');
|
||||||
|
@ -737,14 +737,14 @@ sub folder_list()
|
||||||
sub message_rename()
|
sub message_rename()
|
||||||
{
|
{
|
||||||
my ($context, $mbox, $oldfolder, $old, $newfolder, $new) = @_;
|
my ($context, $mbox, $oldfolder, $old, $newfolder, $new) = @_;
|
||||||
my $oldfile, $newfile;
|
my ($oldfile, $newfile);
|
||||||
return if ($old eq $new) && ($oldfolder eq $newfolder);
|
return if ($old eq $new) && ($oldfolder eq $newfolder);
|
||||||
|
|
||||||
if ($context =~ /^(\w+)$/) {
|
if ($context =~ /^(\w+)$/) {
|
||||||
$context = $1;
|
$context = $1;
|
||||||
} else {
|
} else {
|
||||||
die("Invalid Context<BR>\n");
|
die("Invalid Context<BR>\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($mbox =~ /^(\w+)$/) {
|
if ($mbox =~ /^(\w+)$/) {
|
||||||
$mbox = $1;
|
$mbox = $1;
|
||||||
|
@ -780,7 +780,7 @@ sub message_rename()
|
||||||
$path =~ /^(.*)$/;
|
$path =~ /^(.*)$/;
|
||||||
$path = $1;
|
$path = $1;
|
||||||
mkdir $path, 0770;
|
mkdir $path, 0770;
|
||||||
my $path = "/var/spool/asterisk/voicemail/$context/$mbox/$oldfolder";
|
$path = "/var/spool/asterisk/voicemail/$context/$mbox/$oldfolder";
|
||||||
opendir(DIR, $path) || die("Unable to open directory\n");
|
opendir(DIR, $path) || die("Unable to open directory\n");
|
||||||
my @files = grep /^msg${old}\.\w+$/, readdir(DIR);
|
my @files = grep /^msg${old}\.\w+$/, readdir(DIR);
|
||||||
closedir(DIR);
|
closedir(DIR);
|
||||||
|
@ -818,7 +818,7 @@ sub file_copy()
|
||||||
sub message_copy()
|
sub message_copy()
|
||||||
{
|
{
|
||||||
my ($context, $mbox, $newmbox, $oldfolder, $old, $new) = @_;
|
my ($context, $mbox, $newmbox, $oldfolder, $old, $new) = @_;
|
||||||
my $oldfile, $newfile;
|
my ($oldfile, $newfile);
|
||||||
return if ($mbox eq $newmbox);
|
return if ($mbox eq $newmbox);
|
||||||
|
|
||||||
if ($mbox =~ /^(\w+)$/) {
|
if ($mbox =~ /^(\w+)$/) {
|
||||||
|
@ -855,11 +855,11 @@ sub message_copy()
|
||||||
$path =~ /^(.*)$/;
|
$path =~ /^(.*)$/;
|
||||||
$path = $1;
|
$path = $1;
|
||||||
mkdir $path, 0770;
|
mkdir $path, 0770;
|
||||||
my $path = "/var/spool/asterisk/voicemail/$context/$newmbox/INBOX";
|
$path = "/var/spool/asterisk/voicemail/$context/$newmbox/INBOX";
|
||||||
$path =~ /^(.*)$/;
|
$path =~ /^(.*)$/;
|
||||||
$path = $1;
|
$path = $1;
|
||||||
mkdir $path, 0770;
|
mkdir $path, 0770;
|
||||||
my $path = "/var/spool/asterisk/voicemail/$context/$mbox/$oldfolder";
|
$path = "/var/spool/asterisk/voicemail/$context/$mbox/$oldfolder";
|
||||||
opendir(DIR, $path) || die("Unable to open directory\n");
|
opendir(DIR, $path) || die("Unable to open directory\n");
|
||||||
my @files = grep /^msg${old}\.\w+$/, readdir(DIR);
|
my @files = grep /^msg${old}\.\w+$/, readdir(DIR);
|
||||||
closedir(DIR);
|
closedir(DIR);
|
||||||
|
@ -936,23 +936,27 @@ sub message_forward()
|
||||||
$context = &untaint($context);
|
$context = &untaint($context);
|
||||||
$newmbox = &untaint($newmbox);
|
$newmbox = &untaint($newmbox);
|
||||||
my $path = "/var/spool/asterisk/voicemail/$context/$newmbox/INBOX";
|
my $path = "/var/spool/asterisk/voicemail/$context/$newmbox/INBOX";
|
||||||
if (&lock_path($path) == 0) {
|
if ($msgs[0]) {
|
||||||
$msgcount = &msgcount($context, $newmbox, "INBOX");
|
if (&lock_path($path) == 0) {
|
||||||
|
$msgcount = &msgcount($context, $newmbox, "INBOX");
|
||||||
if ($newmbox ne $mbox) {
|
|
||||||
# print header;
|
if ($newmbox ne $mbox) {
|
||||||
foreach $msg (@msgs) {
|
# print header;
|
||||||
# print "Forwarding $msg from $mbox to $newmbox<BR>\n";
|
foreach $msg (@msgs) {
|
||||||
&message_copy($context, $mbox, $newmbox, $folder, $msg, sprintf "%04d", $msgcount);
|
# print "Forwarding $msg from $mbox to $newmbox<BR>\n";
|
||||||
$msgcount++;
|
&message_copy($context, $mbox, $newmbox, $folder, $msg, sprintf "%04d", $msgcount);
|
||||||
|
$msgcount++;
|
||||||
|
}
|
||||||
|
$txt = "Forwarded messages " . join(', ', @msgs) . "to $newmbox";
|
||||||
|
} else {
|
||||||
|
$txt = "Can't forward messages to yourself!\n";
|
||||||
}
|
}
|
||||||
$txt = "Forwarded messages " . join(', ', @msgs) . "to $newmbox";
|
&unlock_path($path);
|
||||||
} else {
|
} else {
|
||||||
$txt = "Can't forward messages to yourself!\n";
|
$txt = "Cannot forward messages: Unable to lock path.\n";
|
||||||
}
|
}
|
||||||
&unlock_path($path);
|
|
||||||
} else {
|
} else {
|
||||||
$txt = "Cannot forward messages: Unable to lock path.\n";
|
$txt = "Please Select Message(s) for this action.\n";
|
||||||
}
|
}
|
||||||
if ($toindex) {
|
if ($toindex) {
|
||||||
&message_index($folder, $txt);
|
&message_index($folder, $txt);
|
||||||
|
@ -966,7 +970,7 @@ sub message_delete_or_move()
|
||||||
my ($toindex, $del, @msgs) = @_;
|
my ($toindex, $del, @msgs) = @_;
|
||||||
my $txt;
|
my $txt;
|
||||||
my $path;
|
my $path;
|
||||||
my $y, $x;
|
my ($y, $x);
|
||||||
my $folder = param('folder');
|
my $folder = param('folder');
|
||||||
my $newfolder = param('newfolder') unless $del;
|
my $newfolder = param('newfolder') unless $del;
|
||||||
$newfolder =~ s/^(\w+)\s+.*$/$1/;
|
$newfolder =~ s/^(\w+)\s+.*$/$1/;
|
||||||
|
@ -981,39 +985,43 @@ sub message_delete_or_move()
|
||||||
$context = &untaint($context);
|
$context = &untaint($context);
|
||||||
$mbox = &untaint($mbox);
|
$mbox = &untaint($mbox);
|
||||||
$folder = &untaint($folder);
|
$folder = &untaint($folder);
|
||||||
my $path = "/var/spool/asterisk/voicemail/$context/$mbox/$folder";
|
$path = "/var/spool/asterisk/voicemail/$context/$mbox/$folder";
|
||||||
if (&lock_path($path) == 0) {
|
if ($msgs[0]) {
|
||||||
my $msgcount = &msgcount($context, $mbox, $folder);
|
if (&lock_path($path) == 0) {
|
||||||
my $omsgcount = &msgcount($context, $mbox, $newfolder) if $newfolder;
|
my $msgcount = &msgcount($context, $mbox, $folder);
|
||||||
# print header;
|
my $omsgcount = &msgcount($context, $mbox, $newfolder) if $newfolder;
|
||||||
if ($newfolder ne $folder) {
|
# print header;
|
||||||
$y = 0;
|
if ($newfolder ne $folder) {
|
||||||
for ($x=0;$x<$msgcount;$x++) {
|
$y = 0;
|
||||||
my $msg = sprintf "%04d", $x;
|
for ($x=0;$x<$msgcount;$x++) {
|
||||||
my $newmsg = sprintf "%04d", $y;
|
my $msg = sprintf "%04d", $x;
|
||||||
if (grep(/^$msg$/, @msgs)) {
|
my $newmsg = sprintf "%04d", $y;
|
||||||
if ($newfolder) {
|
if (grep(/^$msg$/, @msgs)) {
|
||||||
&message_rename($context, $mbox, $folder, $msg, $newfolder, sprintf "%04d", $omsgcount);
|
if ($newfolder) {
|
||||||
$omsgcount++;
|
&message_rename($context, $mbox, $folder, $msg, $newfolder, sprintf "%04d", $omsgcount);
|
||||||
|
$omsgcount++;
|
||||||
|
} else {
|
||||||
|
&message_delete($context, $mbox, $folder, $msg);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
&message_delete($context, $mbox, $folder, $msg);
|
&message_rename($context, $mbox, $folder, $msg, $folder, $newmsg);
|
||||||
|
$y++;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
&message_rename($context, $mbox, $folder, $msg, $folder, $newmsg);
|
|
||||||
$y++;
|
|
||||||
}
|
}
|
||||||
}
|
if ($del) {
|
||||||
if ($del) {
|
$txt = "Deleted messages " . join (', ', @msgs);
|
||||||
$txt = "Deleted messages " . join (', ', @msgs);
|
} else {
|
||||||
|
$txt = "Moved messages " . join (', ', @msgs) . " to $newfolder";
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$txt = "Moved messages " . join (', ', @msgs) . " to $newfolder";
|
$txt = "Can't move a message to the same folder they're in already";
|
||||||
}
|
}
|
||||||
|
&unlock_path($path);
|
||||||
} else {
|
} else {
|
||||||
$txt = "Can't move a message to the same folder they're in already";
|
$txt = "Cannot move/delete messages: Unable to lock path.\n";
|
||||||
}
|
}
|
||||||
&unlock_path($path);
|
|
||||||
} else {
|
} else {
|
||||||
$txt = "Cannot move/delete messages: Unable to lock path.\n";
|
$txt = "Please Select Message(s) for this action.\n";
|
||||||
}
|
}
|
||||||
# Not as many messages now
|
# Not as many messages now
|
||||||
$msgcount--;
|
$msgcount--;
|
||||||
|
|
Loading…
Reference in New Issue