client.h revision d77f679dac93f2416d6b04299b1a8154941036dd
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen#ifndef CLIENT_H
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen#define CLIENT_H
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen#include "net.h"
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen#include "client-common.h"
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen#include "auth-client.h"
6ef7e31619edfaa17ed044b45861d106a86191efTimo Sirainen
503a863a317acba125a4e46435694e35fad769e4Timo Sirainenenum pop3_proxy_state {
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen POP3_PROXY_BANNER = 0,
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen POP3_PROXY_STARTTLS,
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen POP3_PROXY_XCLIENT,
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen POP3_PROXY_LOGIN1,
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen POP3_PROXY_LOGIN2,
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen POP3_PROXY_STATE_COUNT
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen};
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen
503a863a317acba125a4e46435694e35fad769e4Timo Sirainenstruct pop3_client {
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen struct client common;
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen char *last_user;
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen char *apop_challenge;
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen unsigned int apop_server_pid, apop_connect_uid;
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen bool proxy_xclient;
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen};
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen
503a863a317acba125a4e46435694e35fad769e4Timo Sirainenenum pop3_cmd_reply {
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen POP3_CMD_REPLY_OK,
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen POP3_CMD_REPLY_ERROR,
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen POP3_CMD_REPLY_AUTH_ERROR,
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen POP3_CMD_REPLY_TEMPFAIL
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen};
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen
503a863a317acba125a4e46435694e35fad769e4Timo Sirainenvoid client_send_reply(struct client *client, enum pop3_cmd_reply reply,
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen const char *text);
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen#endif
503a863a317acba125a4e46435694e35fad769e4Timo Sirainen