Qsmtp  0.37
Macros | Functions | Variables
queue.c File Reference

functions for communication with qmail-queue More...

#include <qsmtpd/queue.h>
#include <fmt.h>
#include <log.h>
#include <netio.h>
#include <qsmtpd/antispam.h>
#include <qsmtpd/qsmtpd.h>
#include <sstring.h>
#include <tls.h>
#include <errno.h>
#include <strings.h>
#include <syslog.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>

Macros

#define WRITE(buf, len)
 

Functions

static int err_pipe (void)
 
static int err_fork (void)
 
void queue_reset (void)
 reset queue descriptors
 
int queue_init (void)
 set up communication with queueing process More...
 
int queue_envelope (const unsigned long msgsize, const int chunked)
 write the envelope data to qmail-queue and syslog More...
 
int queue_result (void)
 check if queueing process accepted the mail More...
 

Variables

static const char noqueue [] = "451 4.3.2 can not connect to queue\r\n"
 
static pid_t qpid
 
int queuefd_data = -1
 
int queuefd_hdr = -1
 

Detailed Description

functions for communication with qmail-queue

Macro Definition Documentation

◆ WRITE

#define WRITE (   buf,
  len 
)
Value:
do { \
if ( (rc = write(queuefd_hdr, buf, len)) < 0 ) { \
goto err_write; \
} \
} while (0)

Function Documentation

◆ queue_envelope()

int queue_envelope ( const unsigned long  msgsize,
const int  chunked 
)

write the envelope data to qmail-queue and syslog

Parameters
msgsizesize of the received message in bytes
chunkedif message was transferred using BDAT
Returns
if writing the envelope was successful
Return values
0envelope was written to queue
-1an error occurred (errno is set)

◆ queue_init()

int queue_init ( void  )

set up communication with queueing process

Returns
if queue was setup
Return values
0queueing process is running and awaiting input
>0error code

◆ queue_result()

int queue_result ( void  )

check if queueing process accepted the mail

Returns
if mail was successfully written to queue
Return values
0mail is in queue
>0error code

Variable Documentation

◆ queuefd_data

int queuefd_data = -1

descriptor to send message data to qmail-queue

◆ queuefd_hdr

int queuefd_hdr = -1

descriptor to send header data to qmail-queue

queuefd_hdr
int queuefd_hdr
Definition: queue.c:25