Milter smfi_setsymlist()

Set protocol macro list V8.13 and later

Normally the list of macros made available to a Milter is defined in the sendmail configuration file (see Milter smfi_getsymval() on page 1190). Prior to V8.14, it was not possible to change that list from within a running Milter. V8.14 added the xxfi_negotiate() function to the list of functions you write. From within your xxfi_negotiate() function you may call this smfi_setsymlist() routine to specify a list of macros you want to make available to your Milter.

The smfi_setsymlist() routine is called like this:

ret = smfi_setsymlist(ctx, stage, maclist);

Here, ctx is the common context pointer that was passed to your xxfi_negotiate() function. The stage is a symbolic constant that indicates the xxfi_ function that will want the macros, and maclist is that list of wanted macros as a string.

The stage is specified by one of the symbolic constants listed in Table 26-13.

Table 26-13. Constants to specify the stage for smfi_setsymlist()

Value for stage

Function called

SMFIM_CONNECT

xxfi_connect()

SMFIM_DATA

xxfi_data()

SMFIM_HELO

xxfi_helo()

SMFIM_ENVFROM

xxfi_envfrom()

SMFIM_ENVRCPT

xxfi_envrcpt()

SMFIM_EOH

xxfi_eoh

SMFIM_EOM

xxfi_eom

Only one stage may be specified with each call to smfi_setsymlist(). If stage is not one of the values listed, smfi_setsymlist() will return MI_FAILURE.

The returned value (the ret) will be MI_FAILURE if maclist is NULL or if smfi_setsymlist() has already been called before for a ...

Get sendmail, 4th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.