pthread_mutex_t ActiveQItemsLock;
HashList *ActiveQItems = NULL;
HashList *QItemHandlers = NULL;
+const unsigned short DefaultMXPort = 25;
int max_sessions_for_outbound_smtp = 500; /* how many sessions might be active till we stop adding more smtp jobs */
int ndelay_count = 50; /* every n queued messages we will sleep... */
int delay_msec = 5000; /* this many seconds. */
if (Item->MailQEntries == NULL)
Item->MailQEntries = NewHash(1, Flathash);
- Item->Current->StatusMessage = NewStrBuf();
+ /* alocate big buffer so we won't get problems reallocating later. */
+ Item->Current->StatusMessage = NewStrBufPlain(NULL, SIZ);
Item->Current->n = GetCount(Item->MailQEntries);
Put(Item->MailQEntries,
IKEY(Item->Current->n),
!IsEmptyStr(Pos)))
{
StrBufExtract_NextToken(One, All, &Pos, '|');
- if (!ParseURL(Url, One, 25)) {
+ if (!ParseURL(Url, One, DefaultMXPort)) {
SMTPC_syslog(LOG_DEBUG,
"Failed to parse: %s\n",
ChrPtr(One));
!IsEmptyStr(Pos)))
{
StrBufExtract_NextToken(One, All, &Pos, '|');
- if (!ParseURL(Url, One, 25)) {
+ if (!ParseURL(Url, One, DefaultMXPort)) {
SMTPC_syslog(LOG_DEBUG,
"Failed to parse: %s\n",
ChrPtr(One));
* Run through the queue sending out messages.
*/
void smtp_do_queue(void) {
- static int is_running = 0;
int num_processed = 0;
int num_activated = 0;
- if (is_running)
- return; /* Concurrency check - only one can run */
- is_running = 1;
-
pthread_setspecific(MyConKey, (void *)&smtp_queue_CC);
SMTPCM_syslog(LOG_INFO, "processing outbound queue");
"queue run completed; %d messages processed %d activated",
num_processed, num_activated);
- run_queue_now = 0;
- is_running = 0;
}