pre_read_smtp

March 26, 2020

Name

pre_read_smtp

Synopsis

#include "hooks/core/pre_read_smtp.h"

| int **pre_read_smtp** ( | closure, |   |
|   | dc, |   |
|   | expected, |   |
|   | newstate, |   |
|   | now, |   |
|   | mask); |   |

void * <var class="pdparam">closure</var>;
delivery_construct * <var class="pdparam">dc</var>;
int <var class="pdparam">expected</var>;
int <var class="pdparam">newstate</var>;
struct timeval * <var class="pdparam">now</var>;
int * <var class="pdparam">mask</var>;

| int **has_core_pre_read_smtp_hook** ( | ); |   |

| void **register_core_pre_read_smtp_hook_first** ( | hook, |   |
|   | closure); |   |

ec_hook_core_pre_read_smtp_func_t <var class="pdparam">hook</var>;
void *<var class="pdparam">closure</var>;

| void **register_core_pre_read_smtp_hook_last** ( | hook, |   |
|   | closure); |   |

ec_hook_core_pre_read_smtp_func_t <var class="pdparam">hook</var>;
void *<var class="pdparam">closure</var>;

| int **call_core_pre_read_smtp_hook** ( | dc, |   |
|   | expected, |   |
|   | newstate, |   |
|   | now, |   |
|   | mask); |   |

delivery_construct * <var class="pdparam">dc</var>;
int <var class="pdparam">expected</var>;
int <var class="pdparam">newstate</var>;
struct timeval * <var class="pdparam">now</var>;
int * <var class="pdparam">mask</var>;

Description

The pre_read_smtp hook is invoked immediately before data is read from the the remote server during outbound connections. The subsequent read operation is not guaranteed to return a complete SMTP response.

dc holds all details regarding the current SMTP connection. expected represents the expected SMTP response code (e.g. 250). newstate hold the new SMTP state machine state should the read complete and match the expected response code. now is the current scheduler time. *mask holds the event mask that should be used to trigger the next read. Under most circumstances, values past by reference should not be altered. Those arguments that are passed by reference are done so to mirror the parent function’s API.