25 #ifndef __ZE_CALLBACK_H 27 #define CALLBACK_FIRST 0 28 #define CALLBACK_CONNECT 0 29 #define CALLBACK_EHLO 1 30 #define CALLBACK_MAIL 2 31 #define CALLBACK_RCPT 3 32 #define CALLBACK_DATA 4 33 #define CALLBACK_HEADER 5 34 #define CALLBACK_EOH 6 35 #define CALLBACK_BODY 7 36 #define CALLBACK_EOM 8 37 #define CALLBACK_ABORT 9 38 #define CALLBACK_CLOSE 10 39 #define CALLBACK_UNKNOWN 11 40 #define CALLBACK_LAST 11 42 #define CALLBACK_LABEL(i) \ 43 ((i) == CALLBACK_CONNECT ? "CONNECT" : \ 44 (i) == CALLBACK_EHLO ? "HELO" : \ 45 (i) == CALLBACK_MAIL ? "MAIL" : \ 46 (i) == CALLBACK_RCPT ? "RCPT" : \ 47 (i) == CALLBACK_DATA ? "DATA" : \ 48 (i) == CALLBACK_HEADER ? "HEADER" : \ 49 (i) == CALLBACK_EOH ? "EOH" : \ 50 (i) == CALLBACK_BODY ? "BODY" : \ 51 (i) == CALLBACK_EOM ? "EOM" : \ 52 (i) == CALLBACK_ABORT ? "ABORT" : \ 53 (i) == CALLBACK_CLOSE ? "CLOSE" : "UNKNOWN") 55 #define CALLBACK_VALUE(label) \ 56 (STRCASEEQUAL((label), "CONNECT") ? CALLBACK_CONNECT : \ 57 STRCASEEQUAL((label), "HELO") ? CALLBACK_EHLO : \ 58 STRCASEEQUAL((label), "EHLO") ? CALLBACK_EHLO : \ 59 STRCASEEQUAL((label), "MAIL") ? CALLBACK_MAIL : \ 60 STRCASEEQUAL((label), "RCPT") ? CALLBACK_RCPT : \ 61 STRCASEEQUAL((label), "DATA") ? CALLBACK_DATA : \ 62 STRCASEEQUAL((label), "HEADER") ? CALLBACK_HEADER : \ 63 STRCASEEQUAL((label), "EOH") ? CALLBACK_EOH : \ 64 STRCASEEQUAL((label), "BODY") ? CALLBACK_BODY : \ 65 STRCASEEQUAL((label), "EOM") ? CALLBACK_EOM : \ 66 STRCASEEQUAL((label), "ABORT") ? CALLBACK_ABORT : \ 67 STRCASEEQUAL((label), "CLOSE") ? CALLBACK_CLOSE : CALLBACK_UNKNOWN) 75 # define __ZE_CALLBACK_H 1 bool callback_stats_update(int callback, timems_T dt)
bool callback_stats_dump(int fd, bool line)