Пример #1
0
eNextState POP3C_ReadMessageBody(pop3aggr *RecvMsg)
{
	AsyncIO *IO = &RecvMsg->IO;
	EVP3CM_syslog(LOG_DEBUG, "Converting message...");
	RecvMsg->CurrMsg->Msg =
		convert_internet_message_buf(&RecvMsg->IO.ReadMsg->MsgBuf);
	return EventQueueDBOperation(&RecvMsg->IO, POP3C_SaveMsg, 0);
}
Пример #2
0
eNextState POP3C_GetOneMessagID(pop3aggr *RecvMsg)
{
	AsyncIO *IO = &RecvMsg->IO;
	long HKLen;
	const char *HKey;
	void *vData;

	SetPOP3State(IO, eGetMsgID);
#if 0
	int rc;
	rc = TestValidateHash(RecvMsg->MsgNumbers);
	if (rc != 0)
		EVP3CCS_syslog(LOG_DEBUG, "Hash Invalid: %d\n", rc);
#endif
	if((RecvMsg->Pos != NULL) &&
	   GetNextHashPos(RecvMsg->MsgNumbers,
			  RecvMsg->Pos,
			  &HKLen, &HKey,
			  &vData))
	{
		RecvMsg->CurrMsg = (FetchItem*) vData;
		/* Find out the UIDL of the message,
		 * to determine whether we've already downloaded it */
		StrBufPrintf(RecvMsg->IO.SendBuf.Buf,
			     "UIDL %ld\r\n", RecvMsg->CurrMsg->MSGID);
		POP3C_DBG_SEND();
	}
	else
	{
		RecvMsg->State++;
		DeleteHashPos(&RecvMsg->Pos);
		/// done receiving uidls.. start looking them up now.
		RecvMsg->Pos = GetNewHashPos(RecvMsg->MsgNumbers, 0);
		return EventQueueDBOperation(&RecvMsg->IO,
					     POP3_FetchNetworkUsetableEntry,
					     0);
	}
	return eReadMore; /* TODO */
}
Пример #3
0
eNextState FinalizeMessageSend(SmtpOutMsg *Msg)
{
	/* hand over to DB Queue */
	return EventQueueDBOperation(&Msg->IO, FinalizeMessageSend_DB, 0);
}