A connection can also be
closed down if sendmail drops the connection itself. No matter how the connection shuts
down, this xxfi_close() function, if used, will be called.
The xxfi_close() function is called like this:
sfsistat
xxfi_close(SMFICTX *ctx)
Here, ctx is the context pointer passed to all xxfi_ functions to maintain state in a multithreaded
environment. Nothing else is passed. If you have earlier declared a private data
pointer with smfi_setpriv() (?§26.5.20 on page 1199), this may be a good place to deallocate
that data. But be aware that xxfi_close() can be the only xxfi_ function called for a
connection. Consider the case of a connection rejected through the access database (?§7.5
on page 277). In that event, xxfi_connect() will not be called, but xxfi_close() will be, so
always anticipate that your private data pointer might be NULL.
Note that xxfi_close() is called even if a prior Milter rejected the connection.
This is the Title of the Book, eMatter Edition
Copyright ?© 2007 O??™Reilly & Associates, Inc. All rights reserved.
26.6 xxfi_ Routine Reference | 1209
Also note that any value returned by xxfi_close() is ignored, so you may return any value
with no change in effect. If you don??™t declare a close handler in smfiDesc (?§26.5.14 on page
1194), the default return value is SMFIS_CONTINUE.
26.6.4 Milter xxfi_connect()
Begin a connection All Milter versions
Before any messages (envelopes) can be processed, the sending client must connect to the
listening sendmail server.
Pages:
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177