Commit e7e57682 e7e576828a5f32b588b9ad6a74422a7f498133d1 by Alain Magloire

added declaration for mu_pop3_stls()

New states to deal with STLS
1 parent d63c7846
......@@ -44,6 +44,8 @@ extern int mu_pop3_set_debug (mu_pop3_t pop3, void (*print) __P((const char
extern int mu_pop3_apop (mu_pop3_t pop3, const char *name, const char *digest);
extern int mu_pop3_stls (mu_pop3_t pop3);
/* It is the responsability of the caller to call list_destroy() when done
with the list. The item in the list is of type "const char *",
no processing is done on the item except the removal of the trailing newline. */
......
......@@ -45,6 +45,7 @@ enum mu_pop3_state
MU_POP3_RETR, MU_POP3_RETR_ACK, MU_POP3_RETR_RX,
MU_POP3_RSET, MU_POP3_RSET_ACK,
MU_POP3_STAT, MU_POP3_STAT_ACK,
MU_POP3_STLS, MU_POP3_STLS_ACK, MU_POP3_STLS_CONNECT,
MU_POP3_TOP, MU_POP3_TOP_ACK, MU_POP3_TOP_RX,
MU_POP3_UIDL, MU_POP3_UIDL_ACK, MU_POP3_UIDL_RX,
MU_POP3_USER, MU_POP3_USER_ACK,
......@@ -53,40 +54,40 @@ enum mu_pop3_state
/* Structure holding the data necessary to do proper buffering. */
struct mu_pop3_work_buf
{
char *buf;
char *ptr;
char *nl;
size_t len;
off_t offset; /* To synchronize with the stream buffering. */
};
{
char *buf;
char *ptr;
char *nl;
size_t len;
off_t offset; /* To synchronize with the stream buffering. */
};
/* Structure to hold things general to POP3 mailbox, like its state, etc ... */
struct _mu_pop3
{
/* Working I/O buffer.
io.buf: Working io buffer
io.ptr: Points to the end of the buffer, the non consumed chars
io.nl: Points to the '\n' char in the string
io.len: Len of io_buf. */
struct mu_pop3_work_buf io;
/* Holds the first line response of the last command, i.e the ACK:
ack.buf: Buffer for the ack
ack.ptr: Working pointer, indicate the start of the non consumed chars
ack.len: Size 512 according to RFC2449. */
struct mu_pop3_work_buf ack;
int acknowledge;
char *timestamp; /* For apop, if supported. */
unsigned timeout; /* Default is 10 minutes. */
void (*debug)(const char *log); /* function to print debug long. */
enum mu_pop3_state state; /* Indicate the state of the running command. */
stream_t carrier; /* TCP Connection. */
};
{
/* Working I/O buffer.
io.buf: Working io buffer
io.ptr: Points to the end of the buffer, the non consumed chars
io.nl: Points to the '\n' char in the string
io.len: Len of io_buf. */
struct mu_pop3_work_buf io;
/* Holds the first line response of the last command, i.e the ACK:
ack.buf: Buffer for the ack
ack.ptr: Working pointer, indicate the start of the non consumed chars
ack.len: Size 512 according to RFC2449. */
struct mu_pop3_work_buf ack;
int acknowledge;
char *timestamp; /* For apop, if supported. */
unsigned timeout; /* Default is 10 minutes. */
void (*debug)(const char *log); /* function to print debug long. */
enum mu_pop3_state state; /* Indicate the state of the running command. */
stream_t carrier; /* TCP Connection. */
};
extern int mu_pop3_debug_cmd (mu_pop3_t);
extern int mu_pop3_debug_ack (mu_pop3_t);
......