Mercurial > dovecot > core-2.2
view src/imap-urlauth/imap-urlauth-client.h @ 15066:d419aac7ab31
Added support for IMAP URLAUTH and URLAUTH=BINARY extensions
Extends imap service with URLAUTH and URLAUTH=BINARY support:
- Adds new commands URLFETCH, GENURLAUTH and RESETKEY.
Creates imap-urlauth service in src/imap-urlauth.
Functionality common to both the imap and imap-urlauth services is located
in src/lib-imap-urlauth.
TODO:
- use mailbox GUIDs instead of names
- doveadm command to delete stale urlauth entries?
- add delay when attempting to access nonexistent user
- create urlauth-worker queue, similar to how indexer-worker works
(could we share code?..)
author | Stephan Bosch <stephan@rename-it.nl> |
---|---|
date | Sat, 15 Sep 2012 23:57:08 +0300 |
parents | |
children |
line wrap: on
line source
#ifndef IMAP_URLAUTH_CLIENT_H #define IMAP_URLAUTH_CLIENT_H struct client; struct mail_storage; enum imap_urlauth_worker_state { IMAP_URLAUTH_WORKER_STATE_INACTIVE = 0, IMAP_URLAUTH_WORKER_STATE_CONNECTED, IMAP_URLAUTH_WORKER_STATE_ACTIVE, }; struct client { struct client *prev, *next; int fd_in, fd_out, fd_ctrl; struct io *ctrl_io; struct ostream *output, *ctrl_output; struct istream *ctrl_input; struct timeout *to_idle; char *username; ARRAY_TYPE(const_string) access_apps; /* settings: */ const struct imap_urlauth_settings *set; enum imap_urlauth_worker_state worker_state; unsigned int disconnected:1; }; extern struct client *imap_urlauth_clients; extern unsigned int imap_urlauth_client_count; int client_create(const char *username, int fd_in, int fd_out, const struct imap_urlauth_settings *set, struct client **client_r); void client_destroy(struct client *client, const char *reason); void client_send_line(struct client *client, const char *fmt, ...) ATTR_FORMAT(2, 3); void client_disconnect(struct client *client, const char *reason); void clients_destroy_all(void); #endif