More POD fixups in docs/
The patch below fixes many errors of the form: *** WARNING: line containing nothing but whitespace in paragraph at line 37 in file writing.pod *** WARNING: line containing nothing but whitespace in paragraph at line 40 in file writing.pod There are also a couple of minor typo-fixes.
This commit is contained in:
parent
90535ef883
commit
dec3ec4920
4
Changes
4
Changes
@ -1,3 +1,7 @@
|
|||||||
|
|
||||||
|
POD cleanups (Steve Kemp)
|
||||||
|
|
||||||
|
|
||||||
0.82 - June 2, 2009
|
0.82 - June 2, 2009
|
||||||
|
|
||||||
prefork: Fix problem with processes sometimes being "left behind" (Charlie Brady)
|
prefork: Fix problem with processes sometimes being "left behind" (Charlie Brady)
|
||||||
|
@ -52,7 +52,7 @@ Note: Do not load both (B<rcpt_ok> and B<rcpt_ok_maxrelay>). This plugin
|
|||||||
should be configured to run I<last>, like B<rcpt_ok>.
|
should be configured to run I<last>, like B<rcpt_ok>.
|
||||||
|
|
||||||
use Qpsmtpd::DSN;
|
use Qpsmtpd::DSN;
|
||||||
|
|
||||||
sub init {
|
sub init {
|
||||||
my ($self, $qp, @args) = @_;
|
my ($self, $qp, @args) = @_;
|
||||||
die "too many arguments"
|
die "too many arguments"
|
||||||
@ -64,7 +64,7 @@ should be configured to run I<last>, like B<rcpt_ok>.
|
|||||||
sub hook_rcpt {
|
sub hook_rcpt {
|
||||||
my ($self, $transaction, $recipient) = @_;
|
my ($self, $transaction, $recipient) = @_;
|
||||||
my ($rc, @msg) = $self->SUPER::hook_rcpt($transaction, $recipient);
|
my ($rc, @msg) = $self->SUPER::hook_rcpt($transaction, $recipient);
|
||||||
|
|
||||||
return ($rc, @msg)
|
return ($rc, @msg)
|
||||||
unless (($rc == DENY) and $self->{_count_relay_max});
|
unless (($rc == DENY) and $self->{_count_relay_max});
|
||||||
|
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
|
|
||||||
The default way of setting config values is placing files with the
|
The default way of setting config values is placing files with the
|
||||||
name of the config variable in the config directory F<config/>, like
|
name of the config variable in the config directory F<config/>, like
|
||||||
qmail's F</var/qmail/control/> directory. NB: F</var/qmail/control> (or
|
qmail's F</var/qmail/control/> directory. NB: F</var/qmail/control> (or
|
||||||
F<$ENV{QMAIL}/control>) is used if a file does not exist in C<config/>.
|
F<$ENV{QMAIL}/control>) is used if a file does not exist in C<config/>.
|
||||||
The location of the C<config/> directory can be set via the
|
The location of the C<config/> directory can be set via the
|
||||||
I<QPSMTPD_CONFIG> environment variable and defaults to the current
|
I<QPSMTPD_CONFIG> environment variable and defaults to the current
|
||||||
working directory.
|
working directory.
|
||||||
|
|
||||||
Any empty line or lines starting with C<#> are ignored. You may use a
|
Any empty line or lines starting with C<#> are ignored. You may use a
|
||||||
@ -52,7 +52,7 @@ logging plugin.
|
|||||||
|
|
||||||
=item databytes
|
=item databytes
|
||||||
|
|
||||||
Maximum size a message may be. Without this setting, there is no limit on the
|
Maximum size a message may be. Without this setting, there is no limit on the
|
||||||
size. Should be something less than the backend MTA has set as it's maximum
|
size. Should be something less than the backend MTA has set as it's maximum
|
||||||
message size (if there is one).
|
message size (if there is one).
|
||||||
|
|
||||||
@ -68,7 +68,7 @@ Override the default SMTP greeting with this string.
|
|||||||
|
|
||||||
=item spool_dir
|
=item spool_dir
|
||||||
|
|
||||||
Where temporary files are stored, defaults to F<tmp/>.
|
Where temporary files are stored, defaults to F<tmp/>.
|
||||||
B<FIXME: is this correct?>
|
B<FIXME: is this correct?>
|
||||||
|
|
||||||
=item spool_perms
|
=item spool_perms
|
||||||
@ -85,7 +85,7 @@ file, C<timeout> the qpsmtpd file. Default is 1200 seconds.
|
|||||||
|
|
||||||
=item tls_before_auth
|
=item tls_before_auth
|
||||||
|
|
||||||
If set to a true value, clients will have to initiate an SSL secured
|
If set to a true value, clients will have to initiate an SSL secured
|
||||||
connection before any auth succeeds, defaults to C<0>.
|
connection before any auth succeeds, defaults to C<0>.
|
||||||
|
|
||||||
=back
|
=back
|
||||||
@ -102,12 +102,12 @@ Domains listed in these files will be accepted as valid local domains,
|
|||||||
anything else is rejected with a C<Relaying denied> message. If an entry
|
anything else is rejected with a C<Relaying denied> message. If an entry
|
||||||
in the C<rcpthosts> file starts with a C<.>, mails to anything ending with
|
in the C<rcpthosts> file starts with a C<.>, mails to anything ending with
|
||||||
this string will be accepted, e.g.:
|
this string will be accepted, e.g.:
|
||||||
|
|
||||||
example.com
|
example.com
|
||||||
.example.com
|
.example.com
|
||||||
|
|
||||||
will accept mails for C<user@example.com> and C<user@something.example.com>.
|
will accept mails for C<user@example.com> and C<user@something.example.com>.
|
||||||
The C<morercpthosts> file ist just checked for exact (case insensitive)
|
The C<morercpthosts> file is just checked for exact (case insensitive)
|
||||||
matches.
|
matches.
|
||||||
|
|
||||||
=item hosts_allow
|
=item hosts_allow
|
||||||
@ -115,7 +115,7 @@ matches.
|
|||||||
Plugin: F<hosts_allow>.
|
Plugin: F<hosts_allow>.
|
||||||
|
|
||||||
Don't use this config file. The plugin itself is required to set the
|
Don't use this config file. The plugin itself is required to set the
|
||||||
maximum number of concurrent connections. This config setting should
|
maximum number of concurrent connections. This config setting should
|
||||||
only be used for some extremly rude clients: if list is too big it will
|
only be used for some extremly rude clients: if list is too big it will
|
||||||
slow down accepting new connections.
|
slow down accepting new connections.
|
||||||
|
|
||||||
@ -125,15 +125,15 @@ slow down accepting new connections.
|
|||||||
Plugin: F<check_relay>
|
Plugin: F<check_relay>
|
||||||
|
|
||||||
Allow relaying for hosts listed in this file. The C<relayclients> file accepts
|
Allow relaying for hosts listed in this file. The C<relayclients> file accepts
|
||||||
IPs and CIDR entries. The C<morercpthosts> file accepts IPs and C<prefixes>
|
IPs and CIDR entries. The C<morercpthosts> file accepts IPs and C<prefixes>
|
||||||
like C<192.168.2.> (note the trailing dot!). With the given example any host
|
like C<192.168.2.> (note the trailing dot!). With the given example any host
|
||||||
which IP starts with C<192.168.2.> may relay via us.
|
which IP starts with C<192.168.2.> may relay via us.
|
||||||
|
|
||||||
=item dnsbl_zones
|
=item dnsbl_zones
|
||||||
|
|
||||||
Plugin: F<dnsbl>
|
Plugin: F<dnsbl>
|
||||||
|
|
||||||
This file specifies the RBL zones list, used by the dnsbl plugin. Ihe IP
|
This file specifies the RBL zones list, used by the dnsbl plugin. Ihe IP
|
||||||
address of each connecting host will be checked against each zone given.
|
address of each connecting host will be checked against each zone given.
|
||||||
A few sample DNSBLs are listed in the sample config file, but you should
|
A few sample DNSBLs are listed in the sample config file, but you should
|
||||||
evaluate the efficacy and listing policies of a DNSBL before using it.
|
evaluate the efficacy and listing policies of a DNSBL before using it.
|
||||||
@ -147,10 +147,12 @@ Plugin: F<require_resolvable_fromhost>
|
|||||||
|
|
||||||
Reject sender addresses where the MX is unresolvable, i.e. a boolean value
|
Reject sender addresses where the MX is unresolvable, i.e. a boolean value
|
||||||
is the only value in this file. If the MX resolves to something, reject the
|
is the only value in this file. If the MX resolves to something, reject the
|
||||||
sender address if it resolves to something listed in the
|
sender address if it resolves to something listed in the
|
||||||
F<invalid_resolvable_fromhost> config file. The I<invalid_resolvable_fromhost>
|
F<invalid_resolvable_fromhost> config file. The I<invalid_resolvable_fromhost>
|
||||||
expects IP addresses or CIDR (i.e. C<network/mask> values) one per line, IPv4
|
expects IP addresses or CIDR (i.e. C<network/mask> values) one per line, IPv4
|
||||||
only currenlty.
|
only currenlty.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ branch - preferably a branch per unrelated change.
|
|||||||
You can use the C<git branch> command to see which branch you are on.
|
You can use the C<git branch> command to see which branch you are on.
|
||||||
|
|
||||||
The easiest way to make a new branch is
|
The easiest way to make a new branch is
|
||||||
|
|
||||||
git checkout -b topic/my-great-change
|
git checkout -b topic/my-great-change
|
||||||
|
|
||||||
This will create a new branch with the name "topic/my-great-change"
|
This will create a new branch with the name "topic/my-great-change"
|
||||||
@ -95,7 +95,7 @@ Manually fix the conflict and then do
|
|||||||
|
|
||||||
git add some/file
|
git add some/file
|
||||||
git commit
|
git commit
|
||||||
|
|
||||||
Or if the conflicting upstream commit did the same logical change then
|
Or if the conflicting upstream commit did the same logical change then
|
||||||
you might want to just skip the local change:
|
you might want to just skip the local change:
|
||||||
|
|
||||||
|
@ -499,7 +499,7 @@ is written to the log.
|
|||||||
Arguments are
|
Arguments are
|
||||||
|
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
B<NOTE:> C<$transaction> is not valid at this point, therefore not mentioned.
|
B<NOTE:> C<$transaction> is not valid at this point, therefore not mentioned.
|
||||||
|
|
||||||
|
|
||||||
|
@ -186,7 +186,7 @@ C<init()> subroutine.
|
|||||||
my ($self, $qp, @args) = @_;
|
my ($self, $qp, @args) = @_;
|
||||||
$self->isa_plugin("rcpt_ok");
|
$self->isa_plugin("rcpt_ok");
|
||||||
}
|
}
|
||||||
|
|
||||||
sub hook_rcpt {
|
sub hook_rcpt {
|
||||||
my ($self, $transaction, $recipient) = @_;
|
my ($self, $transaction, $recipient) = @_;
|
||||||
# do something special here...
|
# do something special here...
|
||||||
@ -273,7 +273,7 @@ FIXME: Test if this really works as inteded ;-)
|
|||||||
#
|
#
|
||||||
# LOGLEVEL is the log level for all other log messages
|
# LOGLEVEL is the log level for all other log messages
|
||||||
use Qpsmtpd::Constants;
|
use Qpsmtpd::Constants;
|
||||||
|
|
||||||
sub register {
|
sub register {
|
||||||
my ($self, $qp, $plugin, $loglevel) = @_;
|
my ($self, $qp, $plugin, $loglevel) = @_;
|
||||||
die "no plugin name given"
|
die "no plugin name given"
|
||||||
@ -285,7 +285,7 @@ FIXME: Test if this really works as inteded ;-)
|
|||||||
$self->{_level} = LOGWARN
|
$self->{_level} = LOGWARN
|
||||||
unless defined $self->{_level};
|
unless defined $self->{_level};
|
||||||
}
|
}
|
||||||
|
|
||||||
sub hook_logging {
|
sub hook_logging {
|
||||||
my ($self, $transaction, $trace, $hook, $plugin, @log) = @_;
|
my ($self, $transaction, $trace, $hook, $plugin, @log) = @_;
|
||||||
return(OK) # drop these lines
|
return(OK) # drop these lines
|
||||||
|
@ -34,24 +34,24 @@ Inserting this static config is done in C<register()>:
|
|||||||
|
|
||||||
sub register {
|
sub register {
|
||||||
my ($self, $qp, @args) = @_;
|
my ($self, $qp, @args) = @_;
|
||||||
|
|
||||||
die "No QMQP server specified in qmqp-forward config"
|
die "No QMQP server specified in qmqp-forward config"
|
||||||
unless @args;
|
unless @args;
|
||||||
|
|
||||||
$self->{_qmqp_timeout} = 120;
|
$self->{_qmqp_timeout} = 120;
|
||||||
|
|
||||||
if ($args[0] =~ /^([\.\w_-]+)$/) {
|
if ($args[0] =~ /^([\.\w_-]+)$/) {
|
||||||
$self->{_qmqp_server} = $1;
|
$self->{_qmqp_server} = $1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
die "Bad data in qmqp server: $args[0]";
|
die "Bad data in qmqp server: $args[0]";
|
||||||
}
|
}
|
||||||
|
|
||||||
$self->{_qmqp_port} = 628;
|
$self->{_qmqp_port} = 628;
|
||||||
if (@args > 1 and $args[1] =~ /^(\d+)$/) {
|
if (@args > 1 and $args[1] =~ /^(\d+)$/) {
|
||||||
$self->{_qmqp_port} = $1;
|
$self->{_qmqp_port} = $1;
|
||||||
}
|
}
|
||||||
|
|
||||||
$self->log(LOGWARN, "WARNING: Ignoring additional arguments.")
|
$self->log(LOGWARN, "WARNING: Ignoring additional arguments.")
|
||||||
if (@args > 2);
|
if (@args > 2);
|
||||||
}
|
}
|
||||||
@ -61,7 +61,7 @@ hook.
|
|||||||
|
|
||||||
sub hook_queue {
|
sub hook_queue {
|
||||||
my ($self, $transaction) = @_;
|
my ($self, $transaction) = @_;
|
||||||
|
|
||||||
$self->log(LOGINFO, "forwarding to $self->{_qmqp_server}:"
|
$self->log(LOGINFO, "forwarding to $self->{_qmqp_server}:"
|
||||||
."$self->{_qmqp_port}");
|
."$self->{_qmqp_port}");
|
||||||
|
|
||||||
@ -177,7 +177,7 @@ blocks and write them to the server
|
|||||||
$self->_disconnect($sock);
|
$self->_disconnect($sock);
|
||||||
return(DECLINED, "Failed to print to socket: $err");
|
return(DECLINED, "Failed to print to socket: $err");
|
||||||
};
|
};
|
||||||
|
|
||||||
$size = read $transaction->body_fh, $buff, 4096;
|
$size = read $transaction->body_fh, $buff, 4096;
|
||||||
unless (defined $size) {
|
unless (defined $size) {
|
||||||
my $err = $!;
|
my $err = $!;
|
||||||
@ -225,14 +225,14 @@ We're done. Now let's see what the remote qmqpd says...
|
|||||||
|
|
||||||
The server's response is a nonempty string of 8-bit bytes, encoded as a
|
The server's response is a nonempty string of 8-bit bytes, encoded as a
|
||||||
netstring.
|
netstring.
|
||||||
|
|
||||||
The first byte of the string is either K, Z, or D. K means that the
|
The first byte of the string is either K, Z, or D. K means that the
|
||||||
message has been accepted for delivery to all envelope recipients. This
|
message has been accepted for delivery to all envelope recipients. This
|
||||||
is morally equivalent to the 250 response to DATA in SMTP; it is subject
|
is morally equivalent to the 250 response to DATA in SMTP; it is subject
|
||||||
to the reliability requirements of RFC 1123, section 5.3.3. Z means
|
to the reliability requirements of RFC 1123, section 5.3.3. Z means
|
||||||
temporary failure; the client should try again later. D means permanent
|
temporary failure; the client should try again later. D means permanent
|
||||||
failure.
|
failure.
|
||||||
|
|
||||||
Note that there is only one response for the entire message; the server
|
Note that there is only one response for the entire message; the server
|
||||||
cannot accept some recipients while rejecting others.
|
cannot accept some recipients while rejecting others.
|
||||||
|
|
||||||
@ -241,10 +241,10 @@ cannot accept some recipients while rejecting others.
|
|||||||
|
|
||||||
my $answer = netstring_read($sock);
|
my $answer = netstring_read($sock);
|
||||||
$self->_disconnect($sock);
|
$self->_disconnect($sock);
|
||||||
|
|
||||||
if (defined $answer and netstring_verify($answer)) {
|
if (defined $answer and netstring_verify($answer)) {
|
||||||
$answer = netstring_decode($answer);
|
$answer = netstring_decode($answer);
|
||||||
|
|
||||||
$answer =~ s/^K// and return(OK,
|
$answer =~ s/^K// and return(OK,
|
||||||
"Queued! $answer");
|
"Queued! $answer");
|
||||||
$answer =~ s/^Z// and return(DENYSOFT,
|
$answer =~ s/^Z// and return(DENYSOFT,
|
||||||
|
Loading…
Reference in New Issue
Block a user