client-common.h revision 2dfd08e8aa16dfcc975d8a62bc8d20b2ef849d71
2686ef87921233609d1d8ec8dee2883facc2c5ebTimo Sirainen#include "master-login.h" /* for LOGIN_MAX_SESSION_ID_LEN */
2686ef87921233609d1d8ec8dee2883facc2c5ebTimo Sirainen/* max. size of input buffer. this means:
2686ef87921233609d1d8ec8dee2883facc2c5ebTimo Sirainen IMAP: Max. length of command's all parameters. SASL-IR is read into
2686ef87921233609d1d8ec8dee2883facc2c5ebTimo Sirainen a separate larger buffer.
2686ef87921233609d1d8ec8dee2883facc2c5ebTimo Sirainen POP3: Max. length of a command line (spec says 512 would be enough)
2686ef87921233609d1d8ec8dee2883facc2c5ebTimo Sirainen (MASTER_AUTH_MAX_DATA_SIZE - LOGIN_MAX_MASTER_PREFIX_LEN - \
2686ef87921233609d1d8ec8dee2883facc2c5ebTimo Sirainen/* max. size of output buffer. if it gets full, the client is disconnected.
2686ef87921233609d1d8ec8dee2883facc2c5ebTimo Sirainen SASL authentication gives the largest output. */
2686ef87921233609d1d8ec8dee2883facc2c5ebTimo Sirainen/* Max. length of SASL authentication buffer. */
2686ef87921233609d1d8ec8dee2883facc2c5ebTimo Sirainen/* Disconnect client after this many milliseconds if it hasn't managed
2686ef87921233609d1d8ec8dee2883facc2c5ebTimo Sirainen to log in yet. */
2686ef87921233609d1d8ec8dee2883facc2c5ebTimo Sirainen#define CLIENT_LOGIN_TIMEOUT_MSECS (MASTER_LOGIN_TIMEOUT_SECS*1000)
2686ef87921233609d1d8ec8dee2883facc2c5ebTimo Sirainen "Waiting for authentication process to respond.."
2686ef87921233609d1d8ec8dee2883facc2c5ebTimo Sirainen "Waiting for authentication master process to respond.."
c076ad69e28e7d41af83ada84e12019793ffcfa2Timo Sirainen /* for proxying */
c076ad69e28e7d41af83ada84e12019793ffcfa2Timo Sirainen unsigned int port;
c076ad69e28e7d41af83ada84e12019793ffcfa2Timo Sirainen void (*create)(struct client *client, void **other_sets);
c076ad69e28e7d41af83ada84e12019793ffcfa2Timo Sirainen void (*notify_auth_ready)(struct client *client);
c076ad69e28e7d41af83ada84e12019793ffcfa2Timo Sirainen void (*notify_disconnect)(struct client *client,
c076ad69e28e7d41af83ada84e12019793ffcfa2Timo Sirainen const char *text);
c076ad69e28e7d41af83ada84e12019793ffcfa2Timo Sirainen void (*notify_starttls)(struct client *client,
c076ad69e28e7d41af83ada84e12019793ffcfa2Timo Sirainen void (*auth_send_challenge)(struct client *client, const char *data);
c076ad69e28e7d41af83ada84e12019793ffcfa2Timo Sirainen void (*auth_parse_response)(struct client *client);
c076ad69e28e7d41af83ada84e12019793ffcfa2Timo Sirainen const char *text);
c076ad69e28e7d41af83ada84e12019793ffcfa2Timo Sirainen int (*proxy_parse_line)(struct client *client, const char *line);
2686ef87921233609d1d8ec8dee2883facc2c5ebTimo Sirainen void (*proxy_error)(struct client *client, const char *text);
struct client_vfuncs v;
int refcount;
int fd;
unsigned char *master_data_prefix;
unsigned int master_data_prefix_len;
unsigned int proxy_state;
unsigned int proxy_ttl;
char *auth_mech_name;
const char *sasl_final_resp;
const char *const *auth_passdb_args;
unsigned int master_auth_id;
unsigned int master_tag;
unsigned int bad_counter;
struct client *
void **other_sets);
const char *text);
const char *init_resp);
void clients_notify_auth_connected(void);
void client_destroy_oldest(void);
void clients_destroy_all(void);