83 const char *relay,
DSN *dsn,
137 #define DELTA(x, y, z) \
139 (x).dt_sec = (y).tv_sec - (z).tv_sec; \
140 (x).dt_usec = (y).tv_usec - (z).tv_usec; \
141 while ((x).dt_usec < 0) { \
142 (x).dt_usec += 1000000; \
145 while ((x).dt_usec >= 1000000) { \
146 (x).dt_usec -= 1000000; \
149 if ((x).dt_sec < 0) \
150 (x).dt_sec = (x).dt_usec = 0; \
153 #define DELTA_ZERO(x) ((x).dt_sec = (x).dt_usec = 0)
155 #define TIME_STAMPED(x) ((x).tv_sec > 0)
192 #define PRETTY_FORMAT(b, text, x) \
194 vstring_strcat((b), text); \
195 format_tv((b), (x).dt_sec, (x).dt_usec, SIG_DIGS, var_delay_max_res); \
#define PRETTY_FORMAT(b, text, x)
#define strcasecmp_utf8(s1, s2)
VSTRING * vstring_sprintf_append(VSTRING *vp, const char *format,...)
struct timeval conn_setup_done
VSTRING * vstring_alloc(ssize_t len)
struct timeval incoming_arrival
VSTRING * vstring_sprintf(VSTRING *vp, const char *format,...)
void log_adhoc(const char *id, MSG_STATS *stats, RECIPIENT *recipient, const char *relay, DSN *dsn, const char *status)
struct timeval deliver_done
struct timeval agent_handoff
struct timeval active_arrival
void msg_info(const char *fmt,...)