1 #ifndef SASL_SERVER_H 2 #define SASL_SERVER_H 3 4 struct client; 5 6 enum sasl_server_reply { 7 SASL_SERVER_REPLY_SUCCESS, 8 SASL_SERVER_REPLY_AUTH_FAILED, 9 SASL_SERVER_REPLY_AUTH_ABORTED, 10 SASL_SERVER_REPLY_MASTER_FAILED, 11 SASL_SERVER_REPLY_CONTINUE 12 }; 13 14 typedef void sasl_server_callback_t(struct client *client, 15 enum sasl_server_reply reply, 16 const char *data, const char *const *args); 17 18 const struct auth_mech_desc * 19 sasl_server_get_advertised_mechs(struct client *client, unsigned int *count_r); 20 const struct auth_mech_desc * 21 sasl_server_find_available_mech(struct client *client, const char *name); 22 23 void sasl_server_auth_begin(struct client *client, 24 const char *service, const char *mech_name, 25 bool private, const char *initial_resp_base64, 26 sasl_server_callback_t *callback); 27 void sasl_server_auth_failed(struct client *client, const char *reason, 28 const char *code) ATTR_NULL(3); 29 void sasl_server_auth_abort(struct client *client); 30 31 #endif 32