User: vg Date: 05/02/21 04:32:26 Modified: /dba/connectivity/source/drivers/mozab/mozillasrc/ MQuery.cxx
Log: INTEGRATION: CWS mozab05 (1.13.46); FILE MERGED 2005/01/27 11:30:12 windly 1.13.46.3: #i41444# mozab crash on solaris sparc 2005/01/24 07:49:06 windly 1.13.46.2: #i20088# add thunderbird support 2005/01/17 05:30:55 windly 1.13.46.1: #i20088# Detect Mozilla Thunderbird Address Book: patchs for connectivity File Changes: Directory: /dba/connectivity/source/drivers/mozab/mozillasrc/ ============================================================= File [changed]: MQuery.cxx Url: http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/mozab/mozillasrc/MQuery.cxx?r1=1.13&r2=1.14 Delta lines: +54 -24 --------------------- --- MQuery.cxx 25 Jun 2004 18:33:31 -0000 1.13 +++ MQuery.cxx 21 Feb 2005 12:32:23 -0000 1.14 @@ -77,6 +77,11 @@ #ifndef _CONNECTIVITY_MAB_MOZABHELPER_HXX_ #include "MNSMozabProxy.hxx" #endif +#include <com/sun/star/uno/Reference.hxx> +#include <unotools/processfactory.hxx> +#ifndef _COM_SUN_STAR_MOZILLA_XMOZILLABOOTSTRAP_HPP_ +#include <com/sun/star/mozilla/XMozillaBootstrap.hpp> +#endif #if OSL_DEBUG_LEVEL > 0 # define OUtoCStr( x ) ( ::rtl::OUStringToOString ( (x), RTL_TEXTENCODING_ASCII_US).getStr()) @@ -407,6 +412,8 @@ const char *pAddressBook = MTypeConverter::ouStringToCCharStringAscii(nameAB.getStr()); prefName.Append(pAddressBook); + if (bindDN.getLength()) + { nsCAutoString bindPrefName=prefName; bindPrefName.Append(NS_LITERAL_CSTRING(".auth.dn")); rv = prefs->SetCharPref (bindPrefName.get(), @@ -418,14 +425,34 @@ rv = prefs->SetCharPref (pwdPrefName.get(), MTypeConverter::ouStringToCCharStringAscii( password.getStr() ) ); NS_ENSURE_SUCCESS(rv, rv); - + } + if (useSSL) + { nsCAutoString sslPrefName=prefName; sslPrefName.Append(NS_LITERAL_CSTRING(".UseSSL")); rv = prefs->SetBoolPref (sslPrefName.get(),useSSL); NS_ENSURE_SUCCESS(rv, rv); + } return rv; } +//determine whether current profile is locked,any error will lead to return true +sal_Bool isProfileLocked(OConnection* _pCon) +{ + ::com::sun::star::uno::Reference< ::com::sun::star::mozilla::XMozillaBootstrap > xMozillaBootstrap; + ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > xFactory = ::comphelper::getProcessServiceFactory(); + OSL_ENSURE( xFactory.is(), "can't get service factory" ); + + ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > xInstance = xFactory->createInstance(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.mozilla.MozillaBootstrap")) ); + OSL_ENSURE( xInstance.is(), "failed to create instance" ); + xMozillaBootstrap = ::com::sun::star::uno::Reference< ::com::sun::star::mozilla::XMozillaBootstrap >(xInstance,::com::sun::star::uno::UNO_QUERY); + if (_pCon) + return xMozillaBootstrap->isProfileLocked(_pCon->getProduct(),_pCon->getMozProfile()); + else + return xMozillaBootstrap->isCurrentProfileLocked(); +} + + // ------------------------------------------------------------------------- sal_Int32 getDirectoryType(const nsIAbDirectory* directory) { @@ -483,7 +510,7 @@ args.arg1 = (void*)m_aQueryHelper; args.arg2 = (void*)&rowIndex; args.arg3 = (void*)m_aQueryDirectory->directory; - nsresult rv = xMProxy.StartProxy(&args); + nsresult rv = xMProxy.StartProxy(&args,m_Product,m_Profile); m_aErrorString = m_aQueryHelper->getErrorString(); return rv; } @@ -500,7 +527,7 @@ args.arg1 = (void*)m_aQueryHelper; args.arg2 = (void*)&rowIndex; args.arg3 = (void*)m_aQueryDirectory->directory; - nsresult rv = xMProxy.StartProxy(&args); + nsresult rv = xMProxy.StartProxy(&args,m_Product,m_Profile); m_aErrorString = m_aQueryHelper->getErrorString(); return rv; @@ -511,6 +538,9 @@ { ::osl::MutexGuard aGuard(m_aMutex); OSL_TRACE("IN MQuery::executeQuery()\n"); + m_Product = _pCon->getProduct(); + m_Profile = _pCon->getMozProfile(); + nsresult rv; MNSMozabProxy xMProxy; RunArgs args; @@ -518,7 +548,7 @@ args.argCount = 2; args.arg1 = (void*)this; args.arg2 = (void*)_pCon; - rv = xMProxy.StartProxy(&args); + rv = xMProxy.StartProxy(&args,m_Product,m_Profile); return rv; } // ------------------------------------------------------------------------- @@ -831,7 +861,7 @@ args.argCount = 2; args.arg1 = (void*)m_aQueryHelper; args.arg2 = (void*)&nDBRow; - nsresult rv = xMProxy.StartProxy(&args); + nsresult rv = xMProxy.StartProxy(&args,m_Product,m_Profile); m_aErrorString = m_aQueryHelper->getErrorString(); return rv; } @@ -846,7 +876,7 @@ args.argCount = 2; args.arg1 = (void*)m_aQueryHelper; args.arg2 = (void*)&nNumber; - nsresult rv = xMProxy.StartProxy(&args); + nsresult rv = xMProxy.StartProxy(&args,m_Product,m_Profile); m_aErrorString = m_aQueryHelper->getErrorString(); NS_ENSURE_SUCCESS(rv,0); @@ -868,7 +898,7 @@ } // ------------------------------------------------------------------------- sal_Bool MQuery:: -isWritable() +isWritable(OConnection* _pCon) { if ( !m_aQueryDirectory ) return sal_False; @@ -877,7 +907,7 @@ nsCOMPtr<nsIAbDirectory> directory = do_QueryInterface(m_aQueryDirectory->directory, &rv);; if (NS_FAILED(rv)) return sal_False; - if (getDirectoryType(directory) == SDBCAddress::Mozilla && isProfileLocked()) + if (getDirectoryType(directory) == SDBCAddress::Mozilla && isProfileLocked(_pCon)) return sal_False; PRBool isWriteable; --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
