mirror of
https://github.com/vdukhovni/postfix
synced 2025-09-02 07:05:27 +00:00
postfix-2.6-20081002
This commit is contained in:
committed by
Viktor Dukhovni
parent
295accce09
commit
0416bd76e3
@@ -13248,7 +13248,7 @@ Apologies for any names omitted.
|
|||||||
cleanup/cleanup_final.c, cleanup/cleanup_bounce.c,
|
cleanup/cleanup_final.c, cleanup/cleanup_bounce.c,
|
||||||
cleanup/cleanup_api.c.
|
cleanup/cleanup_api.c.
|
||||||
|
|
||||||
20050217
|
20070217
|
||||||
|
|
||||||
Streamline the compile time selection of event handling
|
Streamline the compile time selection of event handling
|
||||||
styles, replacing multiple on/off macros by just one
|
styles, replacing multiple on/off macros by just one
|
||||||
@@ -14642,3 +14642,27 @@ Apologies for any names omitted.
|
|||||||
|
|
||||||
Cleanup: remove obsolete Rhapsody and MacOS targets from
|
Cleanup: remove obsolete Rhapsody and MacOS targets from
|
||||||
makedefs.
|
makedefs.
|
||||||
|
|
||||||
|
20080929
|
||||||
|
|
||||||
|
Workaround: don't log "file has 2 links" warnings when the
|
||||||
|
condition appears to be temporary. As kernels have evolved
|
||||||
|
from non-interruptible system calls towards fine-grained
|
||||||
|
locks, the showq command has become likely to observe a
|
||||||
|
file while the queue manager is in the middle of a rename
|
||||||
|
operation, when the file has links to both the old and new
|
||||||
|
name. File: global/mail_open_ok.c.
|
||||||
|
|
||||||
|
Workaround: don't loop forever when write() fails with a
|
||||||
|
persistent EAGAIN error on a writable file descriptor.
|
||||||
|
File: util/write_buf.c.
|
||||||
|
|
||||||
|
20081002
|
||||||
|
|
||||||
|
Bugfix (introduced Postfix 2.1): the introduction of XFORWARD
|
||||||
|
support resulted in inaccurate logging and (delivery agent)
|
||||||
|
$name expansion. Specifically, Postfix no longer properly
|
||||||
|
distinguished between local submissions and submissions
|
||||||
|
from clients with unknown hostname etc. attributes. Files:
|
||||||
|
smtpd/smtpd.c, qmqpd/qmqpd.c, smtp/smtp_proto.c,
|
||||||
|
cleanup/cleanup_envelope.c.
|
||||||
|
@@ -32,9 +32,9 @@ In SMTP server EHLO replies, the keyword associated with this extension is
|
|||||||
XFORWARD. The keyword is followed by the names of the attributes that the
|
XFORWARD. The keyword is followed by the names of the attributes that the
|
||||||
XFORWARD implementation supports.
|
XFORWARD implementation supports.
|
||||||
|
|
||||||
The client may send the XFORWARD request at any time except in the middle of a
|
The client may send one or more XFORWARD requests at any time except in the
|
||||||
mail delivery transaction (i.e. between MAIL and RSET or DOT). The command may
|
middle of a mail delivery transaction (i.e. between MAIL and RSET or DOT). The
|
||||||
be pipelined when the server supports ESMTP command pipelining.
|
command may be pipelined when the server supports ESMTP command pipelining.
|
||||||
|
|
||||||
The syntax of XFORWARD requests is described below. Upper case and quoted
|
The syntax of XFORWARD requests is described below. Upper case and quoted
|
||||||
strings specify terminals, lowercase strings specify meta terminals, and SP is
|
strings specify terminals, lowercase strings specify meta terminals, and SP is
|
||||||
@@ -93,12 +93,22 @@ Note 5: Postfix implementations prior to version 2.3 do not xtext encode
|
|||||||
attribute values. Servers that wish to interoperate with these older
|
attribute values. Servers that wish to interoperate with these older
|
||||||
implementations should be prepared to receive unencoded information.
|
implementations should be prepared to receive unencoded information.
|
||||||
|
|
||||||
XXFFOORRWWAARRDD SSeerrvveerr rreessppoonnssee
|
XXFFOORRWWAARRDD SSeerrvveerr ooppeerraattiioonn
|
||||||
|
|
||||||
Upon receipt of a correctly formatted XFORWARD command, the server stores the
|
Upon receipt of an initial XFORWARD command, the SMTP server initializes all
|
||||||
specified attribute values, and erases the attributes whose value was specified
|
XFORWARD attributes to [UNAVAILABLE]. With each XFORWARD command, the server
|
||||||
as [UNAVAILABLE]. All XFORWARD attributes are reset to the real client
|
overwrites attributes with the specified attribute values, and erases
|
||||||
information after the MAIL FROM transaction completes (i.e. after RSET or DOT).
|
attributes whose value is specified as [UNAVAILABLE]. Attributes that are not
|
||||||
|
specified in an XFORWARD command retain their current value.
|
||||||
|
|
||||||
|
An ADDR attribute value of [UNAVAILABLE] indicates that the next MAIL FROM
|
||||||
|
transaction is a forwarded local submission. In this case the SMTP server
|
||||||
|
should ignore other client attributes. This behavior is available with Postfix
|
||||||
|
version 2.6.
|
||||||
|
|
||||||
|
At the end of the next MAIL FROM transaction (i.e. RSET or DOT), all XFORWARD
|
||||||
|
attributes are reset to the real client information, and the SMTP server is
|
||||||
|
ready to receive another initial XFORWARD command.
|
||||||
|
|
||||||
XXFFOORRWWAARRDD SSeerrvveerr rreeppllyy ccooddeess
|
XXFFOORRWWAARRDD SSeerrvveerr rreeppllyy ccooddeess
|
||||||
|
|
||||||
|
@@ -11,6 +11,22 @@ instead, a new snapshot is released.
|
|||||||
The mail_release_date configuration parameter (format: yyyymmdd)
|
The mail_release_date configuration parameter (format: yyyymmdd)
|
||||||
specifies the release date of a stable release or snapshot release.
|
specifies the release date of a stable release or snapshot release.
|
||||||
|
|
||||||
|
Incompatibility with snapshot 20081002
|
||||||
|
======================================
|
||||||
|
|
||||||
|
There is a minor change in the way that XFORWARD attributes are
|
||||||
|
stored in queue files. These attributes are used to propagate remote
|
||||||
|
client information through an SMTP-based content filter. If you
|
||||||
|
don't use such filters, then the following incompatibility does not
|
||||||
|
affect your system.
|
||||||
|
|
||||||
|
If you downgrade from this Postfix version to an older version while
|
||||||
|
you still have new local submissions in the mail queue, the older
|
||||||
|
Postfix cleanup server may log "spurious null attribute value"
|
||||||
|
warnings when it processes queue files from the newer Postfix
|
||||||
|
version. The older cleanup server will ignore the null-valued
|
||||||
|
attributes, and no harm will be done.
|
||||||
|
|
||||||
Incompatibility with snapshot 20080814
|
Incompatibility with snapshot 20080814
|
||||||
======================================
|
======================================
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
Wish list:
|
Wish list:
|
||||||
|
|
||||||
Force a panic when the VDA patch reduces the file size limit
|
Force a panic when the VDA patch reduces the file size limit
|
||||||
under the message size. They break the code that marks a
|
under the message size. They break the code that marks a
|
||||||
recipient as "done", when that recipient was added late
|
recipient as "done", when that recipient was added late
|
||||||
|
@@ -55,7 +55,8 @@ of this document. </p>
|
|||||||
extension is XFORWARD. The keyword is followed by the names of the
|
extension is XFORWARD. The keyword is followed by the names of the
|
||||||
attributes that the XFORWARD implementation supports. </p>
|
attributes that the XFORWARD implementation supports. </p>
|
||||||
|
|
||||||
<p> The client may send the XFORWARD request at any time except in
|
<p> The client may send one or more XFORWARD requests at any time
|
||||||
|
except in
|
||||||
the middle of a mail delivery transaction (i.e. between MAIL and
|
the middle of a mail delivery transaction (i.e. between MAIL and
|
||||||
RSET or DOT). The command may be pipelined when the server supports
|
RSET or DOT). The command may be pipelined when the server supports
|
||||||
ESMTP command pipelining. </p>
|
ESMTP command pipelining. </p>
|
||||||
@@ -139,13 +140,24 @@ xtext encode attribute values. Servers that wish to interoperate
|
|||||||
with these older implementations should be prepared to receive
|
with these older implementations should be prepared to receive
|
||||||
unencoded information. </p>
|
unencoded information. </p>
|
||||||
|
|
||||||
<h2> XFORWARD Server response </h2>
|
<h2> XFORWARD Server operation </h2>
|
||||||
|
|
||||||
<p> Upon receipt of a correctly formatted XFORWARD command, the
|
<p> Upon receipt of an initial XFORWARD command, the SMTP server
|
||||||
server stores the specified attribute values, and erases the
|
initializes all XFORWARD attributes to [UNAVAILABLE]. With each
|
||||||
attributes whose value was specified as [UNAVAILABLE]. All XFORWARD
|
XFORWARD command, the server overwrites attributes with the specified
|
||||||
attributes are reset to the real client information after the MAIL
|
attribute values, and erases attributes whose value is specified
|
||||||
FROM transaction completes (i.e. after RSET or DOT). </p>
|
as [UNAVAILABLE]. Attributes that are not specified in an XFORWARD
|
||||||
|
command retain their current value. </p>
|
||||||
|
|
||||||
|
<p> An ADDR attribute value of [UNAVAILABLE] indicates that the
|
||||||
|
next MAIL FROM transaction is a forwarded local submission. In
|
||||||
|
this case the SMTP server should ignore other client attributes.
|
||||||
|
This behavior is available with Postfix version 2.6. </p>
|
||||||
|
|
||||||
|
<p> At the end of the next MAIL FROM transaction (i.e. RSET or DOT),
|
||||||
|
all XFORWARD attributes are reset to the real client information,
|
||||||
|
and the SMTP server is ready to receive another initial XFORWARD
|
||||||
|
command. </p>
|
||||||
|
|
||||||
<h2> XFORWARD Server reply codes </h2>
|
<h2> XFORWARD Server reply codes </h2>
|
||||||
|
|
||||||
|
@@ -55,7 +55,8 @@ of this document. </p>
|
|||||||
extension is XFORWARD. The keyword is followed by the names of the
|
extension is XFORWARD. The keyword is followed by the names of the
|
||||||
attributes that the XFORWARD implementation supports. </p>
|
attributes that the XFORWARD implementation supports. </p>
|
||||||
|
|
||||||
<p> The client may send the XFORWARD request at any time except in
|
<p> The client may send one or more XFORWARD requests at any time
|
||||||
|
except in
|
||||||
the middle of a mail delivery transaction (i.e. between MAIL and
|
the middle of a mail delivery transaction (i.e. between MAIL and
|
||||||
RSET or DOT). The command may be pipelined when the server supports
|
RSET or DOT). The command may be pipelined when the server supports
|
||||||
ESMTP command pipelining. </p>
|
ESMTP command pipelining. </p>
|
||||||
@@ -139,13 +140,24 @@ xtext encode attribute values. Servers that wish to interoperate
|
|||||||
with these older implementations should be prepared to receive
|
with these older implementations should be prepared to receive
|
||||||
unencoded information. </p>
|
unencoded information. </p>
|
||||||
|
|
||||||
<h2> XFORWARD Server response </h2>
|
<h2> XFORWARD Server operation </h2>
|
||||||
|
|
||||||
<p> Upon receipt of a correctly formatted XFORWARD command, the
|
<p> Upon receipt of an initial XFORWARD command, the SMTP server
|
||||||
server stores the specified attribute values, and erases the
|
initializes all XFORWARD attributes to [UNAVAILABLE]. With each
|
||||||
attributes whose value was specified as [UNAVAILABLE]. All XFORWARD
|
XFORWARD command, the server overwrites attributes with the specified
|
||||||
attributes are reset to the real client information after the MAIL
|
attribute values, and erases attributes whose value is specified
|
||||||
FROM transaction completes (i.e. after RSET or DOT). </p>
|
as [UNAVAILABLE]. Attributes that are not specified in an XFORWARD
|
||||||
|
command retain their current value. </p>
|
||||||
|
|
||||||
|
<p> An ADDR attribute value of [UNAVAILABLE] indicates that the
|
||||||
|
next MAIL FROM transaction is a forwarded local submission. In
|
||||||
|
this case the SMTP server should ignore other client attributes.
|
||||||
|
This behavior is available with Postfix version 2.6. </p>
|
||||||
|
|
||||||
|
<p> At the end of the next MAIL FROM transaction (i.e. RSET or DOT),
|
||||||
|
all XFORWARD attributes are reset to the real client information,
|
||||||
|
and the SMTP server is ready to receive another initial XFORWARD
|
||||||
|
command. </p>
|
||||||
|
|
||||||
<h2> XFORWARD Server reply codes </h2>
|
<h2> XFORWARD Server reply codes </h2>
|
||||||
|
|
||||||
|
@@ -168,9 +168,11 @@ bounce_notify_service.o: ../../include/dsn.h
|
|||||||
bounce_notify_service.o: ../../include/dsn_buf.h
|
bounce_notify_service.o: ../../include/dsn_buf.h
|
||||||
bounce_notify_service.o: ../../include/dsn_mask.h
|
bounce_notify_service.o: ../../include/dsn_mask.h
|
||||||
bounce_notify_service.o: ../../include/int_filt.h
|
bounce_notify_service.o: ../../include/int_filt.h
|
||||||
|
bounce_notify_service.o: ../../include/iostuff.h
|
||||||
bounce_notify_service.o: ../../include/mail_addr.h
|
bounce_notify_service.o: ../../include/mail_addr.h
|
||||||
bounce_notify_service.o: ../../include/mail_error.h
|
bounce_notify_service.o: ../../include/mail_error.h
|
||||||
bounce_notify_service.o: ../../include/mail_params.h
|
bounce_notify_service.o: ../../include/mail_params.h
|
||||||
|
bounce_notify_service.o: ../../include/mail_proto.h
|
||||||
bounce_notify_service.o: ../../include/mail_queue.h
|
bounce_notify_service.o: ../../include/mail_queue.h
|
||||||
bounce_notify_service.o: ../../include/msg.h
|
bounce_notify_service.o: ../../include/msg.h
|
||||||
bounce_notify_service.o: ../../include/msg_stats.h
|
bounce_notify_service.o: ../../include/msg_stats.h
|
||||||
@@ -232,9 +234,11 @@ bounce_notify_verp.o: ../../include/dsn.h
|
|||||||
bounce_notify_verp.o: ../../include/dsn_buf.h
|
bounce_notify_verp.o: ../../include/dsn_buf.h
|
||||||
bounce_notify_verp.o: ../../include/dsn_mask.h
|
bounce_notify_verp.o: ../../include/dsn_mask.h
|
||||||
bounce_notify_verp.o: ../../include/int_filt.h
|
bounce_notify_verp.o: ../../include/int_filt.h
|
||||||
|
bounce_notify_verp.o: ../../include/iostuff.h
|
||||||
bounce_notify_verp.o: ../../include/mail_addr.h
|
bounce_notify_verp.o: ../../include/mail_addr.h
|
||||||
bounce_notify_verp.o: ../../include/mail_error.h
|
bounce_notify_verp.o: ../../include/mail_error.h
|
||||||
bounce_notify_verp.o: ../../include/mail_params.h
|
bounce_notify_verp.o: ../../include/mail_params.h
|
||||||
|
bounce_notify_verp.o: ../../include/mail_proto.h
|
||||||
bounce_notify_verp.o: ../../include/mail_queue.h
|
bounce_notify_verp.o: ../../include/mail_queue.h
|
||||||
bounce_notify_verp.o: ../../include/msg.h
|
bounce_notify_verp.o: ../../include/msg.h
|
||||||
bounce_notify_verp.o: ../../include/msg_stats.h
|
bounce_notify_verp.o: ../../include/msg_stats.h
|
||||||
@@ -259,9 +263,11 @@ bounce_one_service.o: ../../include/dsn.h
|
|||||||
bounce_one_service.o: ../../include/dsn_buf.h
|
bounce_one_service.o: ../../include/dsn_buf.h
|
||||||
bounce_one_service.o: ../../include/dsn_mask.h
|
bounce_one_service.o: ../../include/dsn_mask.h
|
||||||
bounce_one_service.o: ../../include/int_filt.h
|
bounce_one_service.o: ../../include/int_filt.h
|
||||||
|
bounce_one_service.o: ../../include/iostuff.h
|
||||||
bounce_one_service.o: ../../include/mail_addr.h
|
bounce_one_service.o: ../../include/mail_addr.h
|
||||||
bounce_one_service.o: ../../include/mail_error.h
|
bounce_one_service.o: ../../include/mail_error.h
|
||||||
bounce_one_service.o: ../../include/mail_params.h
|
bounce_one_service.o: ../../include/mail_params.h
|
||||||
|
bounce_one_service.o: ../../include/mail_proto.h
|
||||||
bounce_one_service.o: ../../include/msg.h
|
bounce_one_service.o: ../../include/msg.h
|
||||||
bounce_one_service.o: ../../include/msg_stats.h
|
bounce_one_service.o: ../../include/msg_stats.h
|
||||||
bounce_one_service.o: ../../include/name_mask.h
|
bounce_one_service.o: ../../include/name_mask.h
|
||||||
@@ -315,9 +321,11 @@ bounce_trace_service.o: ../../include/dsn.h
|
|||||||
bounce_trace_service.o: ../../include/dsn_buf.h
|
bounce_trace_service.o: ../../include/dsn_buf.h
|
||||||
bounce_trace_service.o: ../../include/dsn_mask.h
|
bounce_trace_service.o: ../../include/dsn_mask.h
|
||||||
bounce_trace_service.o: ../../include/int_filt.h
|
bounce_trace_service.o: ../../include/int_filt.h
|
||||||
|
bounce_trace_service.o: ../../include/iostuff.h
|
||||||
bounce_trace_service.o: ../../include/mail_addr.h
|
bounce_trace_service.o: ../../include/mail_addr.h
|
||||||
bounce_trace_service.o: ../../include/mail_error.h
|
bounce_trace_service.o: ../../include/mail_error.h
|
||||||
bounce_trace_service.o: ../../include/mail_params.h
|
bounce_trace_service.o: ../../include/mail_params.h
|
||||||
|
bounce_trace_service.o: ../../include/mail_proto.h
|
||||||
bounce_trace_service.o: ../../include/mail_queue.h
|
bounce_trace_service.o: ../../include/mail_queue.h
|
||||||
bounce_trace_service.o: ../../include/msg.h
|
bounce_trace_service.o: ../../include/msg.h
|
||||||
bounce_trace_service.o: ../../include/msg_stats.h
|
bounce_trace_service.o: ../../include/msg_stats.h
|
||||||
|
@@ -414,6 +414,7 @@ cleanup_api.o: ../../include/vstring.h
|
|||||||
cleanup_api.o: cleanup.h
|
cleanup_api.o: cleanup.h
|
||||||
cleanup_api.o: cleanup_api.c
|
cleanup_api.o: cleanup_api.c
|
||||||
cleanup_body_edit.o: ../../include/argv.h
|
cleanup_body_edit.o: ../../include/argv.h
|
||||||
|
cleanup_body_edit.o: ../../include/attr.h
|
||||||
cleanup_body_edit.o: ../../include/been_here.h
|
cleanup_body_edit.o: ../../include/been_here.h
|
||||||
cleanup_body_edit.o: ../../include/cleanup_user.h
|
cleanup_body_edit.o: ../../include/cleanup_user.h
|
||||||
cleanup_body_edit.o: ../../include/dict.h
|
cleanup_body_edit.o: ../../include/dict.h
|
||||||
@@ -554,6 +555,7 @@ cleanup_extracted.o: ../../include/vstring.h
|
|||||||
cleanup_extracted.o: cleanup.h
|
cleanup_extracted.o: cleanup.h
|
||||||
cleanup_extracted.o: cleanup_extracted.c
|
cleanup_extracted.o: cleanup_extracted.c
|
||||||
cleanup_final.o: ../../include/argv.h
|
cleanup_final.o: ../../include/argv.h
|
||||||
|
cleanup_final.o: ../../include/attr.h
|
||||||
cleanup_final.o: ../../include/been_here.h
|
cleanup_final.o: ../../include/been_here.h
|
||||||
cleanup_final.o: ../../include/cleanup_user.h
|
cleanup_final.o: ../../include/cleanup_user.h
|
||||||
cleanup_final.o: ../../include/dict.h
|
cleanup_final.o: ../../include/dict.h
|
||||||
@@ -580,6 +582,7 @@ cleanup_final.o: ../../include/vstring.h
|
|||||||
cleanup_final.o: cleanup.h
|
cleanup_final.o: cleanup.h
|
||||||
cleanup_final.o: cleanup_final.c
|
cleanup_final.o: cleanup_final.c
|
||||||
cleanup_init.o: ../../include/argv.h
|
cleanup_init.o: ../../include/argv.h
|
||||||
|
cleanup_init.o: ../../include/attr.h
|
||||||
cleanup_init.o: ../../include/been_here.h
|
cleanup_init.o: ../../include/been_here.h
|
||||||
cleanup_init.o: ../../include/cleanup_user.h
|
cleanup_init.o: ../../include/cleanup_user.h
|
||||||
cleanup_init.o: ../../include/dict.h
|
cleanup_init.o: ../../include/dict.h
|
||||||
@@ -613,6 +616,7 @@ cleanup_init.o: ../../include/vstring.h
|
|||||||
cleanup_init.o: cleanup.h
|
cleanup_init.o: cleanup.h
|
||||||
cleanup_init.o: cleanup_init.c
|
cleanup_init.o: cleanup_init.c
|
||||||
cleanup_map11.o: ../../include/argv.h
|
cleanup_map11.o: ../../include/argv.h
|
||||||
|
cleanup_map11.o: ../../include/attr.h
|
||||||
cleanup_map11.o: ../../include/been_here.h
|
cleanup_map11.o: ../../include/been_here.h
|
||||||
cleanup_map11.o: ../../include/cleanup_user.h
|
cleanup_map11.o: ../../include/cleanup_user.h
|
||||||
cleanup_map11.o: ../../include/dict.h
|
cleanup_map11.o: ../../include/dict.h
|
||||||
@@ -641,6 +645,7 @@ cleanup_map11.o: ../../include/vstring.h
|
|||||||
cleanup_map11.o: cleanup.h
|
cleanup_map11.o: cleanup.h
|
||||||
cleanup_map11.o: cleanup_map11.c
|
cleanup_map11.o: cleanup_map11.c
|
||||||
cleanup_map1n.o: ../../include/argv.h
|
cleanup_map1n.o: ../../include/argv.h
|
||||||
|
cleanup_map1n.o: ../../include/attr.h
|
||||||
cleanup_map1n.o: ../../include/been_here.h
|
cleanup_map1n.o: ../../include/been_here.h
|
||||||
cleanup_map1n.o: ../../include/cleanup_user.h
|
cleanup_map1n.o: ../../include/cleanup_user.h
|
||||||
cleanup_map1n.o: ../../include/dict.h
|
cleanup_map1n.o: ../../include/dict.h
|
||||||
@@ -670,6 +675,7 @@ cleanup_map1n.o: ../../include/vstring.h
|
|||||||
cleanup_map1n.o: cleanup.h
|
cleanup_map1n.o: cleanup.h
|
||||||
cleanup_map1n.o: cleanup_map1n.c
|
cleanup_map1n.o: cleanup_map1n.c
|
||||||
cleanup_masquerade.o: ../../include/argv.h
|
cleanup_masquerade.o: ../../include/argv.h
|
||||||
|
cleanup_masquerade.o: ../../include/attr.h
|
||||||
cleanup_masquerade.o: ../../include/been_here.h
|
cleanup_masquerade.o: ../../include/been_here.h
|
||||||
cleanup_masquerade.o: ../../include/cleanup_user.h
|
cleanup_masquerade.o: ../../include/cleanup_user.h
|
||||||
cleanup_masquerade.o: ../../include/dict.h
|
cleanup_masquerade.o: ../../include/dict.h
|
||||||
@@ -780,6 +786,7 @@ cleanup_milter.o: ../../include/vstring.h
|
|||||||
cleanup_milter.o: cleanup.h
|
cleanup_milter.o: cleanup.h
|
||||||
cleanup_milter.o: cleanup_milter.c
|
cleanup_milter.o: cleanup_milter.c
|
||||||
cleanup_out.o: ../../include/argv.h
|
cleanup_out.o: ../../include/argv.h
|
||||||
|
cleanup_out.o: ../../include/attr.h
|
||||||
cleanup_out.o: ../../include/been_here.h
|
cleanup_out.o: ../../include/been_here.h
|
||||||
cleanup_out.o: ../../include/cleanup_user.h
|
cleanup_out.o: ../../include/cleanup_user.h
|
||||||
cleanup_out.o: ../../include/dict.h
|
cleanup_out.o: ../../include/dict.h
|
||||||
@@ -850,6 +857,7 @@ cleanup_out_recipient.o: ../../include/vstring.h
|
|||||||
cleanup_out_recipient.o: cleanup.h
|
cleanup_out_recipient.o: cleanup.h
|
||||||
cleanup_out_recipient.o: cleanup_out_recipient.c
|
cleanup_out_recipient.o: cleanup_out_recipient.c
|
||||||
cleanup_region.o: ../../include/argv.h
|
cleanup_region.o: ../../include/argv.h
|
||||||
|
cleanup_region.o: ../../include/attr.h
|
||||||
cleanup_region.o: ../../include/been_here.h
|
cleanup_region.o: ../../include/been_here.h
|
||||||
cleanup_region.o: ../../include/cleanup_user.h
|
cleanup_region.o: ../../include/cleanup_user.h
|
||||||
cleanup_region.o: ../../include/dict.h
|
cleanup_region.o: ../../include/dict.h
|
||||||
|
@@ -176,12 +176,14 @@ static void cleanup_envelope_process(CLEANUP_STATE *state, int type,
|
|||||||
state->errs |= CLEANUP_STAT_BAD;
|
state->errs |= CLEANUP_STAT_BAD;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#if 0
|
||||||
/* Zero-length values are place holders for unavailable values. */
|
/* Zero-length values are place holders for unavailable values. */
|
||||||
if (*attr_value == 0) {
|
if (*attr_value == 0) {
|
||||||
msg_warn("%s: spurious null attribute value for \"%s\" -- ignored",
|
msg_warn("%s: spurious null attribute value for \"%s\" -- ignored",
|
||||||
state->queue_id, attr_name);
|
state->queue_id, attr_name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
if ((junk = rec_attr_map(attr_name)) != 0) {
|
if ((junk = rec_attr_map(attr_name)) != 0) {
|
||||||
mapped_buf = attr_value;
|
mapped_buf = attr_value;
|
||||||
mapped_type = junk;
|
mapped_type = junk;
|
||||||
@@ -466,7 +468,9 @@ static void cleanup_envelope_process(CLEANUP_STATE *state, int type,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
nvtable_update(state->attr, attr_name, attr_value);
|
/* Zero-length values are place holders for non-existent values. */
|
||||||
|
if (*attr_value)
|
||||||
|
nvtable_update(state->attr, attr_name, attr_value);
|
||||||
cleanup_out(state, type, buf, len);
|
cleanup_out(state, type, buf, len);
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
|
@@ -65,6 +65,8 @@ discard.o: ../../include/dsn.h
|
|||||||
discard.o: ../../include/dsn_buf.h
|
discard.o: ../../include/dsn_buf.h
|
||||||
discard.o: ../../include/dsn_util.h
|
discard.o: ../../include/dsn_util.h
|
||||||
discard.o: ../../include/flush_clnt.h
|
discard.o: ../../include/flush_clnt.h
|
||||||
|
discard.o: ../../include/iostuff.h
|
||||||
|
discard.o: ../../include/mail_proto.h
|
||||||
discard.o: ../../include/mail_queue.h
|
discard.o: ../../include/mail_queue.h
|
||||||
discard.o: ../../include/mail_server.h
|
discard.o: ../../include/mail_server.h
|
||||||
discard.o: ../../include/mail_version.h
|
discard.o: ../../include/mail_version.h
|
||||||
|
@@ -53,12 +53,6 @@ typedef struct DELIVER_REQUEST {
|
|||||||
int dsn_ret; /* DSN full/header notification */
|
int dsn_ret; /* DSN full/header notification */
|
||||||
} DELIVER_REQUEST;
|
} DELIVER_REQUEST;
|
||||||
|
|
||||||
/*
|
|
||||||
* Since we can't send null pointers, null strings represent unavailable
|
|
||||||
* attributes instead. They're less likely to explode in our face, too.
|
|
||||||
*/
|
|
||||||
#define DEL_REQ_ATTR_AVAIL(a) (*(a))
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* How to deliver, really?
|
* How to deliver, really?
|
||||||
*/
|
*/
|
||||||
|
@@ -59,6 +59,7 @@
|
|||||||
|
|
||||||
#include <sys_defs.h>
|
#include <sys_defs.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#include <time.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
/* Utility library. */
|
/* Utility library. */
|
||||||
@@ -102,9 +103,24 @@ int mail_open_ok(const char *queue_name, const char *queue_id,
|
|||||||
}
|
}
|
||||||
if ((statp->st_mode & S_IRWXU) != MAIL_QUEUE_STAT_READY)
|
if ((statp->st_mode & S_IRWXU) != MAIL_QUEUE_STAT_READY)
|
||||||
return (MAIL_OPEN_NO);
|
return (MAIL_OPEN_NO);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Workaround for spurious "file has 2 links" warnings in showq. As
|
||||||
|
* kernels have evolved from non-interruptible system calls towards
|
||||||
|
* fine-grained locks, the showq command has become likely to observe a
|
||||||
|
* file while the queue manager is in the middle of renaming it, at a
|
||||||
|
* time when the file has links to both the old and new name. We now log
|
||||||
|
* the warning only when the condition appears to be persistent.
|
||||||
|
*/
|
||||||
|
#define MINUTE_SECONDS 60 /* XXX should be centralized */
|
||||||
|
|
||||||
if (statp->st_nlink > 1) {
|
if (statp->st_nlink > 1) {
|
||||||
msg_warn("%s: uid %ld: file has %d links", *path,
|
if (msg_verbose)
|
||||||
(long) statp->st_uid, (int) statp->st_nlink);
|
msg_info("%s: uid %ld: file has %d links", *path,
|
||||||
|
(long) statp->st_uid, (int) statp->st_nlink);
|
||||||
|
else if (statp->st_ctime < time((time_t *) 0) - MINUTE_SECONDS)
|
||||||
|
msg_warn("%s: uid %ld: file has %d links", *path,
|
||||||
|
(long) statp->st_uid, (int) statp->st_nlink);
|
||||||
}
|
}
|
||||||
return (MAIL_OPEN_YES);
|
return (MAIL_OPEN_YES);
|
||||||
}
|
}
|
||||||
|
@@ -190,6 +190,19 @@ extern char *mail_pathname(const char *, const char *);
|
|||||||
#define MAIL_ATTR_ORG_NONE "unknown" /* origin unknown */
|
#define MAIL_ATTR_ORG_NONE "unknown" /* origin unknown */
|
||||||
#define MAIL_ATTR_ORG_LOCAL "local" /* local submission */
|
#define MAIL_ATTR_ORG_LOCAL "local" /* local submission */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Non-existent attribute values are represented as empty strings (e.g. no
|
||||||
|
* remote client, or no HELO hostname). Unknown attribute values are
|
||||||
|
* represented as "unknown" (e.g., unknown remote client hostname). An empty
|
||||||
|
* string is more convenient to send than a null pointer, and is less likely
|
||||||
|
* to blow up.
|
||||||
|
*/
|
||||||
|
#define MAIL_ATTR_VAL_NONEXIST ""
|
||||||
|
#define MAIL_ATTR_VAL_UNKNOWN "unknown"
|
||||||
|
|
||||||
|
#define MAIL_ATTR_IS_EXIST(a) (*(a))
|
||||||
|
#define MAIL_ATTR_IS_KNOWN(a) (*(a)) && strcmp((a), MAIL_ATTR_VAL_UNKNOWN)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XCLIENT/XFORWARD in SMTP.
|
* XCLIENT/XFORWARD in SMTP.
|
||||||
*/
|
*/
|
||||||
|
@@ -20,7 +20,7 @@
|
|||||||
* Patches change both the patchlevel and the release date. Snapshots have no
|
* Patches change both the patchlevel and the release date. Snapshots have no
|
||||||
* patchlevel; they change the release date only.
|
* patchlevel; they change the release date only.
|
||||||
*/
|
*/
|
||||||
#define MAIL_RELEASE_DATE "20080903"
|
#define MAIL_RELEASE_DATE "20081002"
|
||||||
#define MAIL_VERSION_NUMBER "2.6"
|
#define MAIL_VERSION_NUMBER "2.6"
|
||||||
|
|
||||||
#ifdef SNAPSHOT
|
#ifdef SNAPSHOT
|
||||||
|
@@ -78,7 +78,9 @@ alias.o: ../../include/dsn_buf.h
|
|||||||
alias.o: ../../include/dsn_mask.h
|
alias.o: ../../include/dsn_mask.h
|
||||||
alias.o: ../../include/fold_addr.h
|
alias.o: ../../include/fold_addr.h
|
||||||
alias.o: ../../include/htable.h
|
alias.o: ../../include/htable.h
|
||||||
|
alias.o: ../../include/iostuff.h
|
||||||
alias.o: ../../include/mail_params.h
|
alias.o: ../../include/mail_params.h
|
||||||
|
alias.o: ../../include/mail_proto.h
|
||||||
alias.o: ../../include/maps.h
|
alias.o: ../../include/maps.h
|
||||||
alias.o: ../../include/mbox_conf.h
|
alias.o: ../../include/mbox_conf.h
|
||||||
alias.o: ../../include/msg.h
|
alias.o: ../../include/msg.h
|
||||||
@@ -114,9 +116,11 @@ command.o: ../../include/dsn_buf.h
|
|||||||
command.o: ../../include/dsn_util.h
|
command.o: ../../include/dsn_util.h
|
||||||
command.o: ../../include/fold_addr.h
|
command.o: ../../include/fold_addr.h
|
||||||
command.o: ../../include/htable.h
|
command.o: ../../include/htable.h
|
||||||
|
command.o: ../../include/iostuff.h
|
||||||
command.o: ../../include/mac_parse.h
|
command.o: ../../include/mac_parse.h
|
||||||
command.o: ../../include/mail_copy.h
|
command.o: ../../include/mail_copy.h
|
||||||
command.o: ../../include/mail_params.h
|
command.o: ../../include/mail_params.h
|
||||||
|
command.o: ../../include/mail_proto.h
|
||||||
command.o: ../../include/maps.h
|
command.o: ../../include/maps.h
|
||||||
command.o: ../../include/mbox_conf.h
|
command.o: ../../include/mbox_conf.h
|
||||||
command.o: ../../include/msg.h
|
command.o: ../../include/msg.h
|
||||||
@@ -142,6 +146,8 @@ deliver_attr.o: ../../include/dsn.h
|
|||||||
deliver_attr.o: ../../include/dsn_buf.h
|
deliver_attr.o: ../../include/dsn_buf.h
|
||||||
deliver_attr.o: ../../include/fold_addr.h
|
deliver_attr.o: ../../include/fold_addr.h
|
||||||
deliver_attr.o: ../../include/htable.h
|
deliver_attr.o: ../../include/htable.h
|
||||||
|
deliver_attr.o: ../../include/iostuff.h
|
||||||
|
deliver_attr.o: ../../include/mail_proto.h
|
||||||
deliver_attr.o: ../../include/maps.h
|
deliver_attr.o: ../../include/maps.h
|
||||||
deliver_attr.o: ../../include/mbox_conf.h
|
deliver_attr.o: ../../include/mbox_conf.h
|
||||||
deliver_attr.o: ../../include/msg.h
|
deliver_attr.o: ../../include/msg.h
|
||||||
@@ -174,6 +180,7 @@ dotforward.o: ../../include/mac_expand.h
|
|||||||
dotforward.o: ../../include/mac_parse.h
|
dotforward.o: ../../include/mac_parse.h
|
||||||
dotforward.o: ../../include/mail_conf.h
|
dotforward.o: ../../include/mail_conf.h
|
||||||
dotforward.o: ../../include/mail_params.h
|
dotforward.o: ../../include/mail_params.h
|
||||||
|
dotforward.o: ../../include/mail_proto.h
|
||||||
dotforward.o: ../../include/maps.h
|
dotforward.o: ../../include/maps.h
|
||||||
dotforward.o: ../../include/mbox_conf.h
|
dotforward.o: ../../include/mbox_conf.h
|
||||||
dotforward.o: ../../include/msg.h
|
dotforward.o: ../../include/msg.h
|
||||||
@@ -207,8 +214,10 @@ file.o: ../../include/dsn_buf.h
|
|||||||
file.o: ../../include/dsn_util.h
|
file.o: ../../include/dsn_util.h
|
||||||
file.o: ../../include/fold_addr.h
|
file.o: ../../include/fold_addr.h
|
||||||
file.o: ../../include/htable.h
|
file.o: ../../include/htable.h
|
||||||
|
file.o: ../../include/iostuff.h
|
||||||
file.o: ../../include/mail_copy.h
|
file.o: ../../include/mail_copy.h
|
||||||
file.o: ../../include/mail_params.h
|
file.o: ../../include/mail_params.h
|
||||||
|
file.o: ../../include/mail_proto.h
|
||||||
file.o: ../../include/maps.h
|
file.o: ../../include/maps.h
|
||||||
file.o: ../../include/mbox_conf.h
|
file.o: ../../include/mbox_conf.h
|
||||||
file.o: ../../include/mbox_open.h
|
file.o: ../../include/mbox_open.h
|
||||||
@@ -279,6 +288,7 @@ include.o: ../../include/fold_addr.h
|
|||||||
include.o: ../../include/htable.h
|
include.o: ../../include/htable.h
|
||||||
include.o: ../../include/iostuff.h
|
include.o: ../../include/iostuff.h
|
||||||
include.o: ../../include/mail_params.h
|
include.o: ../../include/mail_params.h
|
||||||
|
include.o: ../../include/mail_proto.h
|
||||||
include.o: ../../include/maps.h
|
include.o: ../../include/maps.h
|
||||||
include.o: ../../include/mbox_conf.h
|
include.o: ../../include/mbox_conf.h
|
||||||
include.o: ../../include/msg.h
|
include.o: ../../include/msg.h
|
||||||
@@ -309,7 +319,9 @@ indirect.o: ../../include/dsn.h
|
|||||||
indirect.o: ../../include/dsn_buf.h
|
indirect.o: ../../include/dsn_buf.h
|
||||||
indirect.o: ../../include/fold_addr.h
|
indirect.o: ../../include/fold_addr.h
|
||||||
indirect.o: ../../include/htable.h
|
indirect.o: ../../include/htable.h
|
||||||
|
indirect.o: ../../include/iostuff.h
|
||||||
indirect.o: ../../include/mail_params.h
|
indirect.o: ../../include/mail_params.h
|
||||||
|
indirect.o: ../../include/mail_proto.h
|
||||||
indirect.o: ../../include/maps.h
|
indirect.o: ../../include/maps.h
|
||||||
indirect.o: ../../include/mbox_conf.h
|
indirect.o: ../../include/mbox_conf.h
|
||||||
indirect.o: ../../include/msg.h
|
indirect.o: ../../include/msg.h
|
||||||
@@ -341,6 +353,7 @@ local.o: ../../include/iostuff.h
|
|||||||
local.o: ../../include/mail_addr.h
|
local.o: ../../include/mail_addr.h
|
||||||
local.o: ../../include/mail_conf.h
|
local.o: ../../include/mail_conf.h
|
||||||
local.o: ../../include/mail_params.h
|
local.o: ../../include/mail_params.h
|
||||||
|
local.o: ../../include/mail_proto.h
|
||||||
local.o: ../../include/mail_server.h
|
local.o: ../../include/mail_server.h
|
||||||
local.o: ../../include/mail_version.h
|
local.o: ../../include/mail_version.h
|
||||||
local.o: ../../include/maps.h
|
local.o: ../../include/maps.h
|
||||||
@@ -369,9 +382,11 @@ local_expand.o: ../../include/dsn.h
|
|||||||
local_expand.o: ../../include/dsn_buf.h
|
local_expand.o: ../../include/dsn_buf.h
|
||||||
local_expand.o: ../../include/fold_addr.h
|
local_expand.o: ../../include/fold_addr.h
|
||||||
local_expand.o: ../../include/htable.h
|
local_expand.o: ../../include/htable.h
|
||||||
|
local_expand.o: ../../include/iostuff.h
|
||||||
local_expand.o: ../../include/mac_expand.h
|
local_expand.o: ../../include/mac_expand.h
|
||||||
local_expand.o: ../../include/mac_parse.h
|
local_expand.o: ../../include/mac_parse.h
|
||||||
local_expand.o: ../../include/mail_params.h
|
local_expand.o: ../../include/mail_params.h
|
||||||
|
local_expand.o: ../../include/mail_proto.h
|
||||||
local_expand.o: ../../include/maps.h
|
local_expand.o: ../../include/maps.h
|
||||||
local_expand.o: ../../include/mbox_conf.h
|
local_expand.o: ../../include/mbox_conf.h
|
||||||
local_expand.o: ../../include/msg_stats.h
|
local_expand.o: ../../include/msg_stats.h
|
||||||
@@ -437,8 +452,10 @@ maildir.o: ../../include/dsn_util.h
|
|||||||
maildir.o: ../../include/fold_addr.h
|
maildir.o: ../../include/fold_addr.h
|
||||||
maildir.o: ../../include/get_hostname.h
|
maildir.o: ../../include/get_hostname.h
|
||||||
maildir.o: ../../include/htable.h
|
maildir.o: ../../include/htable.h
|
||||||
|
maildir.o: ../../include/iostuff.h
|
||||||
maildir.o: ../../include/mail_copy.h
|
maildir.o: ../../include/mail_copy.h
|
||||||
maildir.o: ../../include/mail_params.h
|
maildir.o: ../../include/mail_params.h
|
||||||
|
maildir.o: ../../include/mail_proto.h
|
||||||
maildir.o: ../../include/make_dirs.h
|
maildir.o: ../../include/make_dirs.h
|
||||||
maildir.o: ../../include/maps.h
|
maildir.o: ../../include/maps.h
|
||||||
maildir.o: ../../include/mbox_conf.h
|
maildir.o: ../../include/mbox_conf.h
|
||||||
@@ -474,7 +491,9 @@ recipient.o: ../../include/dsn_buf.h
|
|||||||
recipient.o: ../../include/ext_prop.h
|
recipient.o: ../../include/ext_prop.h
|
||||||
recipient.o: ../../include/fold_addr.h
|
recipient.o: ../../include/fold_addr.h
|
||||||
recipient.o: ../../include/htable.h
|
recipient.o: ../../include/htable.h
|
||||||
|
recipient.o: ../../include/iostuff.h
|
||||||
recipient.o: ../../include/mail_params.h
|
recipient.o: ../../include/mail_params.h
|
||||||
|
recipient.o: ../../include/mail_proto.h
|
||||||
recipient.o: ../../include/maps.h
|
recipient.o: ../../include/maps.h
|
||||||
recipient.o: ../../include/mbox_conf.h
|
recipient.o: ../../include/mbox_conf.h
|
||||||
recipient.o: ../../include/msg.h
|
recipient.o: ../../include/msg.h
|
||||||
@@ -536,7 +555,9 @@ token.o: ../../include/dsn.h
|
|||||||
token.o: ../../include/dsn_buf.h
|
token.o: ../../include/dsn_buf.h
|
||||||
token.o: ../../include/fold_addr.h
|
token.o: ../../include/fold_addr.h
|
||||||
token.o: ../../include/htable.h
|
token.o: ../../include/htable.h
|
||||||
|
token.o: ../../include/iostuff.h
|
||||||
token.o: ../../include/mail_params.h
|
token.o: ../../include/mail_params.h
|
||||||
|
token.o: ../../include/mail_proto.h
|
||||||
token.o: ../../include/maps.h
|
token.o: ../../include/maps.h
|
||||||
token.o: ../../include/mbox_conf.h
|
token.o: ../../include/mbox_conf.h
|
||||||
token.o: ../../include/msg.h
|
token.o: ../../include/msg.h
|
||||||
|
@@ -121,6 +121,7 @@ milter_macros.o: ../../include/argv.h
|
|||||||
milter_macros.o: ../../include/attr.h
|
milter_macros.o: ../../include/attr.h
|
||||||
milter_macros.o: ../../include/iostuff.h
|
milter_macros.o: ../../include/iostuff.h
|
||||||
milter_macros.o: ../../include/mail_proto.h
|
milter_macros.o: ../../include/mail_proto.h
|
||||||
|
milter_macros.o: ../../include/msg.h
|
||||||
milter_macros.o: ../../include/mymalloc.h
|
milter_macros.o: ../../include/mymalloc.h
|
||||||
milter_macros.o: ../../include/sys_defs.h
|
milter_macros.o: ../../include/sys_defs.h
|
||||||
milter_macros.o: ../../include/vbuf.h
|
milter_macros.o: ../../include/vbuf.h
|
||||||
|
@@ -97,8 +97,10 @@ qmgr_active.o: ../../include/dsn.h
|
|||||||
qmgr_active.o: ../../include/dsn_buf.h
|
qmgr_active.o: ../../include/dsn_buf.h
|
||||||
qmgr_active.o: ../../include/dsn_mask.h
|
qmgr_active.o: ../../include/dsn_mask.h
|
||||||
qmgr_active.o: ../../include/events.h
|
qmgr_active.o: ../../include/events.h
|
||||||
|
qmgr_active.o: ../../include/iostuff.h
|
||||||
qmgr_active.o: ../../include/mail_open_ok.h
|
qmgr_active.o: ../../include/mail_open_ok.h
|
||||||
qmgr_active.o: ../../include/mail_params.h
|
qmgr_active.o: ../../include/mail_params.h
|
||||||
|
qmgr_active.o: ../../include/mail_proto.h
|
||||||
qmgr_active.o: ../../include/mail_queue.h
|
qmgr_active.o: ../../include/mail_queue.h
|
||||||
qmgr_active.o: ../../include/msg.h
|
qmgr_active.o: ../../include/msg.h
|
||||||
qmgr_active.o: ../../include/msg_stats.h
|
qmgr_active.o: ../../include/msg_stats.h
|
||||||
@@ -120,6 +122,8 @@ qmgr_bounce.o: ../../include/deliver_completed.h
|
|||||||
qmgr_bounce.o: ../../include/deliver_request.h
|
qmgr_bounce.o: ../../include/deliver_request.h
|
||||||
qmgr_bounce.o: ../../include/dsn.h
|
qmgr_bounce.o: ../../include/dsn.h
|
||||||
qmgr_bounce.o: ../../include/dsn_buf.h
|
qmgr_bounce.o: ../../include/dsn_buf.h
|
||||||
|
qmgr_bounce.o: ../../include/iostuff.h
|
||||||
|
qmgr_bounce.o: ../../include/mail_proto.h
|
||||||
qmgr_bounce.o: ../../include/msg_stats.h
|
qmgr_bounce.o: ../../include/msg_stats.h
|
||||||
qmgr_bounce.o: ../../include/recipient_list.h
|
qmgr_bounce.o: ../../include/recipient_list.h
|
||||||
qmgr_bounce.o: ../../include/scan_dir.h
|
qmgr_bounce.o: ../../include/scan_dir.h
|
||||||
@@ -186,7 +190,9 @@ qmgr_entry.o: ../../include/attr.h
|
|||||||
qmgr_entry.o: ../../include/deliver_request.h
|
qmgr_entry.o: ../../include/deliver_request.h
|
||||||
qmgr_entry.o: ../../include/dsn.h
|
qmgr_entry.o: ../../include/dsn.h
|
||||||
qmgr_entry.o: ../../include/events.h
|
qmgr_entry.o: ../../include/events.h
|
||||||
|
qmgr_entry.o: ../../include/iostuff.h
|
||||||
qmgr_entry.o: ../../include/mail_params.h
|
qmgr_entry.o: ../../include/mail_params.h
|
||||||
|
qmgr_entry.o: ../../include/mail_proto.h
|
||||||
qmgr_entry.o: ../../include/msg.h
|
qmgr_entry.o: ../../include/msg.h
|
||||||
qmgr_entry.o: ../../include/msg_stats.h
|
qmgr_entry.o: ../../include/msg_stats.h
|
||||||
qmgr_entry.o: ../../include/mymalloc.h
|
qmgr_entry.o: ../../include/mymalloc.h
|
||||||
|
@@ -26,7 +26,8 @@
|
|||||||
/* qmgr_deliver() executes when a delivery process announces its
|
/* qmgr_deliver() executes when a delivery process announces its
|
||||||
/* availability for the named transport. It arranges for delivery
|
/* availability for the named transport. It arranges for delivery
|
||||||
/* of a suitable queue entry. The \fIfp\fR argument specifies a
|
/* of a suitable queue entry. The \fIfp\fR argument specifies a
|
||||||
/* stream that is connected to the delivery process. Upon completion
|
/* stream that is connected to the delivery process, or a null
|
||||||
|
/* pointer if the transport accepts no connection. Upon completion
|
||||||
/* of delivery (successful or not), the stream is closed, so that the
|
/* of delivery (successful or not), the stream is closed, so that the
|
||||||
/* delivery process is released.
|
/* delivery process is released.
|
||||||
/* DIAGNOSTICS
|
/* DIAGNOSTICS
|
||||||
|
@@ -632,6 +632,9 @@ static int qmgr_message_read(QMGR_MESSAGE *message)
|
|||||||
} else if (strcmp(name, MAIL_ATTR_ACT_HELO_NAME) == 0) {
|
} else if (strcmp(name, MAIL_ATTR_ACT_HELO_NAME) == 0) {
|
||||||
if (have_log_client_attr == 0 && message->client_helo == 0)
|
if (have_log_client_attr == 0 && message->client_helo == 0)
|
||||||
message->client_helo = mystrdup(value);
|
message->client_helo = mystrdup(value);
|
||||||
|
} else if (strcmp(name, MAIL_ATTR_ACT_CLIENT_PORT) == 0) {
|
||||||
|
if (have_log_client_attr == 0 && message->client_port == 0)
|
||||||
|
message->client_port = mystrdup(value);
|
||||||
}
|
}
|
||||||
/* Original client attributes. */
|
/* Original client attributes. */
|
||||||
else if (strcmp(name, MAIL_ATTR_LOG_CLIENT_NAME) == 0) {
|
else if (strcmp(name, MAIL_ATTR_LOG_CLIENT_NAME) == 0) {
|
||||||
|
@@ -337,7 +337,8 @@ void qmgr_transport_alloc(QMGR_TRANSPORT *transport, QMGR_TRANSPORT_ALLOC_NOT
|
|||||||
transport->pending += 1;
|
transport->pending += 1;
|
||||||
if ((alloc->stream = mail_connect(MAIL_CLASS_PRIVATE, transport->name,
|
if ((alloc->stream = mail_connect(MAIL_CLASS_PRIVATE, transport->name,
|
||||||
NON_BLOCKING)) == 0) {
|
NON_BLOCKING)) == 0) {
|
||||||
msg_warn("connect to transport %s: %m", transport->name);
|
msg_warn("connect to transport %s/%s: %m",
|
||||||
|
MAIL_CLASS_PRIVATE, transport->name);
|
||||||
event_request_timer(qmgr_transport_event, (char *) alloc, 0);
|
event_request_timer(qmgr_transport_event, (char *) alloc, 0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -78,6 +78,7 @@ pipe.o: ../../include/mail_addr.h
|
|||||||
pipe.o: ../../include/mail_conf.h
|
pipe.o: ../../include/mail_conf.h
|
||||||
pipe.o: ../../include/mail_copy.h
|
pipe.o: ../../include/mail_copy.h
|
||||||
pipe.o: ../../include/mail_params.h
|
pipe.o: ../../include/mail_params.h
|
||||||
|
pipe.o: ../../include/mail_proto.h
|
||||||
pipe.o: ../../include/mail_server.h
|
pipe.o: ../../include/mail_server.h
|
||||||
pipe.o: ../../include/mail_version.h
|
pipe.o: ../../include/mail_version.h
|
||||||
pipe.o: ../../include/msg.h
|
pipe.o: ../../include/msg.h
|
||||||
|
@@ -99,8 +99,10 @@ qmgr_active.o: ../../include/dsn.h
|
|||||||
qmgr_active.o: ../../include/dsn_buf.h
|
qmgr_active.o: ../../include/dsn_buf.h
|
||||||
qmgr_active.o: ../../include/dsn_mask.h
|
qmgr_active.o: ../../include/dsn_mask.h
|
||||||
qmgr_active.o: ../../include/events.h
|
qmgr_active.o: ../../include/events.h
|
||||||
|
qmgr_active.o: ../../include/iostuff.h
|
||||||
qmgr_active.o: ../../include/mail_open_ok.h
|
qmgr_active.o: ../../include/mail_open_ok.h
|
||||||
qmgr_active.o: ../../include/mail_params.h
|
qmgr_active.o: ../../include/mail_params.h
|
||||||
|
qmgr_active.o: ../../include/mail_proto.h
|
||||||
qmgr_active.o: ../../include/mail_queue.h
|
qmgr_active.o: ../../include/mail_queue.h
|
||||||
qmgr_active.o: ../../include/msg.h
|
qmgr_active.o: ../../include/msg.h
|
||||||
qmgr_active.o: ../../include/msg_stats.h
|
qmgr_active.o: ../../include/msg_stats.h
|
||||||
@@ -122,6 +124,8 @@ qmgr_bounce.o: ../../include/deliver_completed.h
|
|||||||
qmgr_bounce.o: ../../include/deliver_request.h
|
qmgr_bounce.o: ../../include/deliver_request.h
|
||||||
qmgr_bounce.o: ../../include/dsn.h
|
qmgr_bounce.o: ../../include/dsn.h
|
||||||
qmgr_bounce.o: ../../include/dsn_buf.h
|
qmgr_bounce.o: ../../include/dsn_buf.h
|
||||||
|
qmgr_bounce.o: ../../include/iostuff.h
|
||||||
|
qmgr_bounce.o: ../../include/mail_proto.h
|
||||||
qmgr_bounce.o: ../../include/msg_stats.h
|
qmgr_bounce.o: ../../include/msg_stats.h
|
||||||
qmgr_bounce.o: ../../include/recipient_list.h
|
qmgr_bounce.o: ../../include/recipient_list.h
|
||||||
qmgr_bounce.o: ../../include/scan_dir.h
|
qmgr_bounce.o: ../../include/scan_dir.h
|
||||||
@@ -188,7 +192,9 @@ qmgr_entry.o: ../../include/attr.h
|
|||||||
qmgr_entry.o: ../../include/deliver_request.h
|
qmgr_entry.o: ../../include/deliver_request.h
|
||||||
qmgr_entry.o: ../../include/dsn.h
|
qmgr_entry.o: ../../include/dsn.h
|
||||||
qmgr_entry.o: ../../include/events.h
|
qmgr_entry.o: ../../include/events.h
|
||||||
|
qmgr_entry.o: ../../include/iostuff.h
|
||||||
qmgr_entry.o: ../../include/mail_params.h
|
qmgr_entry.o: ../../include/mail_params.h
|
||||||
|
qmgr_entry.o: ../../include/mail_proto.h
|
||||||
qmgr_entry.o: ../../include/msg.h
|
qmgr_entry.o: ../../include/msg.h
|
||||||
qmgr_entry.o: ../../include/msg_stats.h
|
qmgr_entry.o: ../../include/msg_stats.h
|
||||||
qmgr_entry.o: ../../include/mymalloc.h
|
qmgr_entry.o: ../../include/mymalloc.h
|
||||||
|
@@ -26,7 +26,8 @@
|
|||||||
/* qmgr_deliver() executes when a delivery process announces its
|
/* qmgr_deliver() executes when a delivery process announces its
|
||||||
/* availability for the named transport. It arranges for delivery
|
/* availability for the named transport. It arranges for delivery
|
||||||
/* of a suitable queue entry. The \fIfp\fR argument specifies a
|
/* of a suitable queue entry. The \fIfp\fR argument specifies a
|
||||||
/* stream that is connected to the delivery process. Upon completion
|
/* stream that is connected to a delivery process, or a null
|
||||||
|
/* pointer if the transport accepts no connection. Upon completion
|
||||||
/* of delivery (successful or not), the stream is closed, so that the
|
/* of delivery (successful or not), the stream is closed, so that the
|
||||||
/* delivery process is released.
|
/* delivery process is released.
|
||||||
/* DIAGNOSTICS
|
/* DIAGNOSTICS
|
||||||
|
@@ -673,6 +673,9 @@ static int qmgr_message_read(QMGR_MESSAGE *message)
|
|||||||
} else if (strcmp(name, MAIL_ATTR_ACT_HELO_NAME) == 0) {
|
} else if (strcmp(name, MAIL_ATTR_ACT_HELO_NAME) == 0) {
|
||||||
if (have_log_client_attr == 0 && message->client_helo == 0)
|
if (have_log_client_attr == 0 && message->client_helo == 0)
|
||||||
message->client_helo = mystrdup(value);
|
message->client_helo = mystrdup(value);
|
||||||
|
} else if (strcmp(name, MAIL_ATTR_ACT_CLIENT_PORT) == 0) {
|
||||||
|
if (have_log_client_attr == 0 && message->client_port == 0)
|
||||||
|
message->client_port = mystrdup(value);
|
||||||
}
|
}
|
||||||
/* Original client attributes. */
|
/* Original client attributes. */
|
||||||
else if (strcmp(name, MAIL_ATTR_LOG_CLIENT_NAME) == 0) {
|
else if (strcmp(name, MAIL_ATTR_LOG_CLIENT_NAME) == 0) {
|
||||||
|
@@ -342,7 +342,8 @@ void qmgr_transport_alloc(QMGR_TRANSPORT *transport, QMGR_TRANSPORT_ALLOC_NOT
|
|||||||
transport->pending += 1;
|
transport->pending += 1;
|
||||||
if ((alloc->stream = mail_connect(MAIL_CLASS_PRIVATE, transport->name,
|
if ((alloc->stream = mail_connect(MAIL_CLASS_PRIVATE, transport->name,
|
||||||
NON_BLOCKING)) == 0) {
|
NON_BLOCKING)) == 0) {
|
||||||
msg_warn("connect to transport %s: %m", transport->name);
|
msg_warn("connect to transport %s/%s: %m",
|
||||||
|
MAIL_CLASS_PRIVATE, transport->name);
|
||||||
event_request_timer(qmgr_transport_event, (char *) alloc, 0);
|
event_request_timer(qmgr_transport_event, (char *) alloc, 0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -390,7 +391,7 @@ QMGR_TRANSPORT *qmgr_transport_create(const char *name)
|
|||||||
get_mail_conf_int2(name, _INIT_DEST_CON,
|
get_mail_conf_int2(name, _INIT_DEST_CON,
|
||||||
var_init_dest_concurrency, 1, 0);
|
var_init_dest_concurrency, 1, 0);
|
||||||
transport->rate_delay = get_mail_conf_time2(name, _DEST_RATE_DELAY,
|
transport->rate_delay = get_mail_conf_time2(name, _DEST_RATE_DELAY,
|
||||||
var_dest_rate_delay,
|
var_dest_rate_delay,
|
||||||
's', 0, 0);
|
's', 0, 0);
|
||||||
|
|
||||||
if (transport->rate_delay > 0)
|
if (transport->rate_delay > 0)
|
||||||
|
@@ -317,24 +317,6 @@ static void qmqpd_copy_sender(QMQPD_STATE *state)
|
|||||||
static void qmqpd_write_attributes(QMQPD_STATE *state)
|
static void qmqpd_write_attributes(QMQPD_STATE *state)
|
||||||
{
|
{
|
||||||
|
|
||||||
/*
|
|
||||||
* Logging attributes, also used for XFORWARD.
|
|
||||||
*/
|
|
||||||
if (IS_AVAIL_CLIENT_NAME(state->name))
|
|
||||||
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
|
||||||
MAIL_ATTR_LOG_CLIENT_NAME, state->name);
|
|
||||||
if (IS_AVAIL_CLIENT_ADDR(state->addr))
|
|
||||||
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
|
||||||
MAIL_ATTR_LOG_CLIENT_ADDR, state->rfc_addr);
|
|
||||||
if (IS_AVAIL_CLIENT_PORT(state->port))
|
|
||||||
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
|
||||||
MAIL_ATTR_LOG_CLIENT_PORT, state->port);
|
|
||||||
if (IS_AVAIL_CLIENT_NAMADDR(state->namaddr))
|
|
||||||
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
|
||||||
MAIL_ATTR_LOG_ORIGIN, state->namaddr);
|
|
||||||
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
|
||||||
MAIL_ATTR_LOG_PROTO_NAME, state->protocol);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Provenance attributes for Milter policy etc.
|
* Provenance attributes for Milter policy etc.
|
||||||
*/
|
*/
|
||||||
|
@@ -64,13 +64,6 @@ typedef struct {
|
|||||||
#define CLIENT_PORT_UNKNOWN CLIENT_ATTR_UNKNOWN
|
#define CLIENT_PORT_UNKNOWN CLIENT_ATTR_UNKNOWN
|
||||||
#define CLIENT_NAMADDR_UNKNOWN CLIENT_ATTR_UNKNOWN
|
#define CLIENT_NAMADDR_UNKNOWN CLIENT_ATTR_UNKNOWN
|
||||||
|
|
||||||
#define IS_AVAIL_CLIENT_ATTR(v) ((v) && strcmp((v), CLIENT_ATTR_UNKNOWN))
|
|
||||||
|
|
||||||
#define IS_AVAIL_CLIENT_NAME(v) IS_AVAIL_CLIENT_ATTR(v)
|
|
||||||
#define IS_AVAIL_CLIENT_ADDR(v) IS_AVAIL_CLIENT_ATTR(v)
|
|
||||||
#define IS_AVAIL_CLIENT_PORT(v) IS_AVAIL_CLIENT_ATTR(v)
|
|
||||||
#define IS_AVAIL_CLIENT_NAMADDR(v) IS_AVAIL_CLIENT_ATTR(v)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* QMQP protocol status codes.
|
* QMQP protocol status codes.
|
||||||
*/
|
*/
|
||||||
|
@@ -100,8 +100,10 @@ smtp.o: ../../include/flush_clnt.h
|
|||||||
smtp.o: ../../include/header_body_checks.h
|
smtp.o: ../../include/header_body_checks.h
|
||||||
smtp.o: ../../include/header_opts.h
|
smtp.o: ../../include/header_opts.h
|
||||||
smtp.o: ../../include/htable.h
|
smtp.o: ../../include/htable.h
|
||||||
|
smtp.o: ../../include/iostuff.h
|
||||||
smtp.o: ../../include/mail_conf.h
|
smtp.o: ../../include/mail_conf.h
|
||||||
smtp.o: ../../include/mail_params.h
|
smtp.o: ../../include/mail_params.h
|
||||||
|
smtp.o: ../../include/mail_proto.h
|
||||||
smtp.o: ../../include/mail_server.h
|
smtp.o: ../../include/mail_server.h
|
||||||
smtp.o: ../../include/mail_version.h
|
smtp.o: ../../include/mail_version.h
|
||||||
smtp.o: ../../include/maps.h
|
smtp.o: ../../include/maps.h
|
||||||
@@ -141,7 +143,9 @@ smtp_addr.o: ../../include/header_opts.h
|
|||||||
smtp_addr.o: ../../include/htable.h
|
smtp_addr.o: ../../include/htable.h
|
||||||
smtp_addr.o: ../../include/inet_addr_list.h
|
smtp_addr.o: ../../include/inet_addr_list.h
|
||||||
smtp_addr.o: ../../include/inet_proto.h
|
smtp_addr.o: ../../include/inet_proto.h
|
||||||
|
smtp_addr.o: ../../include/iostuff.h
|
||||||
smtp_addr.o: ../../include/mail_params.h
|
smtp_addr.o: ../../include/mail_params.h
|
||||||
|
smtp_addr.o: ../../include/mail_proto.h
|
||||||
smtp_addr.o: ../../include/maps.h
|
smtp_addr.o: ../../include/maps.h
|
||||||
smtp_addr.o: ../../include/match_list.h
|
smtp_addr.o: ../../include/match_list.h
|
||||||
smtp_addr.o: ../../include/match_ops.h
|
smtp_addr.o: ../../include/match_ops.h
|
||||||
@@ -151,6 +155,7 @@ smtp_addr.o: ../../include/msg_stats.h
|
|||||||
smtp_addr.o: ../../include/myaddrinfo.h
|
smtp_addr.o: ../../include/myaddrinfo.h
|
||||||
smtp_addr.o: ../../include/mymalloc.h
|
smtp_addr.o: ../../include/mymalloc.h
|
||||||
smtp_addr.o: ../../include/name_code.h
|
smtp_addr.o: ../../include/name_code.h
|
||||||
|
smtp_addr.o: ../../include/name_mask.h
|
||||||
smtp_addr.o: ../../include/own_inet_addr.h
|
smtp_addr.o: ../../include/own_inet_addr.h
|
||||||
smtp_addr.o: ../../include/recipient_list.h
|
smtp_addr.o: ../../include/recipient_list.h
|
||||||
smtp_addr.o: ../../include/resolve_clnt.h
|
smtp_addr.o: ../../include/resolve_clnt.h
|
||||||
@@ -179,10 +184,12 @@ smtp_chat.o: ../../include/header_body_checks.h
|
|||||||
smtp_chat.o: ../../include/header_opts.h
|
smtp_chat.o: ../../include/header_opts.h
|
||||||
smtp_chat.o: ../../include/htable.h
|
smtp_chat.o: ../../include/htable.h
|
||||||
smtp_chat.o: ../../include/int_filt.h
|
smtp_chat.o: ../../include/int_filt.h
|
||||||
|
smtp_chat.o: ../../include/iostuff.h
|
||||||
smtp_chat.o: ../../include/line_wrap.h
|
smtp_chat.o: ../../include/line_wrap.h
|
||||||
smtp_chat.o: ../../include/mail_addr.h
|
smtp_chat.o: ../../include/mail_addr.h
|
||||||
smtp_chat.o: ../../include/mail_error.h
|
smtp_chat.o: ../../include/mail_error.h
|
||||||
smtp_chat.o: ../../include/mail_params.h
|
smtp_chat.o: ../../include/mail_params.h
|
||||||
|
smtp_chat.o: ../../include/mail_proto.h
|
||||||
smtp_chat.o: ../../include/maps.h
|
smtp_chat.o: ../../include/maps.h
|
||||||
smtp_chat.o: ../../include/match_list.h
|
smtp_chat.o: ../../include/match_list.h
|
||||||
smtp_chat.o: ../../include/match_ops.h
|
smtp_chat.o: ../../include/match_ops.h
|
||||||
@@ -263,7 +270,9 @@ smtp_map11.o: ../../include/dsn_buf.h
|
|||||||
smtp_map11.o: ../../include/header_body_checks.h
|
smtp_map11.o: ../../include/header_body_checks.h
|
||||||
smtp_map11.o: ../../include/header_opts.h
|
smtp_map11.o: ../../include/header_opts.h
|
||||||
smtp_map11.o: ../../include/htable.h
|
smtp_map11.o: ../../include/htable.h
|
||||||
|
smtp_map11.o: ../../include/iostuff.h
|
||||||
smtp_map11.o: ../../include/mail_addr_map.h
|
smtp_map11.o: ../../include/mail_addr_map.h
|
||||||
|
smtp_map11.o: ../../include/mail_proto.h
|
||||||
smtp_map11.o: ../../include/maps.h
|
smtp_map11.o: ../../include/maps.h
|
||||||
smtp_map11.o: ../../include/match_list.h
|
smtp_map11.o: ../../include/match_list.h
|
||||||
smtp_map11.o: ../../include/match_ops.h
|
smtp_map11.o: ../../include/match_ops.h
|
||||||
@@ -271,6 +280,7 @@ smtp_map11.o: ../../include/mime_state.h
|
|||||||
smtp_map11.o: ../../include/msg.h
|
smtp_map11.o: ../../include/msg.h
|
||||||
smtp_map11.o: ../../include/msg_stats.h
|
smtp_map11.o: ../../include/msg_stats.h
|
||||||
smtp_map11.o: ../../include/name_code.h
|
smtp_map11.o: ../../include/name_code.h
|
||||||
|
smtp_map11.o: ../../include/name_mask.h
|
||||||
smtp_map11.o: ../../include/quote_822_local.h
|
smtp_map11.o: ../../include/quote_822_local.h
|
||||||
smtp_map11.o: ../../include/quote_flags.h
|
smtp_map11.o: ../../include/quote_flags.h
|
||||||
smtp_map11.o: ../../include/recipient_list.h
|
smtp_map11.o: ../../include/recipient_list.h
|
||||||
@@ -353,6 +363,8 @@ smtp_rcpt.o: ../../include/dsn_mask.h
|
|||||||
smtp_rcpt.o: ../../include/header_body_checks.h
|
smtp_rcpt.o: ../../include/header_body_checks.h
|
||||||
smtp_rcpt.o: ../../include/header_opts.h
|
smtp_rcpt.o: ../../include/header_opts.h
|
||||||
smtp_rcpt.o: ../../include/htable.h
|
smtp_rcpt.o: ../../include/htable.h
|
||||||
|
smtp_rcpt.o: ../../include/iostuff.h
|
||||||
|
smtp_rcpt.o: ../../include/mail_proto.h
|
||||||
smtp_rcpt.o: ../../include/maps.h
|
smtp_rcpt.o: ../../include/maps.h
|
||||||
smtp_rcpt.o: ../../include/match_list.h
|
smtp_rcpt.o: ../../include/match_list.h
|
||||||
smtp_rcpt.o: ../../include/match_ops.h
|
smtp_rcpt.o: ../../include/match_ops.h
|
||||||
@@ -361,6 +373,7 @@ smtp_rcpt.o: ../../include/msg.h
|
|||||||
smtp_rcpt.o: ../../include/msg_stats.h
|
smtp_rcpt.o: ../../include/msg_stats.h
|
||||||
smtp_rcpt.o: ../../include/mymalloc.h
|
smtp_rcpt.o: ../../include/mymalloc.h
|
||||||
smtp_rcpt.o: ../../include/name_code.h
|
smtp_rcpt.o: ../../include/name_code.h
|
||||||
|
smtp_rcpt.o: ../../include/name_mask.h
|
||||||
smtp_rcpt.o: ../../include/recipient_list.h
|
smtp_rcpt.o: ../../include/recipient_list.h
|
||||||
smtp_rcpt.o: ../../include/resolve_clnt.h
|
smtp_rcpt.o: ../../include/resolve_clnt.h
|
||||||
smtp_rcpt.o: ../../include/scache.h
|
smtp_rcpt.o: ../../include/scache.h
|
||||||
@@ -384,7 +397,9 @@ smtp_reuse.o: ../../include/dsn_buf.h
|
|||||||
smtp_reuse.o: ../../include/header_body_checks.h
|
smtp_reuse.o: ../../include/header_body_checks.h
|
||||||
smtp_reuse.o: ../../include/header_opts.h
|
smtp_reuse.o: ../../include/header_opts.h
|
||||||
smtp_reuse.o: ../../include/htable.h
|
smtp_reuse.o: ../../include/htable.h
|
||||||
|
smtp_reuse.o: ../../include/iostuff.h
|
||||||
smtp_reuse.o: ../../include/mail_params.h
|
smtp_reuse.o: ../../include/mail_params.h
|
||||||
|
smtp_reuse.o: ../../include/mail_proto.h
|
||||||
smtp_reuse.o: ../../include/maps.h
|
smtp_reuse.o: ../../include/maps.h
|
||||||
smtp_reuse.o: ../../include/match_list.h
|
smtp_reuse.o: ../../include/match_list.h
|
||||||
smtp_reuse.o: ../../include/match_ops.h
|
smtp_reuse.o: ../../include/match_ops.h
|
||||||
@@ -393,6 +408,7 @@ smtp_reuse.o: ../../include/msg.h
|
|||||||
smtp_reuse.o: ../../include/msg_stats.h
|
smtp_reuse.o: ../../include/msg_stats.h
|
||||||
smtp_reuse.o: ../../include/mymalloc.h
|
smtp_reuse.o: ../../include/mymalloc.h
|
||||||
smtp_reuse.o: ../../include/name_code.h
|
smtp_reuse.o: ../../include/name_code.h
|
||||||
|
smtp_reuse.o: ../../include/name_mask.h
|
||||||
smtp_reuse.o: ../../include/recipient_list.h
|
smtp_reuse.o: ../../include/recipient_list.h
|
||||||
smtp_reuse.o: ../../include/resolve_clnt.h
|
smtp_reuse.o: ../../include/resolve_clnt.h
|
||||||
smtp_reuse.o: ../../include/scache.h
|
smtp_reuse.o: ../../include/scache.h
|
||||||
@@ -419,6 +435,8 @@ smtp_sasl_auth_cache.o: ../../include/dsn_util.h
|
|||||||
smtp_sasl_auth_cache.o: ../../include/header_body_checks.h
|
smtp_sasl_auth_cache.o: ../../include/header_body_checks.h
|
||||||
smtp_sasl_auth_cache.o: ../../include/header_opts.h
|
smtp_sasl_auth_cache.o: ../../include/header_opts.h
|
||||||
smtp_sasl_auth_cache.o: ../../include/htable.h
|
smtp_sasl_auth_cache.o: ../../include/htable.h
|
||||||
|
smtp_sasl_auth_cache.o: ../../include/iostuff.h
|
||||||
|
smtp_sasl_auth_cache.o: ../../include/mail_proto.h
|
||||||
smtp_sasl_auth_cache.o: ../../include/maps.h
|
smtp_sasl_auth_cache.o: ../../include/maps.h
|
||||||
smtp_sasl_auth_cache.o: ../../include/match_list.h
|
smtp_sasl_auth_cache.o: ../../include/match_list.h
|
||||||
smtp_sasl_auth_cache.o: ../../include/match_ops.h
|
smtp_sasl_auth_cache.o: ../../include/match_ops.h
|
||||||
@@ -427,6 +445,7 @@ smtp_sasl_auth_cache.o: ../../include/msg.h
|
|||||||
smtp_sasl_auth_cache.o: ../../include/msg_stats.h
|
smtp_sasl_auth_cache.o: ../../include/msg_stats.h
|
||||||
smtp_sasl_auth_cache.o: ../../include/mymalloc.h
|
smtp_sasl_auth_cache.o: ../../include/mymalloc.h
|
||||||
smtp_sasl_auth_cache.o: ../../include/name_code.h
|
smtp_sasl_auth_cache.o: ../../include/name_code.h
|
||||||
|
smtp_sasl_auth_cache.o: ../../include/name_mask.h
|
||||||
smtp_sasl_auth_cache.o: ../../include/recipient_list.h
|
smtp_sasl_auth_cache.o: ../../include/recipient_list.h
|
||||||
smtp_sasl_auth_cache.o: ../../include/resolve_clnt.h
|
smtp_sasl_auth_cache.o: ../../include/resolve_clnt.h
|
||||||
smtp_sasl_auth_cache.o: ../../include/scache.h
|
smtp_sasl_auth_cache.o: ../../include/scache.h
|
||||||
@@ -450,8 +469,10 @@ smtp_sasl_glue.o: ../../include/dsn_buf.h
|
|||||||
smtp_sasl_glue.o: ../../include/header_body_checks.h
|
smtp_sasl_glue.o: ../../include/header_body_checks.h
|
||||||
smtp_sasl_glue.o: ../../include/header_opts.h
|
smtp_sasl_glue.o: ../../include/header_opts.h
|
||||||
smtp_sasl_glue.o: ../../include/htable.h
|
smtp_sasl_glue.o: ../../include/htable.h
|
||||||
|
smtp_sasl_glue.o: ../../include/iostuff.h
|
||||||
smtp_sasl_glue.o: ../../include/mail_addr_find.h
|
smtp_sasl_glue.o: ../../include/mail_addr_find.h
|
||||||
smtp_sasl_glue.o: ../../include/mail_params.h
|
smtp_sasl_glue.o: ../../include/mail_params.h
|
||||||
|
smtp_sasl_glue.o: ../../include/mail_proto.h
|
||||||
smtp_sasl_glue.o: ../../include/maps.h
|
smtp_sasl_glue.o: ../../include/maps.h
|
||||||
smtp_sasl_glue.o: ../../include/match_list.h
|
smtp_sasl_glue.o: ../../include/match_list.h
|
||||||
smtp_sasl_glue.o: ../../include/match_ops.h
|
smtp_sasl_glue.o: ../../include/match_ops.h
|
||||||
@@ -460,6 +481,7 @@ smtp_sasl_glue.o: ../../include/msg.h
|
|||||||
smtp_sasl_glue.o: ../../include/msg_stats.h
|
smtp_sasl_glue.o: ../../include/msg_stats.h
|
||||||
smtp_sasl_glue.o: ../../include/mymalloc.h
|
smtp_sasl_glue.o: ../../include/mymalloc.h
|
||||||
smtp_sasl_glue.o: ../../include/name_code.h
|
smtp_sasl_glue.o: ../../include/name_code.h
|
||||||
|
smtp_sasl_glue.o: ../../include/name_mask.h
|
||||||
smtp_sasl_glue.o: ../../include/recipient_list.h
|
smtp_sasl_glue.o: ../../include/recipient_list.h
|
||||||
smtp_sasl_glue.o: ../../include/resolve_clnt.h
|
smtp_sasl_glue.o: ../../include/resolve_clnt.h
|
||||||
smtp_sasl_glue.o: ../../include/scache.h
|
smtp_sasl_glue.o: ../../include/scache.h
|
||||||
@@ -486,7 +508,9 @@ smtp_sasl_proto.o: ../../include/dsn_buf.h
|
|||||||
smtp_sasl_proto.o: ../../include/header_body_checks.h
|
smtp_sasl_proto.o: ../../include/header_body_checks.h
|
||||||
smtp_sasl_proto.o: ../../include/header_opts.h
|
smtp_sasl_proto.o: ../../include/header_opts.h
|
||||||
smtp_sasl_proto.o: ../../include/htable.h
|
smtp_sasl_proto.o: ../../include/htable.h
|
||||||
|
smtp_sasl_proto.o: ../../include/iostuff.h
|
||||||
smtp_sasl_proto.o: ../../include/mail_params.h
|
smtp_sasl_proto.o: ../../include/mail_params.h
|
||||||
|
smtp_sasl_proto.o: ../../include/mail_proto.h
|
||||||
smtp_sasl_proto.o: ../../include/maps.h
|
smtp_sasl_proto.o: ../../include/maps.h
|
||||||
smtp_sasl_proto.o: ../../include/match_list.h
|
smtp_sasl_proto.o: ../../include/match_list.h
|
||||||
smtp_sasl_proto.o: ../../include/match_ops.h
|
smtp_sasl_proto.o: ../../include/match_ops.h
|
||||||
@@ -495,6 +519,7 @@ smtp_sasl_proto.o: ../../include/msg.h
|
|||||||
smtp_sasl_proto.o: ../../include/msg_stats.h
|
smtp_sasl_proto.o: ../../include/msg_stats.h
|
||||||
smtp_sasl_proto.o: ../../include/mymalloc.h
|
smtp_sasl_proto.o: ../../include/mymalloc.h
|
||||||
smtp_sasl_proto.o: ../../include/name_code.h
|
smtp_sasl_proto.o: ../../include/name_code.h
|
||||||
|
smtp_sasl_proto.o: ../../include/name_mask.h
|
||||||
smtp_sasl_proto.o: ../../include/recipient_list.h
|
smtp_sasl_proto.o: ../../include/recipient_list.h
|
||||||
smtp_sasl_proto.o: ../../include/resolve_clnt.h
|
smtp_sasl_proto.o: ../../include/resolve_clnt.h
|
||||||
smtp_sasl_proto.o: ../../include/scache.h
|
smtp_sasl_proto.o: ../../include/scache.h
|
||||||
@@ -519,7 +544,9 @@ smtp_session.o: ../../include/dsn_buf.h
|
|||||||
smtp_session.o: ../../include/header_body_checks.h
|
smtp_session.o: ../../include/header_body_checks.h
|
||||||
smtp_session.o: ../../include/header_opts.h
|
smtp_session.o: ../../include/header_opts.h
|
||||||
smtp_session.o: ../../include/htable.h
|
smtp_session.o: ../../include/htable.h
|
||||||
|
smtp_session.o: ../../include/iostuff.h
|
||||||
smtp_session.o: ../../include/mail_params.h
|
smtp_session.o: ../../include/mail_params.h
|
||||||
|
smtp_session.o: ../../include/mail_proto.h
|
||||||
smtp_session.o: ../../include/maps.h
|
smtp_session.o: ../../include/maps.h
|
||||||
smtp_session.o: ../../include/match_list.h
|
smtp_session.o: ../../include/match_list.h
|
||||||
smtp_session.o: ../../include/match_ops.h
|
smtp_session.o: ../../include/match_ops.h
|
||||||
@@ -528,6 +555,7 @@ smtp_session.o: ../../include/msg.h
|
|||||||
smtp_session.o: ../../include/msg_stats.h
|
smtp_session.o: ../../include/msg_stats.h
|
||||||
smtp_session.o: ../../include/mymalloc.h
|
smtp_session.o: ../../include/mymalloc.h
|
||||||
smtp_session.o: ../../include/name_code.h
|
smtp_session.o: ../../include/name_code.h
|
||||||
|
smtp_session.o: ../../include/name_mask.h
|
||||||
smtp_session.o: ../../include/recipient_list.h
|
smtp_session.o: ../../include/recipient_list.h
|
||||||
smtp_session.o: ../../include/resolve_clnt.h
|
smtp_session.o: ../../include/resolve_clnt.h
|
||||||
smtp_session.o: ../../include/scache.h
|
smtp_session.o: ../../include/scache.h
|
||||||
@@ -552,7 +580,9 @@ smtp_state.o: ../../include/dsn_buf.h
|
|||||||
smtp_state.o: ../../include/header_body_checks.h
|
smtp_state.o: ../../include/header_body_checks.h
|
||||||
smtp_state.o: ../../include/header_opts.h
|
smtp_state.o: ../../include/header_opts.h
|
||||||
smtp_state.o: ../../include/htable.h
|
smtp_state.o: ../../include/htable.h
|
||||||
|
smtp_state.o: ../../include/iostuff.h
|
||||||
smtp_state.o: ../../include/mail_params.h
|
smtp_state.o: ../../include/mail_params.h
|
||||||
|
smtp_state.o: ../../include/mail_proto.h
|
||||||
smtp_state.o: ../../include/maps.h
|
smtp_state.o: ../../include/maps.h
|
||||||
smtp_state.o: ../../include/match_list.h
|
smtp_state.o: ../../include/match_list.h
|
||||||
smtp_state.o: ../../include/match_ops.h
|
smtp_state.o: ../../include/match_ops.h
|
||||||
@@ -561,6 +591,7 @@ smtp_state.o: ../../include/msg.h
|
|||||||
smtp_state.o: ../../include/msg_stats.h
|
smtp_state.o: ../../include/msg_stats.h
|
||||||
smtp_state.o: ../../include/mymalloc.h
|
smtp_state.o: ../../include/mymalloc.h
|
||||||
smtp_state.o: ../../include/name_code.h
|
smtp_state.o: ../../include/name_code.h
|
||||||
|
smtp_state.o: ../../include/name_mask.h
|
||||||
smtp_state.o: ../../include/recipient_list.h
|
smtp_state.o: ../../include/recipient_list.h
|
||||||
smtp_state.o: ../../include/resolve_clnt.h
|
smtp_state.o: ../../include/resolve_clnt.h
|
||||||
smtp_state.o: ../../include/scache.h
|
smtp_state.o: ../../include/scache.h
|
||||||
@@ -586,7 +617,9 @@ smtp_trouble.o: ../../include/dsn_buf.h
|
|||||||
smtp_trouble.o: ../../include/header_body_checks.h
|
smtp_trouble.o: ../../include/header_body_checks.h
|
||||||
smtp_trouble.o: ../../include/header_opts.h
|
smtp_trouble.o: ../../include/header_opts.h
|
||||||
smtp_trouble.o: ../../include/htable.h
|
smtp_trouble.o: ../../include/htable.h
|
||||||
|
smtp_trouble.o: ../../include/iostuff.h
|
||||||
smtp_trouble.o: ../../include/mail_error.h
|
smtp_trouble.o: ../../include/mail_error.h
|
||||||
|
smtp_trouble.o: ../../include/mail_proto.h
|
||||||
smtp_trouble.o: ../../include/maps.h
|
smtp_trouble.o: ../../include/maps.h
|
||||||
smtp_trouble.o: ../../include/match_list.h
|
smtp_trouble.o: ../../include/match_list.h
|
||||||
smtp_trouble.o: ../../include/match_ops.h
|
smtp_trouble.o: ../../include/match_ops.h
|
||||||
@@ -619,6 +652,8 @@ smtp_unalias.o: ../../include/dsn_buf.h
|
|||||||
smtp_unalias.o: ../../include/header_body_checks.h
|
smtp_unalias.o: ../../include/header_body_checks.h
|
||||||
smtp_unalias.o: ../../include/header_opts.h
|
smtp_unalias.o: ../../include/header_opts.h
|
||||||
smtp_unalias.o: ../../include/htable.h
|
smtp_unalias.o: ../../include/htable.h
|
||||||
|
smtp_unalias.o: ../../include/iostuff.h
|
||||||
|
smtp_unalias.o: ../../include/mail_proto.h
|
||||||
smtp_unalias.o: ../../include/maps.h
|
smtp_unalias.o: ../../include/maps.h
|
||||||
smtp_unalias.o: ../../include/match_list.h
|
smtp_unalias.o: ../../include/match_list.h
|
||||||
smtp_unalias.o: ../../include/match_ops.h
|
smtp_unalias.o: ../../include/match_ops.h
|
||||||
@@ -627,6 +662,7 @@ smtp_unalias.o: ../../include/msg.h
|
|||||||
smtp_unalias.o: ../../include/msg_stats.h
|
smtp_unalias.o: ../../include/msg_stats.h
|
||||||
smtp_unalias.o: ../../include/myaddrinfo.h
|
smtp_unalias.o: ../../include/myaddrinfo.h
|
||||||
smtp_unalias.o: ../../include/name_code.h
|
smtp_unalias.o: ../../include/name_code.h
|
||||||
|
smtp_unalias.o: ../../include/name_mask.h
|
||||||
smtp_unalias.o: ../../include/recipient_list.h
|
smtp_unalias.o: ../../include/recipient_list.h
|
||||||
smtp_unalias.o: ../../include/resolve_clnt.h
|
smtp_unalias.o: ../../include/resolve_clnt.h
|
||||||
smtp_unalias.o: ../../include/scache.h
|
smtp_unalias.o: ../../include/scache.h
|
||||||
|
@@ -1224,19 +1224,19 @@ static int smtp_loop(SMTP_STATE *state, NOCLOBBER int send_state,
|
|||||||
if (session->features & SMTP_FEATURE_XFORWARD_NAME) {
|
if (session->features & SMTP_FEATURE_XFORWARD_NAME) {
|
||||||
vstring_strcat(next_command, " " XFORWARD_NAME "=");
|
vstring_strcat(next_command, " " XFORWARD_NAME "=");
|
||||||
xtext_quote_append(next_command,
|
xtext_quote_append(next_command,
|
||||||
DEL_REQ_ATTR_AVAIL(request->client_name) ?
|
MAIL_ATTR_IS_KNOWN(request->client_name) ?
|
||||||
request->client_name : XFORWARD_UNAVAILABLE, "");
|
request->client_name : XFORWARD_UNAVAILABLE, "");
|
||||||
}
|
}
|
||||||
if (session->features & SMTP_FEATURE_XFORWARD_ADDR) {
|
if (session->features & SMTP_FEATURE_XFORWARD_ADDR) {
|
||||||
vstring_strcat(next_command, " " XFORWARD_ADDR "=");
|
vstring_strcat(next_command, " " XFORWARD_ADDR "=");
|
||||||
xtext_quote_append(next_command,
|
xtext_quote_append(next_command,
|
||||||
DEL_REQ_ATTR_AVAIL(request->client_addr) ?
|
MAIL_ATTR_IS_KNOWN(request->client_addr) ?
|
||||||
request->client_addr : XFORWARD_UNAVAILABLE, "");
|
request->client_addr : XFORWARD_UNAVAILABLE, "");
|
||||||
}
|
}
|
||||||
if (session->features & SMTP_FEATURE_XFORWARD_PORT) {
|
if (session->features & SMTP_FEATURE_XFORWARD_PORT) {
|
||||||
vstring_strcat(next_command, " " XFORWARD_PORT "=");
|
vstring_strcat(next_command, " " XFORWARD_PORT "=");
|
||||||
xtext_quote_append(next_command,
|
xtext_quote_append(next_command,
|
||||||
DEL_REQ_ATTR_AVAIL(request->client_port) ?
|
MAIL_ATTR_IS_KNOWN(request->client_port) ?
|
||||||
request->client_port : XFORWARD_UNAVAILABLE, "");
|
request->client_port : XFORWARD_UNAVAILABLE, "");
|
||||||
}
|
}
|
||||||
if (session->send_proto_helo)
|
if (session->send_proto_helo)
|
||||||
@@ -1250,19 +1250,19 @@ static int smtp_loop(SMTP_STATE *state, NOCLOBBER int send_state,
|
|||||||
if (session->features & SMTP_FEATURE_XFORWARD_PROTO) {
|
if (session->features & SMTP_FEATURE_XFORWARD_PROTO) {
|
||||||
vstring_strcat(next_command, " " XFORWARD_PROTO "=");
|
vstring_strcat(next_command, " " XFORWARD_PROTO "=");
|
||||||
xtext_quote_append(next_command,
|
xtext_quote_append(next_command,
|
||||||
DEL_REQ_ATTR_AVAIL(request->client_proto) ?
|
MAIL_ATTR_IS_KNOWN(request->client_proto) ?
|
||||||
request->client_proto : XFORWARD_UNAVAILABLE, "");
|
request->client_proto : XFORWARD_UNAVAILABLE, "");
|
||||||
}
|
}
|
||||||
if (session->features & SMTP_FEATURE_XFORWARD_HELO) {
|
if (session->features & SMTP_FEATURE_XFORWARD_HELO) {
|
||||||
vstring_strcat(next_command, " " XFORWARD_HELO "=");
|
vstring_strcat(next_command, " " XFORWARD_HELO "=");
|
||||||
xtext_quote_append(next_command,
|
xtext_quote_append(next_command,
|
||||||
DEL_REQ_ATTR_AVAIL(request->client_helo) ?
|
MAIL_ATTR_IS_EXIST(request->client_helo) ?
|
||||||
request->client_helo : XFORWARD_UNAVAILABLE, "");
|
request->client_helo : XFORWARD_UNAVAILABLE, "");
|
||||||
}
|
}
|
||||||
if (session->features & SMTP_FEATURE_XFORWARD_DOMAIN) {
|
if (session->features & SMTP_FEATURE_XFORWARD_DOMAIN) {
|
||||||
vstring_strcat(next_command, " " XFORWARD_DOMAIN "=");
|
vstring_strcat(next_command, " " XFORWARD_DOMAIN "=");
|
||||||
xtext_quote_append(next_command,
|
xtext_quote_append(next_command,
|
||||||
DEL_REQ_ATTR_AVAIL(request->rewrite_context) == 0 ?
|
MAIL_ATTR_IS_EXIST(request->rewrite_context) == 0 ?
|
||||||
XFORWARD_UNAVAILABLE :
|
XFORWARD_UNAVAILABLE :
|
||||||
strcmp(request->rewrite_context, MAIL_ATTR_RWR_LOCAL) ?
|
strcmp(request->rewrite_context, MAIL_ATTR_RWR_LOCAL) ?
|
||||||
XFORWARD_DOM_REMOTE : XFORWARD_DOM_LOCAL, "");
|
XFORWARD_DOM_REMOTE : XFORWARD_DOM_LOCAL, "");
|
||||||
@@ -1931,21 +1931,17 @@ int smtp_xfer(SMTP_STATE *state)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Use the XFORWARD command to forward client attributes only when a
|
* Use the XFORWARD command to send local/remote submission information.
|
||||||
* minimal amount of information is available.
|
|
||||||
*/
|
*/
|
||||||
send_name_addr =
|
send_name_addr =
|
||||||
var_smtp_send_xforward
|
var_smtp_send_xforward
|
||||||
&& (((session->features & SMTP_FEATURE_XFORWARD_NAME)
|
&& (session->features & (SMTP_FEATURE_XFORWARD_NAME
|
||||||
&& DEL_REQ_ATTR_AVAIL(request->client_name))
|
| SMTP_FEATURE_XFORWARD_ADDR));
|
||||||
|| ((session->features & SMTP_FEATURE_XFORWARD_ADDR)
|
|
||||||
&& DEL_REQ_ATTR_AVAIL(request->client_addr)));
|
|
||||||
session->send_proto_helo =
|
session->send_proto_helo =
|
||||||
var_smtp_send_xforward
|
var_smtp_send_xforward
|
||||||
&& (((session->features & SMTP_FEATURE_XFORWARD_PROTO)
|
&& (session->features & (SMTP_FEATURE_XFORWARD_PROTO
|
||||||
&& DEL_REQ_ATTR_AVAIL(request->client_proto))
|
| SMTP_FEATURE_XFORWARD_HELO
|
||||||
|| ((session->features & SMTP_FEATURE_XFORWARD_HELO)
|
| SMTP_FEATURE_XFORWARD_DOMAIN));
|
||||||
&& DEL_REQ_ATTR_AVAIL(request->client_helo)));
|
|
||||||
if (send_name_addr)
|
if (send_name_addr)
|
||||||
recv_state = send_state = SMTP_STATE_XFORWARD_NAME_ADDR;
|
recv_state = send_state = SMTP_STATE_XFORWARD_NAME_ADDR;
|
||||||
else if (session->send_proto_helo)
|
else if (session->send_proto_helo)
|
||||||
|
@@ -1754,26 +1754,37 @@ static int mail_open_stream(SMTPD_STATE *state)
|
|||||||
if (SMTPD_STAND_ALONE(state) == 0) {
|
if (SMTPD_STAND_ALONE(state) == 0) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Attributes for logging, also used for XFORWARD.
|
* Forwarded client attributes.
|
||||||
|
*
|
||||||
|
* In the case of a forwarded remote submission, store original
|
||||||
|
* client attributes in our own internal representation: either
|
||||||
|
* actual values or "unknown"; don't bother with storing
|
||||||
|
* non-existent HELO attributes.
|
||||||
|
*
|
||||||
|
* In the case of a forwarded local submission, specify explicitly
|
||||||
|
* that the original client attributes are non-existent.
|
||||||
*/
|
*/
|
||||||
if (IS_AVAIL_CLIENT_NAME(FORWARD_NAME(state)))
|
if (state->xforward.flags & SMTPD_STATE_XFORWARD_CLIENT_MASK) {
|
||||||
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
if (MAIL_ATTR_IS_KNOWN(FORWARD_ADDR(state))) {
|
||||||
|
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
||||||
MAIL_ATTR_LOG_CLIENT_NAME, FORWARD_NAME(state));
|
MAIL_ATTR_LOG_CLIENT_NAME, FORWARD_NAME(state));
|
||||||
if (IS_AVAIL_CLIENT_ADDR(FORWARD_ADDR(state)))
|
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
||||||
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
|
||||||
MAIL_ATTR_LOG_CLIENT_ADDR, FORWARD_ADDR(state));
|
MAIL_ATTR_LOG_CLIENT_ADDR, FORWARD_ADDR(state));
|
||||||
if (IS_AVAIL_CLIENT_PORT(FORWARD_PORT(state)))
|
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
||||||
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
|
||||||
MAIL_ATTR_LOG_CLIENT_PORT, FORWARD_PORT(state));
|
MAIL_ATTR_LOG_CLIENT_PORT, FORWARD_PORT(state));
|
||||||
if (IS_AVAIL_CLIENT_NAMADDR(FORWARD_NAMADDR(state)))
|
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
||||||
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
MAIL_ATTR_LOG_ORIGIN, FORWARD_NAMADDR(state));
|
||||||
MAIL_ATTR_LOG_ORIGIN, FORWARD_NAMADDR(state));
|
if (FORWARD_HELO(state))
|
||||||
if (IS_AVAIL_CLIENT_HELO(FORWARD_HELO(state)))
|
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
||||||
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
MAIL_ATTR_LOG_HELO_NAME, FORWARD_HELO(state));
|
||||||
MAIL_ATTR_LOG_HELO_NAME, FORWARD_HELO(state));
|
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
||||||
if (IS_AVAIL_CLIENT_PROTO(FORWARD_PROTO(state)))
|
|
||||||
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
|
||||||
MAIL_ATTR_LOG_PROTO_NAME, FORWARD_PROTO(state));
|
MAIL_ATTR_LOG_PROTO_NAME, FORWARD_PROTO(state));
|
||||||
|
} else {
|
||||||
|
/* Local submission. */
|
||||||
|
rec_fprintf(state->cleanup, REC_TYPE_ATTR, "%s=%s",
|
||||||
|
MAIL_ATTR_LOG_CLIENT_ADDR, MAIL_ATTR_VAL_NONEXIST);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Attributes with actual client information. These are used by
|
* Attributes with actual client information. These are used by
|
||||||
|
@@ -292,13 +292,14 @@ extern void smtpd_peer_reset(SMTPD_STATE *state);
|
|||||||
*
|
*
|
||||||
* Note 1: inside the SMTP server, forwarded attributes must have the exact
|
* Note 1: inside the SMTP server, forwarded attributes must have the exact
|
||||||
* same representation as normal attributes: unknown string values are
|
* same representation as normal attributes: unknown string values are
|
||||||
* "unknown", except for HELO which defaults to null. This is better than
|
* "unknown", and non-existent HELO is null.
|
||||||
* having to change every piece of code that accesses a possibly forwarded
|
|
||||||
* attribute.
|
|
||||||
*
|
*
|
||||||
* Note 2: outside the SMTP server, the representation of unknown/known
|
* Note 2: the SMTP server representation of unknown/known attribute values is
|
||||||
* attribute values is different in queue files, in queue manager delivery
|
* also used in queue files and in delivery requests, while non-existent
|
||||||
* requests, and in over-the-network XFORWARD commands.
|
* information is represented in those contexts as empty strings. In queue
|
||||||
|
* files and delivery requests, forwarded local submissions are represented
|
||||||
|
* by forwarded client attributes with empty string values (actually one
|
||||||
|
* attribute is sufficient).
|
||||||
*
|
*
|
||||||
* Note 3: if forwarding client information, don't mix information from the
|
* Note 3: if forwarding client information, don't mix information from the
|
||||||
* current SMTP session with forwarded information from an up-stream
|
* current SMTP session with forwarded information from an up-stream
|
||||||
|
@@ -9,6 +9,9 @@
|
|||||||
/* void smtpd_xforward_init(state)
|
/* void smtpd_xforward_init(state)
|
||||||
/* SMTPD_STATE *state;
|
/* SMTPD_STATE *state;
|
||||||
/*
|
/*
|
||||||
|
/* void smtpd_xforward_preset(state)
|
||||||
|
/* SMTPD_STATE *state;
|
||||||
|
/*
|
||||||
/* void smtpd_xforward_reset(state)
|
/* void smtpd_xforward_reset(state)
|
||||||
/* SMTPD_STATE *state;
|
/* SMTPD_STATE *state;
|
||||||
/* DESCRIPTION
|
/* DESCRIPTION
|
||||||
|
@@ -1356,6 +1356,7 @@ safe_getenv.o: sys_defs.h
|
|||||||
safe_open.o: msg.h
|
safe_open.o: msg.h
|
||||||
safe_open.o: safe_open.c
|
safe_open.o: safe_open.c
|
||||||
safe_open.o: safe_open.h
|
safe_open.o: safe_open.h
|
||||||
|
safe_open.o: stringops.h
|
||||||
safe_open.o: sys_defs.h
|
safe_open.o: sys_defs.h
|
||||||
safe_open.o: vbuf.h
|
safe_open.o: vbuf.h
|
||||||
safe_open.o: vstream.h
|
safe_open.o: vstream.h
|
||||||
|
@@ -46,6 +46,7 @@
|
|||||||
#include <sys_defs.h>
|
#include <sys_defs.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
/* Utility library. */
|
/* Utility library. */
|
||||||
|
|
||||||
@@ -58,21 +59,31 @@ ssize_t write_buf(int fd, const char *buf, ssize_t len, int timeout)
|
|||||||
{
|
{
|
||||||
const char *start = buf;
|
const char *start = buf;
|
||||||
ssize_t count;
|
ssize_t count;
|
||||||
|
time_t expire;
|
||||||
|
int time_left = timeout;
|
||||||
|
|
||||||
|
if (time_left > 0)
|
||||||
|
expire = time((time_t *) 0) + time_left;
|
||||||
|
|
||||||
while (len > 0) {
|
while (len > 0) {
|
||||||
if (timeout > 0 && write_wait(fd, timeout) < 0)
|
if (time_left > 0 && write_wait(fd, time_left) < 0)
|
||||||
return (-1);
|
return (-1);
|
||||||
if ((count = write(fd, buf, len)) < 0) {
|
if ((count = write(fd, buf, len)) < 0) {
|
||||||
if (errno == EAGAIN && timeout > 0)
|
if ((errno == EAGAIN && time_left > 0) || errno == EINTR)
|
||||||
continue;
|
/* void */ ;
|
||||||
if (errno == EINTR)
|
else
|
||||||
continue;
|
return (-1);
|
||||||
return (-1);
|
} else {
|
||||||
|
buf += count;
|
||||||
|
len -= count;
|
||||||
|
}
|
||||||
|
if (len > 0 && time_left > 0) {
|
||||||
|
time_left = expire - time((time_t *) 0);
|
||||||
|
if (time_left <= 0) {
|
||||||
|
errno = ETIMEDOUT;
|
||||||
|
return (-1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (count == 0)
|
|
||||||
msg_fatal("write returned 0");
|
|
||||||
buf += count;
|
|
||||||
len -= count;
|
|
||||||
}
|
}
|
||||||
return (buf - start);
|
return (buf - start);
|
||||||
}
|
}
|
||||||
|
@@ -64,6 +64,8 @@ deliver_attr.o: ../../include/deliver_request.h
|
|||||||
deliver_attr.o: ../../include/dict.h
|
deliver_attr.o: ../../include/dict.h
|
||||||
deliver_attr.o: ../../include/dsn.h
|
deliver_attr.o: ../../include/dsn.h
|
||||||
deliver_attr.o: ../../include/dsn_buf.h
|
deliver_attr.o: ../../include/dsn_buf.h
|
||||||
|
deliver_attr.o: ../../include/iostuff.h
|
||||||
|
deliver_attr.o: ../../include/mail_proto.h
|
||||||
deliver_attr.o: ../../include/maps.h
|
deliver_attr.o: ../../include/maps.h
|
||||||
deliver_attr.o: ../../include/mbox_conf.h
|
deliver_attr.o: ../../include/mbox_conf.h
|
||||||
deliver_attr.o: ../../include/msg.h
|
deliver_attr.o: ../../include/msg.h
|
||||||
@@ -84,9 +86,11 @@ mailbox.o: ../../include/dict.h
|
|||||||
mailbox.o: ../../include/dsn.h
|
mailbox.o: ../../include/dsn.h
|
||||||
mailbox.o: ../../include/dsn_buf.h
|
mailbox.o: ../../include/dsn_buf.h
|
||||||
mailbox.o: ../../include/dsn_util.h
|
mailbox.o: ../../include/dsn_util.h
|
||||||
|
mailbox.o: ../../include/iostuff.h
|
||||||
mailbox.o: ../../include/mail_addr_find.h
|
mailbox.o: ../../include/mail_addr_find.h
|
||||||
mailbox.o: ../../include/mail_copy.h
|
mailbox.o: ../../include/mail_copy.h
|
||||||
mailbox.o: ../../include/mail_params.h
|
mailbox.o: ../../include/mail_params.h
|
||||||
|
mailbox.o: ../../include/mail_proto.h
|
||||||
mailbox.o: ../../include/maps.h
|
mailbox.o: ../../include/maps.h
|
||||||
mailbox.o: ../../include/mbox_conf.h
|
mailbox.o: ../../include/mbox_conf.h
|
||||||
mailbox.o: ../../include/mbox_open.h
|
mailbox.o: ../../include/mbox_open.h
|
||||||
@@ -114,8 +118,10 @@ maildir.o: ../../include/dsn.h
|
|||||||
maildir.o: ../../include/dsn_buf.h
|
maildir.o: ../../include/dsn_buf.h
|
||||||
maildir.o: ../../include/dsn_util.h
|
maildir.o: ../../include/dsn_util.h
|
||||||
maildir.o: ../../include/get_hostname.h
|
maildir.o: ../../include/get_hostname.h
|
||||||
|
maildir.o: ../../include/iostuff.h
|
||||||
maildir.o: ../../include/mail_copy.h
|
maildir.o: ../../include/mail_copy.h
|
||||||
maildir.o: ../../include/mail_params.h
|
maildir.o: ../../include/mail_params.h
|
||||||
|
maildir.o: ../../include/mail_proto.h
|
||||||
maildir.o: ../../include/make_dirs.h
|
maildir.o: ../../include/make_dirs.h
|
||||||
maildir.o: ../../include/maps.h
|
maildir.o: ../../include/maps.h
|
||||||
maildir.o: ../../include/mbox_conf.h
|
maildir.o: ../../include/mbox_conf.h
|
||||||
@@ -142,6 +148,8 @@ recipient.o: ../../include/deliver_request.h
|
|||||||
recipient.o: ../../include/dict.h
|
recipient.o: ../../include/dict.h
|
||||||
recipient.o: ../../include/dsn.h
|
recipient.o: ../../include/dsn.h
|
||||||
recipient.o: ../../include/dsn_buf.h
|
recipient.o: ../../include/dsn_buf.h
|
||||||
|
recipient.o: ../../include/iostuff.h
|
||||||
|
recipient.o: ../../include/mail_proto.h
|
||||||
recipient.o: ../../include/maps.h
|
recipient.o: ../../include/maps.h
|
||||||
recipient.o: ../../include/mbox_conf.h
|
recipient.o: ../../include/mbox_conf.h
|
||||||
recipient.o: ../../include/msg.h
|
recipient.o: ../../include/msg.h
|
||||||
@@ -162,6 +170,8 @@ unknown.o: ../../include/deliver_request.h
|
|||||||
unknown.o: ../../include/dict.h
|
unknown.o: ../../include/dict.h
|
||||||
unknown.o: ../../include/dsn.h
|
unknown.o: ../../include/dsn.h
|
||||||
unknown.o: ../../include/dsn_buf.h
|
unknown.o: ../../include/dsn_buf.h
|
||||||
|
unknown.o: ../../include/iostuff.h
|
||||||
|
unknown.o: ../../include/mail_proto.h
|
||||||
unknown.o: ../../include/maps.h
|
unknown.o: ../../include/maps.h
|
||||||
unknown.o: ../../include/mbox_conf.h
|
unknown.o: ../../include/mbox_conf.h
|
||||||
unknown.o: ../../include/msg.h
|
unknown.o: ../../include/msg.h
|
||||||
@@ -185,6 +195,7 @@ virtual.o: ../../include/iostuff.h
|
|||||||
virtual.o: ../../include/mail_addr_find.h
|
virtual.o: ../../include/mail_addr_find.h
|
||||||
virtual.o: ../../include/mail_conf.h
|
virtual.o: ../../include/mail_conf.h
|
||||||
virtual.o: ../../include/mail_params.h
|
virtual.o: ../../include/mail_params.h
|
||||||
|
virtual.o: ../../include/mail_proto.h
|
||||||
virtual.o: ../../include/mail_queue.h
|
virtual.o: ../../include/mail_queue.h
|
||||||
virtual.o: ../../include/mail_server.h
|
virtual.o: ../../include/mail_server.h
|
||||||
virtual.o: ../../include/mail_version.h
|
virtual.o: ../../include/mail_version.h
|
||||||
|
Reference in New Issue
Block a user