- long reflen);
-
-/*
- * loading messages async via an FD:
- * add IO->ReadMsg = NewAsyncMsg(...)
- * and then call CtdlReadMessageBodyAsync() from your linreader handler.
- */
-
-ReadAsyncMsg *NewAsyncMsg(const char *terminator, /* token signalling EOT */
- long tlen,
- size_t expectlen, /* if we expect a message, how long should it be? */
- size_t maxlen, /* maximum message length */
- StrBuf *exist, /* if non-null, append to it;
- exist is ALWAYS freed */
- long eLen, /* length of exist */
- int crlf /* CRLF newlines instead of LF */
- );
-
-eReadState CtdlReadMessageBodyAsync(AsyncIO *IO);
-void DeleteAsyncMsg(ReadAsyncMsg **Msg);
-
-extern int MessageDebugEnabled;
-
-#define MSGDBGLOG(LEVEL) if ((LEVEL != LOG_DEBUG) || (MessageDebugEnabled != 0))
-#define CCCID CCC->cs_pid
-#define MSG_syslog(LEVEL, FORMAT, ...) \
- MSGDBGLOG(LEVEL) syslog(LEVEL, \
- "CC[%d]MSG " FORMAT, \
- CCCID, __VA_ARGS__)
-
-#define MSGM_syslog(LEVEL, FORMAT) \
- MSGDBGLOG(LEVEL) syslog(LEVEL, \
- "CC[%d]MSG " FORMAT, \
- CCCID)
-