diff options
| author | fukachan <fukachan> | 2004-08-13 15:02:48 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2004-08-13 15:02:48 +0000 |
| commit | f3dd33cfe5d500e45114ba6efd7cb0e6c51f2d24 (patch) | |
| tree | 75fa20b9ecd6ef4776b2ff3961a8ffec4eab5c35 /fml/lib/FML/Process/State.pm | |
| parent | b1bba02f89b28e52a15602ba9e2b4ad4bd8e1fe4 (diff) | |
| download | fml8-f3dd33cfe5d500e45114ba6efd7cb0e6c51f2d24.tar.gz fml8-f3dd33cfe5d500e45114ba6efd7cb0e6c51f2d24.tar.bz2 fml8-f3dd33cfe5d500e45114ba6efd7cb0e6c51f2d24.zip | |
temporal failure when external filter process timeouts.
if external filter process timeouts, notify it to $curproc layer, and
distribution process exit(75) for temporal failure.
implement filter_state_{set,get}_tempfail_request().
Diffstat (limited to 'fml/lib/FML/Process/State.pm')
| -rw-r--r-- | fml/lib/FML/Process/State.pm | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/fml/lib/FML/Process/State.pm b/fml/lib/FML/Process/State.pm index a4e12dd9..7e9d1e5e 100644 --- a/fml/lib/FML/Process/State.pm +++ b/fml/lib/FML/Process/State.pm @@ -4,7 +4,7 @@ # All rights reserved. This program is free software; you can # redistribute it and/or modify it under the same terms as Perl itself. # -# $FML: State.pm,v 1.13 2004/07/11 15:43:39 fukachan Exp $ +# $FML: State.pm,v 1.14 2004/07/23 15:59:10 fukachan Exp $ # package FML::Process::State; @@ -577,6 +577,34 @@ sub filter_state_virus_checker_get_error } +# Descriptions: we need to exit as EX_TEMPFAIL. +# Arguments: OBJ($curproc) +# Side Effects: update pcb. +# Return Value: none +sub filter_state_set_tempfail_request +{ + my ($curproc) = @_; + my $category = "exit_tempfail"; + my $pcb = $curproc->pcb(); + + $pcb->set("filter_state", $category, 1); +} + + +# Descriptions: check if we need to exit as EX_TEMPFAIL. +# Arguments: OBJ($curproc) +# Side Effects: none. +# Return Value: NUM +sub filter_state_get_tempfail_request +{ + my ($curproc) = @_; + my $category = "exit_tempfail"; + my $pcb = $curproc->pcb(); + + return( $pcb->get("filter_state", $category) || 0 ); +} + + =head1 SMTP STATE =head2 smtp_server_state_set_error($mta) |
