27#ifndef PDCOM5_SIMPLELOGINMANAGER_H
28#define PDCOM5_SIMPLELOGINMANAGER_H
30#include "pdcom5-sasl_export.h"
33#include <pdcom5/Sasl.h>
37extern "C" struct sasl_callback;
41class SimpleLoginManager;
57class PDCOM5_SASL_EXPORT SimpleLoginManager :
public Sasl
59 friend class impl::SimpleLoginManager;
60 std::unique_ptr<impl::SimpleLoginManager> impl_;
61 void loginReply(
const char *mechlist,
const char *serverData,
int finished)
84 const char *remote_host,
85 sasl_callback *additional_callbacks =
nullptr);
86 SimpleLoginManager(SimpleLoginManager &&) noexcept;
87 SimpleLoginManager &operator=(SimpleLoginManager &&) noexcept;
168 virtual void log(
int level,
const char *message);
void logout()
Logout from server.
Wrapper for Cyrus SASL library.
Definition SimpleLoginManager.h:58
virtual std::string getOption(const char *, const char *)
SASL get option callback.
Definition SimpleLoginManager.h:144
SimpleLoginManager(const char *remote_host, sasl_callback *additional_callbacks=nullptr)
Constructor.
virtual std::string getPassword()
Callback to get password.
Definition SimpleLoginManager.h:134
virtual std::string getAuthname()
Callback to get login name.
Definition SimpleLoginManager.h:131
static void InitLibrary(const char *plugin_path=nullptr)
Sasl global initialization.
LoginResult
Result of login operation.
Definition SimpleLoginManager.h:99
@ NoSaslMechanism
No matching SASL Mechanism found on client machine.
Definition SimpleLoginManager.h:103
virtual std::string getRealm(const std::vector< const char * > &)
Callback to get realm.
Definition SimpleLoginManager.h:138
bool login()
Perform SASL login step.
virtual void log(int level, const char *message)
Log callback.
virtual std::string interact(unsigned long, const char *, const char *, const char *)
SASL interact callback.
Definition SimpleLoginManager.h:149
static void FinalizeLibrary()
Sasl global finalization.
virtual void completed(LoginResult result)=0
Authentification completed callback.
Exception for callback cancelation.
Definition SimpleLoginManager.h:96