summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.cpp1
-rw-r--r--messages.cpp49
-rw-r--r--new_gpg.sln2
-rw-r--r--new_gpg.vcxproj2
4 files changed, 50 insertions, 4 deletions
diff --git a/main.cpp b/main.cpp
index c5567ac..562a86d 100644
--- a/main.cpp
+++ b/main.cpp
@@ -604,6 +604,7 @@ static BOOL CALLBACK DlgProcGpgBinOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LP
mir_free(tmp);
if(gpg_exists && lang_exists && !bad_version)
MessageBox(0, _T("You have supported version of gpg binary, and gpg language file in place!\ngpg plugin should work fine on your installation!\njust press ok in wollowing diallog."), _T("Info"), MB_OK);
+ CheckDlgButton(hwndDlg, IDC_AUTO_EXCHANGE, 1);
return TRUE;
}
diff --git a/messages.cpp b/messages.cpp
index 1509958..537e25b 100644
--- a/messages.cpp
+++ b/messages.cpp
@@ -264,7 +264,31 @@ int RecvMsgSvc(WPARAM w, LPARAM l)
if(!DBGetContactSettingByte(metaGetCurrent(hContact), szGPGModuleName, "GPGEncryption", 0))
{
debuglog<<time_str()<<": info: "<<"received message from: "<<(TCHAR*)CallService(MS_CLIST_GETCONTACTDISPLAYNAME, (WPARAM)hContact, GCDNF_TCHAR)<<" whith tyrned off encryption\n";
- if(MessageBox(0, _T("We received encrypted message from contact with encryption turned off.\nDo you want turn on encryption for this contact ?"), _T("Warning"), MB_YESNO) == IDYES)
+ if(bAutoExchange)
+ {
+ if(!isContactHaveKey(hContact))
+ {
+ void ShowLoadPublicKeyDialog();
+ extern map<int, HANDLE> user_data;
+ extern int item_num;
+ item_num = 0; //black magic here
+ user_data[1] = hContact;
+ ShowLoadPublicKeyDialog();
+ }
+ else
+ {
+ DBWriteContactSettingByte(metaGetCurrent(hContact), szGPGModuleName, "GPGEncryption", 1);
+ setSrmmIcon(hContact);
+ setClistIcon(hContact);
+ }
+ if(isContactHaveKey(hContact))
+ {
+ DBWriteContactSettingByte(metaGetCurrent(hContact), szGPGModuleName, "GPGEncryption", 1);
+ setSrmmIcon(hContact);
+ setClistIcon(hContact);
+ }
+ }
+ else if(MessageBox(0, _T("We received encrypted message from contact with encryption turned off.\nDo you want turn on encryption for this contact ?"), _T("Warning"), MB_YESNO) == IDYES)
{
if(!isContactHaveKey(hContact))
{
@@ -670,7 +694,28 @@ int SendMsgSvc(WPARAM w, LPARAM l)
if(out.find("There is no assurance this key belongs to the named user") != string::npos)
{
out.clear();
- if(MessageBox(0, _T("We trying to encrypt with untrusted key, do you want to trust this key permanently ?"), _T("Warning"), MB_YESNO) == IDYES)
+ if(bAutoExchange)
+ {
+ DBWriteContactSettingByte(hContact, szGPGModuleName, "bAlwaysTrust", 1);
+ cmd.insert(0, _T("--trust-model always "));
+ gpg_execution_params params;
+ pxResult result;
+ params.cmd = &cmd;
+ params.useless = "";
+ params.out = &out;
+ params.code = &code;
+ params.result = &result;
+ boost::thread gpg_thread(boost::bind(&pxEexcute_thread, &params));
+ if(!gpg_thread.timed_join(boost::posix_time::seconds(10)))
+ {
+ gpg_thread.~thread();
+ debuglog<<time_str()<<": GPG execution timed out, aborted\n";
+ return CallService(MS_PROTO_CHAINSEND, w, l);
+ }
+ if(result == pxNotFound)
+ return CallService(MS_PROTO_CHAINSEND, w, l);
+ }
+ else if(MessageBox(0, _T("We trying to encrypt with untrusted key, do you want to trust this key permanently ?"), _T("Warning"), MB_YESNO) == IDYES)
{
DBWriteContactSettingByte(hContact, szGPGModuleName, "bAlwaysTrust", 1);
cmd.insert(0, _T("--trust-model always "));
diff --git a/new_gpg.sln b/new_gpg.sln
index 9d68c4c..c991fcf 100644
--- a/new_gpg.sln
+++ b/new_gpg.sln
@@ -41,7 +41,7 @@ Global
{F29D0C8D-141A-43CF-86B2-34A04653F8D4}.Release Unicode (static) x64|Win32.ActiveCfg = Release Unicode (static) x64|x64
{F29D0C8D-141A-43CF-86B2-34A04653F8D4}.Release Unicode (static) x64|x64.ActiveCfg = Release Unicode (static) x64|x64
{F29D0C8D-141A-43CF-86B2-34A04653F8D4}.Release Unicode (static) x64|x64.Build.0 = Release Unicode (static) x64|x64
- {F29D0C8D-141A-43CF-86B2-34A04653F8D4}.Release Unicode (static)|Win32.ActiveCfg = Release Unicode (static)|x64
+ {F29D0C8D-141A-43CF-86B2-34A04653F8D4}.Release Unicode (static)|Win32.ActiveCfg = Release Unicode (static)|Win32
{F29D0C8D-141A-43CF-86B2-34A04653F8D4}.Release Unicode (static)|x64.ActiveCfg = Release Unicode (static)|x64
{F29D0C8D-141A-43CF-86B2-34A04653F8D4}.Release Unicode (static)|x64.Build.0 = Release Unicode (static)|x64
{F29D0C8D-141A-43CF-86B2-34A04653F8D4}.Release Unicode|Win32.ActiveCfg = Release Unicode|x64
diff --git a/new_gpg.vcxproj b/new_gpg.vcxproj
index d91288d..42fa979 100644
--- a/new_gpg.vcxproj
+++ b/new_gpg.vcxproj
@@ -654,7 +654,7 @@
<Link>
<AdditionalDependencies>shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
- <AdditionalLibraryDirectories>x:\temp\windows\libs\boost\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>C:\Boost\lib-release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>NotSet</SubSystem>
<OptimizeReferences>true</OptimizeReferences>