ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainen#ifndef IMAP_LOGIN_COMMANDS_H
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainen#define IMAP_LOGIN_COMMANDS_H
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainen
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainenstruct imap_arg;
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainenstruct imap_client;
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainen
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainentypedef int imap_login_command_t(struct imap_client *client,
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainen const struct imap_arg *args);
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainen
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainenstruct imap_login_command {
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainen const char *name;
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainen imap_login_command_t *func;
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainen};
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainen
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainenstruct imap_login_command *imap_login_command_lookup(const char *name);
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainen
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainenvoid imap_login_commands_register(const struct imap_login_command *commands,
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainen unsigned int count);
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainenvoid imap_login_commands_unregister(const struct imap_login_command *commands,
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainen unsigned int count);
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainen
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainenvoid imap_login_commands_init(void);
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainenvoid imap_login_commands_deinit(void);
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainen
ba7db1e008078bfbed489e17bee00309e0a7b1f0Timo Sirainen#endif