projects
/
spider.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2f33279
)
store deleted status across restarts!
author
minima
<minima>
Thu, 4 Oct 2001 11:32:14 +0000
(11:32 +0000)
committer
minima
<minima>
Thu, 4 Oct 2001 11:32:14 +0000
(11:32 +0000)
Changes
patch
|
blob
|
history
cmd/kill.pl
patch
|
blob
|
history
perl/DXMsg.pm
patch
|
blob
|
history
diff --git
a/Changes
b/Changes
index 1c0df002aeac906823834ff826126398b3de2e83..df398943873d3f2d8176e9ed83f49ff655610f42 100644
(file)
--- a/
Changes
+++ b/
Changes
@@
-3,6
+3,7
@@
2. reduce the number R: lines on a bull from a bbs to 2 (the origin and the
last port of call).
3. ignore deleted messages for queuing purposes
2. reduce the number R: lines on a bull from a bbs to 2 (the origin and the
last port of call).
3. ignore deleted messages for queuing purposes
+4. store deleted status across restarts!
03Oct01=======================================================================
1. don't allow @WWW to become a 'TO' field...
2. handle @gb7tlh.#35.eu type addresses as well
03Oct01=======================================================================
1. don't allow @WWW to become a 'TO' field...
2. handle @gb7tlh.#35.eu type addresses as well
diff --git
a/cmd/kill.pl
b/cmd/kill.pl
index 9c7675fa44d8cd5c4bc8c90041381177ea0b4569..fb90a95435756df3d6ba5bdd9327792394081d81 100644
(file)
--- a/
cmd/kill.pl
+++ b/
cmd/kill.pl
@@
-68,8
+68,7
@@
foreach $ref ( @refs) {
}
my $tonode = $ref->tonode;
$ref->stop_msg($tonode) if $tonode;
}
my $tonode = $ref->tonode;
$ref->stop_msg($tonode) if $tonode;
- $ref->delete(1);
- $ref->deletetime($main::systime + $DXMsg::residencetime);
+ $ref->mark_delete;
push @out, $self->msg('m12', $ref->msgno);
}
push @out, $self->msg('m12', $ref->msgno);
}
diff --git
a/perl/DXMsg.pm
b/perl/DXMsg.pm
index 118d991034f947d1778ebdb54167458bf4eea910..7cab1d02f18336d930ab1c6da7c118f973c0eacd 100644
(file)
--- a/
perl/DXMsg.pm
+++ b/
perl/DXMsg.pm
@@
-110,6
+110,8
@@
sub alloc
$self->{origin} = shift;
$self->{'read'} = shift;
$self->{rrreq} = shift;
$self->{origin} = shift;
$self->{'read'} = shift;
$self->{rrreq} = shift;
+ $self->{delete} = shift;
+ $self->{deletetime} = shift;
$self->{gotit} = [];
# $self->{lastt} = $main::systime;
$self->{lines} = [];
$self->{gotit} = [];
# $self->{lastt} = $main::systime;
$self->{lines} = [];
@@
-340,8
+342,7
@@
sub process
if ($ref) {
if ($ref->{private}) { # remove it if it private and gone off site#
Log('msg', "Message $ref->{msgno} from $ref->{from} sent to $fromnode and deleted");
if ($ref) {
if ($ref->{private}) { # remove it if it private and gone off site#
Log('msg', "Message $ref->{msgno} from $ref->{from} sent to $fromnode and deleted");
- $ref->{delete}++;
- $ref->{deletetime} = $main::systime + $residencetime;
+ $ref->mark_delete;
} else {
Log('msg', "Message $ref->{msgno} from $ref->{from} sent to $fromnode");
push @{$ref->{gotit}}, $fromnode; # mark this up as being received
} else {
Log('msg', "Message $ref->{msgno} from $ref->{from} sent to $fromnode");
push @{$ref->{gotit}}, $fromnode; # mark this up as being received
@@
-407,8
+408,7
@@
sub process
if ($pcno == 49) { # global delete on subject
for (@msg) {
if ($_->{from} eq $f[1] && $_->{subject} eq $f[2]) {
if ($pcno == 49) { # global delete on subject
for (@msg) {
if ($_->{from} eq $f[1] && $_->{subject} eq $f[2]) {
- $_->{delete}++;
- $_->{deletetime} = $main::systime + $residencetime;
+ $_->mark_delete;
Log('msg', "Message $_->{msgno} from $_->{from} ($_->{subject}) fully deleted");
DXChannel::broadcast_nodes($line, $self);
}
Log('msg', "Message $_->{msgno} from $_->{from} ($_->{subject}) fully deleted");
DXChannel::broadcast_nodes($line, $self);
}
@@
-453,7
+453,9
@@
sub store
if (defined $fh) {
my $rr = $ref->{rrreq} ? '1' : '0';
my $priv = $ref->{private} ? '1': '0';
if (defined $fh) {
my $rr = $ref->{rrreq} ? '1' : '0';
my $priv = $ref->{private} ? '1': '0';
- print $fh "=== $ref->{msgno}^$ref->{to}^$ref->{from}^$ref->{t}^$priv^$ref->{subject}^$ref->{origin}^$ref->{'read'}^$rr\n";
+ my $del = $ref->{delete} ? '1' : '0';
+ my $delt = $ref->{deletetime} || '0';
+ print $fh "=== $ref->{msgno}^$ref->{to}^$ref->{from}^$ref->{t}^$priv^$ref->{subject}^$ref->{origin}^$ref->{'read'}^$rr^$del^$delt\n";
print $fh "=== ", join('^', @{$ref->{gotit}}), "\n";
my $line;
$ref->{size} = 0;
print $fh "=== ", join('^', @{$ref->{gotit}}), "\n";
my $line;
$ref->{size} = 0;
@@
-495,6
+497,17
@@
sub del_msg
}
}
}
}
+sub mark_delete
+{
+ my $ref = shift;
+ my $t = shift;
+ $t = $main::systime + $residencetime unless defined $t;
+
+ $ref->{delete}++;
+ $ref->{deletetime} = $t;
+ $ref->store( [$ref->read_msg_body] );
+}
+
# clean out old messages from the message queue
sub clean_old
{
# clean out old messages from the message queue
sub clean_old
{
@@
-503,7
+516,9
@@
sub clean_old
# mark old messages for deletion
foreach $ref (@msg) {
if (ref($ref) && !$ref->{keep} && $ref->{t} < $main::systime - $maxage) {
# mark old messages for deletion
foreach $ref (@msg) {
if (ref($ref) && !$ref->{keep} && $ref->{t} < $main::systime - $maxage) {
- $ref->{delete} = 1;
+
+ # this is for IMMEDIATE destruction
+ $ref->{delete}++;
$ref->{deletetime} = 0;
}
}
$ref->{deletetime} = 0;
}
}