client-common.h revision 28dae6a0064e79f86da091625b0f2b92336a2a91
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen/* max. size of input buffer. this means:
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen IMAP: Max. length of a single parameter
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen POP3: Max. length of a command line (spec says 512 would be enough)
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen/* max. size of output buffer. if it gets full, the client is disconnected.
2615df45a8027948a474abe5e817b34b0499c171Timo Sirainen SASL authentication gives the largest output. */
f7539a17ea306191b53b8f5e752e228937df9ec3Timo Sirainen/* Disconnect client after this many milliseconds if it hasn't managed
f7539a17ea306191b53b8f5e752e228937df9ec3Timo Sirainen to log in yet. */
f7539a17ea306191b53b8f5e752e228937df9ec3Timo Sirainen#define CLIENT_LOGIN_TIMEOUT_MSECS (MASTER_LOGIN_TIMEOUT_SECS*1000)
f7539a17ea306191b53b8f5e752e228937df9ec3Timo Sirainen "Waiting for authentication process to respond.."
f7539a17ea306191b53b8f5e752e228937df9ec3Timo Sirainen "Waiting for authentication master process to respond.."
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen /* for proxying */
1d2b188f0eedc3cab6e27ceac5425a037f38042eTimo Sirainen unsigned int port;
1d2b188f0eedc3cab6e27ceac5425a037f38042eTimo Sirainen void (*create)(struct client *client, void **other_sets);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen void (*send_line)(struct client *client, enum client_cmd_reply reply,
ca98892a6b8a30ffc1fe26fcf02c7d59e3204e7eTimo Sirainen const char *text);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainen bool (*auth_handle_reply)(struct client *client,
ca98892a6b8a30ffc1fe26fcf02c7d59e3204e7eTimo Sirainen void (*auth_send_challenge)(struct client *client, const char *data);
1d2b188f0eedc3cab6e27ceac5425a037f38042eTimo Sirainen int (*auth_parse_response)(struct client *client);
1d2b188f0eedc3cab6e27ceac5425a037f38042eTimo Sirainen int (*proxy_parse_line)(struct client *client, const char *line);
3d6fdafca17c073606b63745ca8638e035e871f4Timo Sirainen char *proxy_user, *proxy_master_user, *proxy_password;
09c08fad8e7cc694a6c8d1711e67839acd3a2f04Timo Sirainen const struct login_settings *set, void **other_sets,
438f12d7a776da695019114884b48188d94613efTimo Sirainen const struct ip_addr *local_ip, const struct ip_addr *remote_ip);
17ad2164c747cedbf81dae1893063e71a3df0356Timo Sirainenvoid client_destroy(struct client *client, const char *reason);
9ffdc9d18870acef2e4dde99715d8528ff4b080dTimo Sirainenvoid client_destroy_success(struct client *client, const char *reason);
61b0637759146621cbb7edcbd0b03a71cfd66dfeTimo Sirainenvoid client_destroy_internal_failure(struct client *client);
62041dfb7d6ac6e9c633a557075999cdfcff7bd5Timo Sirainenvoid client_cmd_starttls(struct client *client);
62041dfb7d6ac6e9c633a557075999cdfcff7bd5Timo Sirainenunsigned int clients_get_count(void) ATTR_PURE;
c0d069950af1dbc6a4e5c3de3bf2e437796e3ae0Timo Sirainenvoid client_log(struct client *client, const char *msg);
c0d069950af1dbc6a4e5c3de3bf2e437796e3ae0Timo Sirainenvoid client_log_err(struct client *client, const char *msg);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenconst char *client_get_extra_disconnect_reason(struct client *client);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenvoid client_auth_failed(struct client *client);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenvoid client_send_line(struct client *client, enum client_cmd_reply reply,
ecdce39e5ef4b62eefa9f5818f17d153fd5d710aTimo Sirainen const char *text);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenvoid client_send_raw_data(struct client *client, const void *data, size_t size);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenvoid client_send_raw(struct client *client, const char *data);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenvoid client_set_auth_waiting(struct client *client);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenvoid client_auth_send_challenge(struct client *client, const char *data);
e3aeeb634245e80d4f643f8d2eea11d6b72336d8Timo Sirainenint client_auth_parse_response(struct client *client);
e3aeeb634245e80d4f643f8d2eea11d6b72336d8Timo Sirainenint client_auth_begin(struct client *client, const char *mech_name,
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenbool client_check_plaintext_auth(struct client *client, bool pass_sent);
c6a57378d3c54988f525f81e19c0c5d132a0770dTimo Sirainenvoid client_proxy_finish_destroy_client(struct client *client);
1460ef7a18c53216ddb4a94bb62fba96076aae8eTimo Sirainenvoid client_proxy_log_failure(struct client *client, const char *line);
1460ef7a18c53216ddb4a94bb62fba96076aae8eTimo Sirainenvoid client_proxy_failed(struct client *client, bool send_line);