diff --git a/src/adldap/ad_interface.cpp b/src/adldap/ad_interface.cpp index c473c05c..b3b83cb8 100644 --- a/src/adldap/ad_interface.cpp +++ b/src/adldap/ad_interface.cpp @@ -92,6 +92,7 @@ void *AdInterfacePrivate::s_sasl_nocanon = LDAP_OPT_ON; int AdInterfacePrivate::s_port = 0; CertStrategy AdInterfacePrivate::s_cert_strat = CertStrategy_Never; SMBCCTX *AdInterfacePrivate::smbc = NULL; +QMutex AdInterfacePrivate::mutex; void get_auth_data_fn(const char *pServer, const char *pShare, char *pWorkgroup, int maxLenWorkgroup, char *pUsername, int maxLenUsername, char *pPassword, int maxLenPassword) { UNUSED_ARG(pServer); @@ -327,7 +328,9 @@ void AdInterface::set_cert_strategy(const CertStrategy strategy) { } AdInterfacePrivate::AdInterfacePrivate(AdInterface *q_arg) { + mutex.lock(); q = q_arg; + mutex.unlock(); } bool AdInterface::is_connected() const { diff --git a/src/adldap/ad_interface_p.h b/src/adldap/ad_interface_p.h index 657927a5..ecfbc3fb 100644 --- a/src/adldap/ad_interface_p.h +++ b/src/adldap/ad_interface_p.h @@ -23,6 +23,7 @@ #include #include +#include class AdInterface; class AdConfig; @@ -34,6 +35,7 @@ class AdInterfacePrivate { Q_DECLARE_TR_FUNCTIONS(AdInterfacePrivate) friend AdInterface; + static QMutex mutex; public: AdInterfacePrivate(AdInterface *q);