static void IO_abort_shutdown_callback(struct ev_loop *loop, ev_cleanup *watcher, int revents)
{
- syslog(LOG_DEBUG, "EVENT Q: %s\n", __FUNCTION__);
-
AsyncIO *IO = watcher->data;
+ EV_syslog(LOG_DEBUG, "EVENT Q: %s\n", __FUNCTION__);
+
assert(IO->ShutdownAbort);
IO->ShutdownAbort(IO);
}
ev_cleanup_start(event_db, &IO->db_abort_by_shutdown);
pthread_mutex_lock(&DBEventQueueMutex);
- syslog(LOG_DEBUG, "DBEVENT Q\n");
+ EVM_syslog(LOG_DEBUG, "DBEVENT Q\n");
i = ++evdb_count ;
Put(DBInboundEventQueue, IKEY(i), h, NULL);
pthread_mutex_unlock(&DBEventQueueMutex);
ev_async_send (event_db, &DBAddJob);
- syslog(LOG_DEBUG, "DBEVENT Q Done.\n");
+ EVM_syslog(LOG_DEBUG, "DBEVENT Q Done.\n");
return eDBQuery;
}
CitContext *Ctx =IO->CitContext;
become_session(Ctx);
- syslog(LOG_DEBUG, "DBEVENT\n");
+ EVM_syslog(LOG_DEBUG, "DBEVENT\n");
ev_cleanup_stop(event_db, &IO->db_abort_by_shutdown);
assert(IO->Terminate);
DB_PerformNext(struct ev_loop *loop, ev_idle *watcher, int revents)
{
AsyncIO *IO = watcher->data;
- syslog(LOG_DEBUG, "event: %s\n", __FUNCTION__);
+ EV_syslog(LOG_DEBUG, "event: %s\n", __FUNCTION__);
become_session(IO->CitContext);
ev_idle_stop(event_db, &IO->db_unwind_stack);
ev_cleanup_start(event_base, &IO->abort_by_shutdown);
pthread_mutex_lock(&EventQueueMutex);
- syslog(LOG_DEBUG, "EVENT Q\n");
+ EVM_syslog(LOG_DEBUG, "EVENT Q\n");
i = ++evbase_count;
Put(InboundEventQueue, IKEY(i), h, NULL);
pthread_mutex_unlock(&EventQueueMutex);
ev_async_send (event_base, &AddJob);
- syslog(LOG_DEBUG, "EVENT Q Done.\n");
+ EVM_syslog(LOG_DEBUG, "EVENT Q Done.\n");
return eSendReply;
}
h->EvAttch = evcurl_handle_start;
pthread_mutex_lock(&EventQueueMutex);
- syslog(LOG_DEBUG, "EVENT Q\n");
+ EVM_syslog(LOG_DEBUG, "EVENT Q\n");
i = ++evbase_count;
Put(InboundEventQueue, IKEY(i), h, NULL);
pthread_mutex_unlock(&EventQueueMutex);
ev_async_send (event_base, &AddJob);
- syslog(LOG_DEBUG, "EVENT Q Done.\n");
+ EVM_syslog(LOG_DEBUG, "EVENT Q Done.\n");
return eSendReply;
}
CitContext *Ctx =IO->CitContext;
become_session(Ctx);
- syslog(LOG_DEBUG, "EVENT x %d\n", IO->SendBuf.fd);
+ EVM_syslog(LOG_DEBUG, "EVENT Terminating \n");
ev_cleanup_stop(event_base, &IO->abort_by_shutdown);
StopClientWatchers(IO);
return;
} else if (nbytes == -1) {
/// TODO: FD is gone. kick it. sock_buff_invoke_free(sb, errno);
- syslog(LOG_DEBUG,
- "EVENT: Socket Invalid! %s \n",
- strerror(errno));
+ EV_syslog(LOG_DEBUG,
+ "EVENT: Socket Invalid! %s \n",
+ strerror(errno));
ShutDownCLient(IO);
return;
}
IO_postdns_callback(struct ev_loop *loop, ev_idle *watcher, int revents)
{
AsyncIO *IO = watcher->data;
- syslog(LOG_DEBUG, "event: %s\n", __FUNCTION__);
+ EV_syslog(LOG_DEBUG, "event: %s\n", __FUNCTION__);
become_session(IO->CitContext);
assert(IO->DNSFail);
assert(IO->DNSQuery->PostDNS);
IPPROTO_TCP);
if (IO->SendBuf.fd < 0) {
- syslog(LOG_ERR, "EVENT: socket() failed: %s\n", strerror(errno));
+ EV_syslog(LOG_ERR, "EVENT: socket() failed: %s\n", strerror(errno));
StrBufPrintf(IO->ErrMsg, "Failed to create socket: %s", strerror(errno));
return eAbort;
}
fdflags = fcntl(IO->SendBuf.fd, F_GETFL);
if (fdflags < 0) {
- syslog(LOG_DEBUG,
- "EVENT: unable to get socket flags! %s \n",
- strerror(errno));
+ EV_syslog(LOG_DEBUG,
+ "EVENT: unable to get socket flags! %s \n",
+ strerror(errno));
StrBufPrintf(IO->ErrMsg, "Failed to get socket flags: %s", strerror(errno));
return eAbort;
}
fdflags = fdflags | O_NONBLOCK;
if (fcntl(IO->SendBuf.fd, F_SETFL, fdflags) < 0) {
- syslog(LOG_DEBUG,
- "EVENT: unable to set socket nonblocking flags! %s \n",
- strerror(errno));
+ EV_syslog(LOG_DEBUG,
+ "EVENT: unable to set socket nonblocking flags! %s \n",
+ strerror(errno));
StrBufPrintf(IO->ErrMsg, "Failed to set socket flags: %s", strerror(errno));
close(IO->SendBuf.fd);
IO->SendBuf.fd = IO->RecvBuf.fd = -1;
rc = connect(IO->SendBuf.fd, (struct sockaddr_in *)&IO->ConnectMe->Addr, sizeof(struct sockaddr_in));
if (rc >= 0){
- syslog(LOG_DEBUG, "connect() immediate success.\n");
+ EVM_syslog(LOG_DEBUG, "connect() immediate success.\n");
set_start_callback(event_base, IO, 0);
ev_timer_start(event_base, &IO->rw_timeout);
return IO->NextState;
}
else if (errno == EINPROGRESS) {
- syslog(LOG_DEBUG, "connect() have to wait now.\n");
+ EVM_syslog(LOG_DEBUG, "connect() have to wait now.\n");
ev_io_init(&IO->conn_event, IO_connestd_callback, IO->SendBuf.fd, EV_READ|EV_WRITE);
IO->conn_event.data = IO;
IO->conn_fail_immediate.data = IO;
ev_idle_start(event_base, &IO->conn_fail_immediate);
- syslog(LOG_ERR, "connect() failed: %s\n", strerror(errno));
+ EV_syslog(LOG_ERR, "connect() failed: %s\n", strerror(errno));
StrBufPrintf(IO->ErrMsg, "Failed to connect: %s", strerror(errno));
return IO->NextState;
}
} evcurl_request_data;
struct AsyncIO {
+ long ID;
eNextState NextState;
/* connection related */
IO_CallBack EvAttch;
}IOAddHandler;
+#define EV_syslog(LEVEL, FORMAT, ...) syslog(LEVEL, "IO[%ld]" FORMAT, IO->ID, __VA_ARGS__)
+#define EVM_syslog(LEVEL, FORMAT) syslog(LEVEL, "IO[%ld]" FORMAT, IO->ID)
+
void FreeAsyncIOContents(AsyncIO *IO);
eNextState NextDBOperation(AsyncIO *IO, IO_CallBack CB);
ev_loop *event_base;
+long EvIDSource = 0;
/*****************************************************************************
* libevent / curl integration *
*****************************************************************************/
sta = msg->data.result;
if (sta) {
- syslog(LOG_ERR, "EVCURL: error description: %s\n", IO->HttpReq.errdesc);
- syslog(LOG_ERR, "EVCURL: error performing request: %s\n", curl_easy_strerror(sta));
+ EV_syslog(LOG_ERR, "EVCURL: error description: %s\n", IO->HttpReq.errdesc);
+ EV_syslog(LOG_ERR, "EVCURL: error performing request: %s\n", curl_easy_strerror(sta));
}
sta = curl_easy_getinfo(chnd, CURLINFO_RESPONSE_CODE, &IO->HttpReq.httpcode);
if (sta)
- syslog(LOG_ERR, "EVCURL: error asking curl for response code from request: %s\n", curl_easy_strerror(sta));
- syslog(LOG_ERR, "EVCURL: http response code was %ld\n", (long)IO->HttpReq.httpcode);
+ EV_syslog(LOG_ERR, "EVCURL: error asking curl for response code from request: %s\n", curl_easy_strerror(sta));
+ EV_syslog(LOG_ERR, "EVCURL: http response code was %ld\n", (long)IO->HttpReq.httpcode);
curl_slist_free_all(IO->HttpReq.headers);
msta = curl_multi_remove_handle(mhnd, chnd);
if (msta)
- syslog(LOG_ERR, "EVCURL: warning problem detaching completed handle from curl multi: %s\n", curl_multi_strerror(msta));
+ EV_syslog(LOG_ERR, "EVCURL: warning problem detaching completed handle from curl multi: %s\n", curl_multi_strerror(msta));
curl_easy_cleanup(IO->HttpReq.chnd);
IO->HttpReq.chnd = NULL;
AsyncIO *IO = (AsyncIO*) vIO;
CURLcode sta;
- syslog(LOG_DEBUG, "EVCURL: gotwatchsock called fd=%d action=%d\n", (int)fd, action);
+ EV_syslog(LOG_DEBUG, "EVCURL: gotwatchsock called fd=%d action=%d\n", (int)fd, action);
if (IO == NULL) {
sta = curl_easy_getinfo(easy, CURLINFO_PRIVATE, &f);
if (sta) {
- syslog(LOG_ERR, "EVCURL: error asking curl for private cookie of curl handle: %s\n", curl_easy_strerror(sta));
+ EV_syslog(LOG_ERR, "EVCURL: error asking curl for private cookie of curl handle: %s\n", curl_easy_strerror(sta));
return -1;
}
IO = (AsyncIO *) f;
switch (action)
{
case CURL_POLL_NONE:
- syslog(LOG_ERR,"EVCURL: called first time to register this sockwatcker\n");
+ EVM_syslog(LOG_ERR,"EVCURL: called first time to register this sockwatcker\n");
break;
case CURL_POLL_REMOVE:
- syslog(LOG_ERR,"EVCURL: called last time to unregister this sockwatcher\n");
+ EVM_syslog(LOG_ERR,"EVCURL: called last time to unregister this sockwatcher\n");
ev_io_stop(event_base, &IO->recv_event);
ev_io_stop(event_base, &IO->send_event);
break;
CURLcode sta;
CURL *chnd;
- syslog(LOG_DEBUG, "EVCURL: evcurl_init called ms\n");
+ EVM_syslog(LOG_DEBUG, "EVCURL: evcurl_init called ms\n");
IO->HttpReq.attached = 0;
IO->SendDone = CallBack;
IO->Terminate = Terminate;
chnd = IO->HttpReq.chnd = curl_easy_init();
if (!chnd)
{
- syslog(LOG_ERR, "EVCURL: error initializing curl handle\n");
+ EVM_syslog(LOG_ERR, "EVCURL: error initializing curl handle\n");
return 1;
}
OPT(INTERFACE, config.c_ip_addr);
}
/* point to a structure that points back to the perl structure and stuff */
- syslog(LOG_DEBUG, "EVCURL: Loading URL: %s\n", IO->ConnectMe->PlainUrl);
+ EV_syslog(LOG_DEBUG, "EVCURL: Loading URL: %s\n", IO->ConnectMe->PlainUrl);
OPT(URL, IO->ConnectMe->PlainUrl);
if (StrLength(IO->ConnectMe->CurlCreds))
{
{
CURLMcode msta;
IO->NextState = eConnect;
- syslog(LOG_DEBUG, "EVCURL: attaching to curl multi handle\n");
+ EVM_syslog(LOG_DEBUG, "EVCURL: attaching to curl multi handle\n");
msta = curl_multi_add_handle(global.mhnd, IO->HttpReq.chnd);
if (msta)
- syslog(LOG_ERR, "EVCURL: error attaching to curl multi handle: %s\n", curl_multi_strerror(msta));
+ EV_syslog(LOG_ERR, "EVCURL: error attaching to curl multi handle: %s\n", curl_multi_strerror(msta));
IO->HttpReq.attached = 1;
ev_async_send (event_base, &WakeupCurl);
return eReadMessage;
while (GetNextHashPos(q, It, &len, &Key, &v))
{
IOAddHandler *h = v;
+ if (h->IO->ID == 0)
+ h->IO->ID = EvIDSource++;
h->EvAttch(h->IO);
}
DeleteHashPos(&It);
{
IOAddHandler *h = v;
eNextState rc;
+ if (h->IO->ID == 0)
+ h->IO->ID = EvIDSource++;
rc = h->EvAttch(h->IO);
switch (rc)
{
******************************************************************************/
void FinalizeMessageSend(SmtpOutMsg *Msg)
{
- syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
+ AsyncIO *IO = &Msg->IO;
+ EV_syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
if (DecreaseQReference(Msg->MyQItem))
{
eNextState FailOneAttempt(AsyncIO *IO)
{
SmtpOutMsg *SendMsg = IO->Data;
+
+ if (SendMsg->MyQEntry->Status == 2)
+ return eAbort;
+
/*
* possible ways here:
* - connection timeout
if (SendMsg->mx_host == NULL)
SendMsg->mx_host = "<no MX-Record>";
- syslog(LOG_DEBUG,
- "SMTP client[%ld]: connecting to %s [%s]:%d ...\n",
- SendMsg->n,
- SendMsg->mx_host,
- buf,
- SendMsg->IO.ConnectMe->Port);
+ EV_syslog(LOG_DEBUG,
+ "SMTP client[%ld]: connecting to %s [%s]:%d ...\n",
+ SendMsg->n,
+ SendMsg->mx_host,
+ buf,
+ SendMsg->IO.ConnectMe->Port);
SendMsg->MyQEntry->Status = 5;
StrBufPrintf(SendMsg->MyQEntry->StatusMessage,
{
SmtpOutMsg *SendMsg = IO->Data;
- syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
+ EV_syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
IO->ConnectMe = SendMsg->pCurrRelay;
/* Bypass the ns lookup result like this: IO->Addr.sin_addr.s_addr = inet_addr("127.0.0.1"); */
InitC_ares_dns(IO);
- syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
+ EV_syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
- syslog(LOG_DEBUG,
- "SMTP client[%ld]: looking up %s-Record %s : %d ...\n",
- SendMsg->n,
- (SendMsg->pCurrRelay->IPv6)? "aaaa": "a",
- SendMsg->pCurrRelay->Host,
- SendMsg->pCurrRelay->Port);
+ EV_syslog(LOG_DEBUG,
+ "SMTP client[%ld]: looking up %s-Record %s : %d ...\n",
+ SendMsg->n,
+ (SendMsg->pCurrRelay->IPv6)? "aaaa": "a",
+ SendMsg->pCurrRelay->Host,
+ SendMsg->pCurrRelay->Port);
if (!QueueQuery((SendMsg->pCurrRelay->IPv6)? ns_t_aaaa : ns_t_a,
SendMsg->pCurrRelay->Host,
QueryCbDone(IO);
- syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
+ EV_syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
pp = &SendMsg->Relay;
while ((pp != NULL) && (*pp != NULL) && ((*pp)->Next != NULL))
pp = &(*pp)->Next;
{
SmtpOutMsg * SendMsg = IO->Data;
- syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
+ EV_syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
/* start resolving MX records here. */
if (!QueueQuery(ns_t_mx,
SendMsg->node,
void SMTPSetTimeout(eNextState NextTCPState, SmtpOutMsg *pMsg)
{
double Timeout = 0.0;
+ AsyncIO *IO = &pMsg->IO;
- syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
+ EV_syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
switch (NextTCPState) {
case eSendFile:
}
eNextState SMTP_C_DispatchReadDone(AsyncIO *IO)
{
- syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
+ EV_syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
SmtpOutMsg *pMsg = IO->Data;
eNextState rc;
}
eNextState SMTP_C_DispatchWriteDone(AsyncIO *IO)
{
- syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
+ EV_syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
SmtpOutMsg *pMsg = IO->Data;
eNextState rc;
{
SmtpOutMsg *pMsg = IO->Data;
- syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
+ EV_syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
FinalizeMessageSend(pMsg);
return eAbort;
}
{
SmtpOutMsg *pMsg = IO->Data;
- syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
+ EV_syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
StrBufPlain(IO->ErrMsg, CKEY(ReadErrors[pMsg->State]));
return FailOneAttempt(IO);
}
{
SmtpOutMsg *pMsg = IO->Data;
- syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
+ EV_syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
StrBufPlain(IO->ErrMsg, CKEY(ReadErrors[pMsg->State]));
return FailOneAttempt(IO);
}
eNextState SMTP_C_Shutdown(AsyncIO *IO)
{
- syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
+ EV_syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
SmtpOutMsg *pMsg = IO->Data;
pMsg->MyQEntry->Status = 3;
#define SMTP_IS_STATE(WHICH_STATE) (ChrPtr(SendMsg->IO.IOBuf)[0] == WHICH_STATE)
-#define SMTP_DBG_SEND() syslog(LOG_DEBUG, "SMTP client[%ld]: > %s\n", SendMsg->n, ChrPtr(SendMsg->IO.SendBuf.Buf))
-#define SMTP_DBG_READ() syslog(LOG_DEBUG, "SMTP client[%ld]: < %s\n", SendMsg->n, ChrPtr(SendMsg->IO.IOBuf))
+#define SMTP_DBG_SEND() EV_syslog(LOG_DEBUG, "SMTP client[%ld]: > %s\n", SendMsg->n, ChrPtr(SendMsg->IO.SendBuf.Buf))
+#define SMTP_DBG_READ() EV_syslog(LOG_DEBUG, "SMTP client[%ld]: < %s\n", SendMsg->n, ChrPtr(SendMsg->IO.IOBuf))
/*****************************************************************************/
eNextState SMTPC_read_greeting(SmtpOutMsg *SendMsg)
{
/* Process the SMTP greeting from the server */
+ AsyncIO *IO = &SendMsg->IO;
SMTP_DBG_READ();
if (!SMTP_IS_STATE('2')) {
eNextState SMTPC_send_EHLO(SmtpOutMsg *SendMsg)
{
+ AsyncIO *IO = &SendMsg->IO;
/* At this point we know we are talking to a real SMTP server */
/* Do a EHLO command. If it fails, try the HELO command. */
eNextState SMTPC_read_EHLO_reply(SmtpOutMsg *SendMsg)
{
+ AsyncIO *IO = &SendMsg->IO;
SMTP_DBG_READ();
if (SMTP_IS_STATE('2')) {
eNextState STMPC_send_HELO(SmtpOutMsg *SendMsg)
{
+ AsyncIO *IO = &SendMsg->IO;
StrBufPrintf(SendMsg->IO.SendBuf.Buf,
"HELO %s\r\n", config.c_fqdn);
eNextState SMTPC_read_HELO_reply(SmtpOutMsg *SendMsg)
{
+ AsyncIO *IO = &SendMsg->IO;
SMTP_DBG_READ();
if (!SMTP_IS_STATE('2')) {
eNextState SMTPC_send_auth(SmtpOutMsg *SendMsg)
{
+ AsyncIO *IO = &SendMsg->IO;
char buf[SIZ];
char encoded[1024];
eNextState SMTPC_read_auth_reply(SmtpOutMsg *SendMsg)
{
+ AsyncIO *IO = &SendMsg->IO;
/* Do an AUTH command if necessary */
SMTP_DBG_READ();
eNextState SMTPC_send_FROM(SmtpOutMsg *SendMsg)
{
+ AsyncIO *IO = &SendMsg->IO;
/* previous command succeeded, now try the MAIL FROM: command */
StrBufPrintf(SendMsg->IO.SendBuf.Buf,
"MAIL FROM:<%s>\r\n",
eNextState SMTPC_read_FROM_reply(SmtpOutMsg *SendMsg)
{
+ AsyncIO *IO = &SendMsg->IO;
SMTP_DBG_READ();
if (!SMTP_IS_STATE('2')) {
eNextState SMTPC_send_RCPT(SmtpOutMsg *SendMsg)
{
+ AsyncIO *IO = &SendMsg->IO;
/* MAIL succeeded, now try the RCPT To: command */
StrBufPrintf(SendMsg->IO.SendBuf.Buf,
"RCPT TO:<%s@%s>\r\n",
eNextState SMTPC_read_RCPT_reply(SmtpOutMsg *SendMsg)
{
+ AsyncIO *IO = &SendMsg->IO;
SMTP_DBG_READ();
if (!SMTP_IS_STATE('2')) {
eNextState SMTPC_send_DATAcmd(SmtpOutMsg *SendMsg)
{
+ AsyncIO *IO = &SendMsg->IO;
/* RCPT succeeded, now try the DATA command */
StrBufPlain(SendMsg->IO.SendBuf.Buf,
HKEY("DATA\r\n"));
eNextState SMTPC_read_DATAcmd_reply(SmtpOutMsg *SendMsg)
{
+ AsyncIO *IO = &SendMsg->IO;
SMTP_DBG_READ();
if (!SMTP_IS_STATE('3')) {
eNextState SMTPC_read_data_body_reply(SmtpOutMsg *SendMsg)
{
+ AsyncIO *IO = &SendMsg->IO;
SMTP_DBG_READ();
if (!SMTP_IS_STATE('2')) {
eNextState SMTPC_send_QUIT(SmtpOutMsg *SendMsg)
{
+ AsyncIO *IO = &SendMsg->IO;
StrBufPlain(SendMsg->IO.SendBuf.Buf,
HKEY("QUIT\r\n"));
eNextState SMTPC_read_QUIT_reply(SmtpOutMsg *SendMsg)
{
+ AsyncIO *IO = &SendMsg->IO;
SMTP_DBG_READ();
- syslog(LOG_INFO, "SMTP client[%ld]: delivery to <%s> @ <%s> (%s) succeeded\n",
- SendMsg->n, SendMsg->user, SendMsg->node, SendMsg->name);
+ EV_syslog(LOG_INFO, "SMTP client[%ld]: delivery to <%s> @ <%s> (%s) succeeded\n",
+ SendMsg->n, SendMsg->user, SendMsg->node, SendMsg->name);
return eTerminateConnection;
}
int smtp_resolve_recipients(SmtpOutMsg *SendMsg)
{
+ AsyncIO *IO = &SendMsg->IO;
const char *ptr;
char buf[1024];
int scan_done;
int lp, rp;
int i;
- syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
+ EV_syslog(LOG_DEBUG, "SMTP: %s\n", __FUNCTION__);
if ((SendMsg==NULL) ||
(SendMsg->MyQEntry == NULL) ||
SendMsg->node,
SendMsg->name);
- syslog(LOG_DEBUG, "SMTP client[%ld]: Attempting delivery to <%s> @ <%s> (%s)\n",
- SendMsg->n, SendMsg->user, SendMsg->node, SendMsg->name);
+ EV_syslog(LOG_DEBUG, "SMTP client[%ld]: Attempting delivery to <%s> @ <%s> (%s)\n",
+ SendMsg->n, SendMsg->user, SendMsg->node, SendMsg->name);
/* If no envelope_from is supplied, extract one from the message */
SendMsg->envelope_from = ChrPtr(SendMsg->MyQItem->EnvelopeFrom);
if ( (SendMsg->envelope_from == NULL) ||