client.h revision 339726ad7f9f8b787ced3cd12042d0c29938de3d
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher#ifndef CLIENT_H
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher#define CLIENT_H
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher
1008001f34abb42df75f840db17f14a83f0c21d4Stephen Gallagher#include "net.h"
b355dcb54194f498921743ca33304eac35d89718Stephen Gallagher#include "client-common.h"
b355dcb54194f498921743ca33304eac35d89718Stephen Gallagher#include "auth-client.h"
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagherenum pop3_proxy_state {
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher POP3_PROXY_BANNER = 0,
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher POP3_PROXY_STARTTLS,
524ceecc11f3d458eb3c1cf1489c3ff6ccb22226Jakub Hrozek POP3_PROXY_XCLIENT,
7a14e8f66c0e932fe2954d792614a3b61d444bd1Jakub Hrozek POP3_PROXY_LOGIN1,
7797e361155f7ce937085fd98e360469d7baf1b6Jakub Hrozek POP3_PROXY_LOGIN2,
64a424ec1b268427822c646f7781e26e56c197f6Jakub Hrozek
2ea6196484055397cc4bc011c5960f790431fa9dStephen Gallagher POP3_PROXY_STATE_COUNT
1008001f34abb42df75f840db17f14a83f0c21d4Stephen Gallagher};
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagherstruct pop3_client {
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher struct client common;
7a14e8f66c0e932fe2954d792614a3b61d444bd1Jakub Hrozek
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher char *last_user;
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher char *apop_challenge;
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher unsigned int apop_server_pid, apop_connect_uid;
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher enum pop3_proxy_state proxy_state;
65a9065538fd85e6ead925d344e6b421900eb8c2Jakub Hrozek bool proxy_xclient;
65a9065538fd85e6ead925d344e6b421900eb8c2Jakub Hrozek};
65a9065538fd85e6ead925d344e6b421900eb8c2Jakub Hrozek
65a9065538fd85e6ead925d344e6b421900eb8c2Jakub Hrozekenum pop3_cmd_reply {
65a9065538fd85e6ead925d344e6b421900eb8c2Jakub Hrozek POP3_CMD_REPLY_OK,
2ea6196484055397cc4bc011c5960f790431fa9dStephen Gallagher POP3_CMD_REPLY_ERROR,
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher POP3_CMD_REPLY_AUTH_ERROR,
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher POP3_CMD_REPLY_TEMPFAIL
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher};
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallaghervoid client_send_reply(struct client *client, enum pop3_cmd_reply reply,
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher const char *text);
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher#endif
6b0f9cd2ee601121cb7fe1d9ad8ebce782aa8f39Stephen Gallagher