diff options
-rw-r--r-- | init.cpp | 6 | ||||
-rw-r--r-- | new_gpg.rc | 3 | ||||
-rw-r--r-- | options.cpp | 4 | ||||
-rw-r--r-- | resource.h | 3 | ||||
-rw-r--r-- | utilities.cpp | 25 |
5 files changed, 37 insertions, 4 deletions
@@ -17,7 +17,7 @@ #include "commonheaders.h" //global variables -bool bAppendTags = false, bDebugLog = false, bJabberAPI = false, bIsMiranda09 = false, bMetaContacts = false; +bool bAppendTags = false, bDebugLog = false, bJabberAPI = false, bIsMiranda09 = false, bMetaContacts = false, bFileTransfers = false; TCHAR *inopentag = NULL, *inclosetag = NULL, *outopentag = NULL, *outclosetag = NULL, *password = NULL; list <JabberAccount*> Accounts; @@ -89,6 +89,7 @@ void init_vars() bDebugLog = DBGetContactSettingByte(NULL, szGPGModuleName, "bDebugLog", 0); debuglog.init(); bJabberAPI = DBGetContactSettingByte(NULL, szGPGModuleName, "bJabberAPI", bIsMiranda09?1:0); + bFileTransfers = DBGetContactSettingByte(NULL, szGPGModuleName, "bFileTransfers", 1); } extern "C" int __declspec(dllexport) Load(PLUGINLINK *link) @@ -150,6 +151,7 @@ static int OnModulesLoaded(WPARAM wParam,LPARAM lParam) int onIconPressed(WPARAM wParam, LPARAM lParam); int onExtraImageListRebuilding(WPARAM, LPARAM); int onExtraImageApplying(WPARAM wParam, LPARAM); + int onProtoAck(WPARAM, LPARAM); void InitIconLib(); void InitCheck(); @@ -190,6 +192,8 @@ static int OnModulesLoaded(WPARAM wParam,LPARAM lParam) if(bJabberAPI && bIsMiranda09) HookEvent(ME_PROTO_ACCLISTCHANGED, GetJabberInterface); + HookEvent(ME_PROTO_ACK, onProtoAck); + HookEvent(ME_CLIST_PREBUILDCONTACTMENU, OnPreBuildContactMenu); HookEvent(ME_MSG_WINDOWEVENT, onWindowEvent); @@ -324,6 +324,7 @@ BEGIN CONTROL "Use jabber api on Miranda IM >= 0.9 (recomended)",IDC_JABBER_API,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,175,181,10
LTEXT "Статический",IDC_CURRENT_KEY,97,196,116,8
+ CONTROL "Encrypt file transfers",IDC_FILE_TRANSFERS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,185,137,10
END
IDD_OPT_GPG_BIN DIALOGEX 0, 0, 282, 214
@@ -334,7 +335,7 @@ BEGIN PUSHBUTTON "Browse",IDC_SET_HOME_DIR,217,44,38,14
EDITTEXT IDC_BIN_PATH,7,17,195,14,ES_AUTOHSCROLL
EDITTEXT IDC_HOME_DIR,7,44,195,14,ES_AUTOHSCROLL
- LTEXT "GnuPG2 binary:",IDC_STATIC,10,7,147,8
+ LTEXT "GnuPG binary:",IDC_STATIC,10,7,147,8
LTEXT "Home directory:",IDC_STATIC,9,34,144,8
END
diff --git a/options.cpp b/options.cpp index 6266c05..4412ea7 100644 --- a/options.cpp +++ b/options.cpp @@ -187,6 +187,7 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA } if(bIsMiranda09) CheckStateLoadDB(hwndDlg, IDC_JABBER_API, "bJabberAPI", 1); + CheckStateLoadDB(hwndDlg, IDC_FILE_TRANSFERS, "bFileTransfers", 1); return TRUE; } @@ -384,11 +385,12 @@ static BOOL CALLBACK DlgProcGpgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARA case PSN_APPLY: { - extern bool bDebugLog, bJabberAPI; + extern bool bDebugLog, bJabberAPI, bFileTransfers; bDebugLog = CheckStateStoreDB(hwndDlg, IDC_DEBUG_LOG, "bDebugLog"); if(bDebugLog) debuglog.init(); bJabberAPI = CheckStateStoreDB(hwndDlg, IDC_JABBER_API, "bJabberAPI"); + bFileTransfers = CheckStateStoreDB(hwndDlg, IDC_FILE_TRANSFERS, "bFileTransfers"); { TCHAR tmp[512]; GetDlgItemText(hwndDlg, IDC_LOG_FILE_EDIT, tmp, 512); @@ -67,6 +67,7 @@ #define IDC_CURRENT_KEY 1054
#define IDC_DEFAULT_PASSWORD 1055
#define IDC_KEYSERVER 1058
+#define IDC_FILE_TRANSFERS 1061
// Next default values for new objects
//
@@ -74,7 +75,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 114
#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1061
+#define _APS_NEXT_CONTROL_VALUE 1062
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
diff --git a/utilities.cpp b/utilities.cpp index dbff3b0..dc86ecf 100644 --- a/utilities.cpp +++ b/utilities.cpp @@ -270,6 +270,31 @@ int OnPreBuildContactMenu(WPARAM w, LPARAM l) return 0; } +int onProtoAck(WPARAM w, LPARAM l) +{ + extern bool bFileTransfers; + bool isContactHaveKey(HANDLE); + ACKDATA *ack=(ACKDATA*)l;
+ if (ack->type!=ACKTYPE_FILE)
+ return 0;
+ if(!isContactHaveKey(ack->hContact))
+ return 0;
+ PROTOFILETRANSFERSTATUS *f = (PROTOFILETRANSFERSTATUS*) ack->lParam;
+ if (f && f->sending && !bFileTransfers)
+ return 0;
+ switch(ack->result)
+ {
+ case ACKRESULT_DENIED: case ACKRESULT_FAILED:
+ {
+ }
+ break;
+ case ACKRESULT_NEXTFILE: case ACKRESULT_SUCCESS:
+ {
+ }
+ break;
+ }
+ return 0;
+} void storeOutput(HANDLE ahandle, string *output) { |