IO_CallBack Fail; /* the dns lookup didn't work out. */
} evcares_data;
+
struct AsyncIO {
long ID;
ev_tstamp Now;
Timeout, /* Timeout handler;may also be conn. timeout */
ConnFail, /* What to do when one connection failed? */
ShutdownAbort,/* we're going down. make your piece. */
- NextDBOperation; /* Perform Database IO */
+ NextDBOperation, /* Perform Database IO */
+ ReAttachCB; /* on the hop from one Q to the other, this is the next CB */
/* if we have linereaders, maybe we want to read more lines before
* the real application logic is called? */
} IOAddHandler;
+inline static time_t EvGetNow(AsyncIO *IO) { return (time_t) IO->Now;}
extern int DebugEventLoop;
extern int DebugCAres;
#define CCID ((CitContext*)IO->CitContext)?((CitContext*)IO->CitContext)->cs_pid:-1
-#define EVQ_syslog(LEVEL, FORMAT, ...) \
- EDBGLOG (LEVEL) syslog(LEVEL, "%sQ " FORMAT, IOSTR, __VA_ARGS__)
-
-#define EVQM_syslog(LEVEL, FORMAT) \
- EDBGLOG (LEVEL) syslog(LEVEL, "%s " FORMAT, IOSTR)
-
-#define EV_syslog(LEVEL, FORMAT, ...) \
- EDBGLOG (LEVEL) syslog(LEVEL, "%s[%ld]CC[%d] " FORMAT, IOSTR, IO->ID, CCID, __VA_ARGS__)
-
-#define EVM_syslog(LEVEL, FORMAT) \
- EDBGLOG (LEVEL) syslog(LEVEL, "%s[%ld]CC[%d] " FORMAT, IOSTR, IO->ID, CCID)
-
-#define EVNC_syslog(LEVEL, FORMAT, ...) \
- EDBGLOG (LEVEL) syslog(LEVEL, "%s[%ld] " FORMAT, IOSTR, IO->ID, __VA_ARGS__)
-
-#define EVNCM_syslog(LEVEL, FORMAT) EDBGLOG (LEVEL) syslog(LEVEL, "%s[%ld]" FORMAT, IOSTR, IO->ID)
-
-
#define CDBGLOG() if (DebugCAres != 0)
#define CEDBGLOG(LEVEL) if ((LEVEL != LOG_DEBUG) || (DebugCAres != 0))
#define EV_DNS_LOG_START(a) \
CDBGLOG () { syslog(LOG_DEBUG, "%s[%ld]CC[%d] * Init " #a " %p", IOSTR, IO->ID, CCID, &IO->a); \
EV_backtrace(IO);}
-#define EV_DNS_syslog(LEVEL, FORMAT, ...) \
- CEDBGLOG (LEVEL) syslog(LEVEL, "%s[%ld]CC[%d] " FORMAT, IOSTR, IO->ID, CCID, __VA_ARGS__)
-
-#define EVM_DNS_syslog(LEVEL, FORMAT) \
- CEDBGLOG (LEVEL) syslog(LEVEL, "%s[%ld]CC[%d] " FORMAT, IOSTR, IO->ID, CCID)
-
void FreeAsyncIOContents(AsyncIO *IO);
eNextState NextDBOperation(AsyncIO *IO, IO_CallBack CB);
-eNextState QueueDBOperation(AsyncIO *IO, IO_CallBack CB);
eNextState EventQueueDBOperation(AsyncIO *IO, IO_CallBack CB, int CloseFDs);
void StopDBWatchers(AsyncIO *IO);
eNextState QueueEventContext(AsyncIO *IO, IO_CallBack CB);
do { \
sta = curl_easy_setopt(chnd, (CURLOPT_##s), (v)); \
if (sta) { \
- EVQ_syslog(LOG_ERR, \
+ syslog(LOG_ERR, \
"error setting option " #s \
" on curl handle: %s", \
curl_easy_strerror(sta)); \
} } while (0)
+#define SET_EV_TIME(IO, BASE) \
+ IO->Now = ev_now(BASE); \
+ if (IO->CitContext != NULL) IO->CitContext->lastcmd = IO->Now;
+
void InitIOStruct(AsyncIO *IO,
void *Data,
eNextState NextState,