summaryrefslogtreecommitdiff
path: root/plugins/MirOTR/src/otr.cpp
diff options
context:
space:
mode:
authorKirill Volinsky <mataes2007@gmail.com>2015-05-11 14:50:55 +0000
committerKirill Volinsky <mataes2007@gmail.com>2015-05-11 14:50:55 +0000
commit1d6b7baa35f783765e78b6ffb1507c6c2884e359 (patch)
treeeda27293fdebc824946a5697c8c6210a9590c60b /plugins/MirOTR/src/otr.cpp
parent5e3980529e772bf4bb701822f6cde9b3bb117cb8 (diff)
cleanup
git-svn-id: http://svn.miranda-ng.org/main/trunk@13537 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/MirOTR/src/otr.cpp')
-rw-r--r--plugins/MirOTR/src/otr.cpp222
1 files changed, 109 insertions, 113 deletions
diff --git a/plugins/MirOTR/src/otr.cpp b/plugins/MirOTR/src/otr.cpp
index 908decc3c1..09d912adf8 100644
--- a/plugins/MirOTR/src/otr.cpp
+++ b/plugins/MirOTR/src/otr.cpp
@@ -47,31 +47,31 @@ static unsigned int CALLBACK generate_key_thread(void* param)
}
INT_PTR CALLBACK GenKeyDlgBoxProc(HWND hWndDlg, UINT msg, WPARAM wParam, LPARAM lParam) {
- switch(msg) {
- case WM_INITDIALOG:
- {
- if (!lParam) {
- EndDialog(hWndDlg, 0);
- return 0;
- }
- TranslateDialogDefault(hWndDlg);
- SetClassLongPtr(hWndDlg, GCLP_HICON, (LONG_PTR)LoadIcon(ICON_OTR,1) );
- TCHAR buff[256];
- TCHAR *proto = mir_a2t((char*)lParam);
- mir_sntprintf(buff, SIZEOF(buff), TranslateT(LANG_GENERATE_KEY), proto);
- mir_free(proto);
- SetDlgItemText(hWndDlg, IDC_GENERATE, buff);
- GenKeyData *data = (GenKeyData *)mir_calloc(sizeof(GenKeyData));
- data->dialog = hWndDlg;
- data->proto = (char*)lParam;
- CloseHandle((HANDLE)_beginthreadex(0, 0, generate_key_thread, (void*)data, 0, 0));
- }break;
- case WMU_ENDDIALOG:
+ switch (msg) {
+ case WM_INITDIALOG:
+ {
+ if (!lParam) {
EndDialog(hWndDlg, 0);
- return TRUE;
- case WM_DESTROY:
- SetClassLongPtr(hWndDlg, GCLP_HICON, 0);
- ReleaseIcon(ICON_OTR,1);
+ return 0;
+ }
+ TranslateDialogDefault(hWndDlg);
+ SetClassLongPtr(hWndDlg, GCLP_HICON, (LONG_PTR)LoadIcon(ICON_OTR, 1));
+ TCHAR buff[256];
+ TCHAR *proto = mir_a2t((char*)lParam);
+ mir_sntprintf(buff, SIZEOF(buff), TranslateT(LANG_GENERATE_KEY), proto);
+ mir_free(proto);
+ SetDlgItemText(hWndDlg, IDC_GENERATE, buff);
+ GenKeyData *data = (GenKeyData *)mir_calloc(sizeof(GenKeyData));
+ data->dialog = hWndDlg;
+ data->proto = (char*)lParam;
+ CloseHandle((HANDLE)_beginthreadex(0, 0, generate_key_thread, (void*)data, 0, 0));
+ }break;
+ case WMU_ENDDIALOG:
+ EndDialog(hWndDlg, 0);
+ return TRUE;
+ case WM_DESTROY:
+ SetClassLongPtr(hWndDlg, GCLP_HICON, 0);
+ ReleaseIcon(ICON_OTR, 1);
}
return FALSE;
}
@@ -82,41 +82,30 @@ extern "C" {
DEBUGOUT_T("OTR_GUI_POLICY\n");
MCONTACT hContact = (MCONTACT)opdata;
DWORD pol;
- if(hContact) {
- pol = db_get_dw(hContact, MODULENAME, "Policy", CONTACT_DEFAULT_POLICY);
- if (options.bHaveSecureIM && pol != OTRL_POLICY_MANUAL_MOD && pol != OTRL_POLICY_NEVER && db_get_b(hContact, "SecureIM" , "StatusID", 0)) {
+ if (hContact) {
+ pol = db_get_dw(hContact, MODULENAME, "Policy", CONTACT_DEFAULT_POLICY);
+ if (options.bHaveSecureIM && pol != OTRL_POLICY_MANUAL_MOD && pol != OTRL_POLICY_NEVER && db_get_b(hContact, "SecureIM", "StatusID", 0)) {
// if SecureIM is not disabled for this contact, MirOTR will be set to manual
db_set_dw(hContact, MODULENAME, "Policy", OTRL_POLICY_MANUAL_MOD);
return OTRL_POLICY_MANUAL_MOD;
}
- if(pol != CONTACT_DEFAULT_POLICY) return pol ;
+ if (pol != CONTACT_DEFAULT_POLICY) return pol;
}
- if(context->protocol) {
- pol = db_get_dw(0,MODULENAME"_ProtoPol", context->protocol, CONTACT_DEFAULT_POLICY);
- if(pol != CONTACT_DEFAULT_POLICY) return pol ;
+ if (context->protocol) {
+ pol = db_get_dw(0, MODULENAME"_ProtoPol", context->protocol, CONTACT_DEFAULT_POLICY);
+ if (pol != CONTACT_DEFAULT_POLICY) return pol;
}
- return options.default_policy ;
+ return options.default_policy;
}
/* Create a private key for the given accountname/protocol if
* desired. */
void otr_gui_create_privkey(void *opdata, const char *account_name, const char *protocol) {
DEBUGOUT_T("OTR_GUI_CREATE_PRIVKEY\n");
- //if(MessageBox(0, Translate("Would you like to generate a new private key for this protocol?"), Translate("OTR"), MB_YESNO) == IDYES)
- //if(options.err_method == ED_POP)
- //ShowPopup(Translate("Generating new private key."), 0 /*Translate("Please wait.")*/, 5);
-
- //NewKeyData *nkd = (NewKeyData *)malloc(sizeof(NewKeyData));
- //nkd->account_name = strdup(account_name);
- //nkd->protocol = strdup(protocol);
-
- //DWORD tid;
- //CloseHandle(CreateThread(0, 0, newKeyThread, (VOID *)nkd, 0, &tid));
- //QueueUserAPC(newKeyAPC, Global::mainThread, (DWORD)nkd);
if (opdata) protocol = GetContactProto((MCONTACT)opdata);
if (!protocol) return;
- DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_GENKEYNOTIFY), 0, GenKeyDlgBoxProc, (LPARAM)protocol );
+ DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_GENKEYNOTIFY), 0, GenKeyDlgBoxProc, (LPARAM)protocol);
}
@@ -129,9 +118,9 @@ extern "C" {
int otr_gui_is_logged_in(void *opdata, const char *accountname, const char *protocol, const char *recipient) {
DEBUGOUT_T("OTR_GUI_IS_LOGGED_IN\n");
MCONTACT hContact = (MCONTACT)opdata;
- if(hContact) {
+ if (hContact) {
WORD status = db_get_w(hContact, GetContactProto(hContact), "Status", ID_STATUS_OFFLINE);
- if(status == ID_STATUS_OFFLINE) return 0;
+ if (status == ID_STATUS_OFFLINE) return 0;
else return 1;
}
@@ -143,8 +132,8 @@ extern "C" {
void otr_gui_inject_message(void *opdata, const char *accountname, const char *protocol, const char *recipient, const char *message) {
DEBUGOUT_T("OTR_GUI_INJECT_MESSAGE\n");
MCONTACT hContact = (MCONTACT)opdata;
- if(db_get_w(hContact, protocol, "Status", ID_STATUS_OFFLINE) != ID_STATUS_OFFLINE)
- CallContactService(hContact, PSS_MESSAGE, PREF_UTF|PREF_BYPASS_OTR, (LPARAM)message);
+ if (db_get_w(hContact, protocol, "Status", ID_STATUS_OFFLINE) != ID_STATUS_OFFLINE)
+ CallContactService(hContact, PSS_MESSAGE, PREF_UTF | PREF_BYPASS_OTR, (LPARAM)message);
}
/* When the list of ConnContexts changes (including a change in
@@ -176,19 +165,21 @@ extern "C" {
/* A ConnContext has entered a secure state. */
void otr_gui_gone_secure(void *opdata, ConnContext *context) {
DEBUGOUT_T("OTR_GUI_GONE_SECURE\n");
- MCONTACT hContact = (MCONTACT) opdata;
+ MCONTACT hContact = (MCONTACT)opdata;
TrustLevel trusted = otr_context_get_trust(context);
SetEncryptionStatus(hContact, trusted);
TCHAR buff[512];
- if(trusted == TRUST_PRIVATE) {
+ if (trusted == TRUST_PRIVATE) {
mir_sntprintf(buff, SIZEOF(buff), TranslateT(LANG_SESSION_START_OTR), contact_get_nameT(hContact));
- } else if (trusted == TRUST_UNVERIFIED) {
+ }
+ else if (trusted == TRUST_UNVERIFIED) {
if (options.autoshow_verify) SMPInitDialog(context); //VerifyContextDialog(context);
mir_sntprintf(buff, SIZEOF(buff), TranslateT(LANG_SESSION_START_OTR_VERIFY), contact_get_nameT(hContact));
- } else { // should never happen
+ }
+ else { // should never happen
mir_sntprintf(buff, SIZEOF(buff), TranslateT(LANG_SESSION_NOT_STARTED_OTR), contact_get_nameT(hContact));
}
- if(context->protocol_version < MIROTR_PROTO_LATEST){
+ if (context->protocol_version < MIROTR_PROTO_LATEST){
size_t remaining = _tcslen(buff);
TCHAR *offset = buff + remaining;
remaining = SIZEOF(buff) - remaining;
@@ -200,7 +191,7 @@ extern "C" {
/* A ConnContext has left a secure state. */
void otr_gui_gone_insecure(void *opdata, ConnContext *context) {
- MCONTACT hContact = (MCONTACT) opdata;
+ MCONTACT hContact = (MCONTACT)opdata;
DEBUGOUT_T("OTR_GUI_GONE_INSECURE\n");
TCHAR buff[512];
mir_sntprintf(buff, SIZEOF(buff), TranslateT(LANG_SESSION_TERMINATED_BY_OTR), contact_get_nameT(hContact));
@@ -216,31 +207,36 @@ extern "C" {
/* We have completed an authentication, using the D-H keys we
* already knew. is_reply indicates whether we initiated the AKE. */
void otr_gui_still_secure(void *opdata, ConnContext *context, int is_reply) {
- MCONTACT hContact = (MCONTACT) opdata;
+ MCONTACT hContact = (MCONTACT)opdata;
DEBUGOUT_T("OTR_GUI_STILL_SECURE\n");
TrustLevel trusted = otr_context_get_trust(context);
SetEncryptionStatus(hContact, trusted);
TCHAR buff[1024];
if (!is_reply) {
- if(trusted == TRUST_PRIVATE) {
+ if (trusted == TRUST_PRIVATE) {
mir_sntprintf(buff, SIZEOF(buff), TranslateT(LANG_SESSION_CONTINUE_OTR), contact_get_nameT(hContact));
- } else if (trusted == TRUST_UNVERIFIED) {
+ }
+ else if (trusted == TRUST_UNVERIFIED) {
if (options.autoshow_verify) SMPInitDialog(context); //VerifyContextDialog(context);
mir_sntprintf(buff, SIZEOF(buff), TranslateT(LANG_SESSION_CONTINUE_OTR_VERIFY), contact_get_nameT(hContact));
- } else { // should never happen
+ }
+ else { // should never happen
mir_sntprintf(buff, SIZEOF(buff), TranslateT(LANG_SESSION_NOT_STARTED_OTR), contact_get_nameT(hContact));
}
// opdata is hContact
ShowMessage(hContact, buff);
- } else {
- if(trusted == TRUST_PRIVATE) {
+ }
+ else {
+ if (trusted == TRUST_PRIVATE) {
mir_sntprintf(buff, SIZEOF(buff), TranslateT(LANG_SESSION_HAS_CONTINUE_OTR), contact_get_nameT(hContact));
- } else if (trusted == TRUST_UNVERIFIED) {
+ }
+ else if (trusted == TRUST_UNVERIFIED) {
mir_sntprintf(buff, SIZEOF(buff), TranslateT(LANG_SESSION_HAS_CONTINUE_OTR_VERIFY), contact_get_nameT(hContact));
- } else { // should never happen
+ }
+ else { // should never happen
mir_sntprintf(buff, SIZEOF(buff), TranslateT(LANG_SESSION_NOT_STARTED_OTR), contact_get_nameT(hContact));
}
-
+
}
SetEncryptionStatus(hContact, trusted);
}
@@ -249,11 +245,11 @@ extern "C" {
const char *proto;
if (context && context->protocol)
proto = context->protocol;
- else
+ else
proto = GetContactProto((MCONTACT)opdata);
// ugly wokaround for ICQ. ICQ protocol reports more than 7k, but in SMP this is too long.
// possibly ICQ doesn't allow single words without spaces to become longer than ~2340?
- if (strcmp("ICQ", proto)==0 || strncmp("ICQ_", proto, 4)==0)
+ if (strcmp("ICQ", proto) == 0 || strncmp("ICQ_", proto, 4) == 0)
return 2340;
return CallProtoService(proto, PS_GETCAPS, PFLAG_MAXLENOFMESSAGE, (LPARAM)opdata);
}
@@ -266,25 +262,25 @@ extern "C" {
}
void add_appdata(void *data, ConnContext *context) {
- if(context) context->app_data = data;
+ if (context) context->app_data = data;
}
-
+
const char* resent_msg_prefix(void *opdata, ConnContext *context){
return "[resent]";
}
void resent_msg_prefix_free(void *opdata, const char *prefix){
return;
}
-
+
void handle_smp_event(void *opdata, OtrlSMPEvent smp_event, ConnContext *context, unsigned short progress_percent, char *question) {
DEBUGOUT_T("HANDLE_SMP_EVENT\n");
- if(!context) return;
- switch(smp_event){
+ if (!context) return;
+ switch (smp_event){
case OTRL_SMPEVENT_NONE:
break;
case OTRL_SMPEVENT_ASK_FOR_SECRET:
case OTRL_SMPEVENT_ASK_FOR_ANSWER:
- SMPDialogReply(context,question);
+ SMPDialogReply(context, question);
break;
case OTRL_SMPEVENT_CHEATED:
otrl_message_abort_smp(otr_user_state, &ops, opdata, context);
@@ -299,96 +295,96 @@ extern "C" {
break;
}
}
-
+
void handle_msg_event(void *opdata, OtrlMessageEvent msg_event, ConnContext *context, const char *message, gcry_error_t err) {
DEBUGOUTA("HANDLE_MSG_EVENT\n");
MCONTACT hContact = (MCONTACT)opdata;
const TCHAR* contact = contact_get_nameT(hContact);
-
- typedef void (*msgfunc_t)(const MCONTACT,const TCHAR*);
- msgfunc_t msgfunc=ShowMessage;
-// TCHAR* title = NULL;
+
+ typedef void(*msgfunc_t)(const MCONTACT, const TCHAR*);
+ msgfunc_t msgfunc = ShowMessage;
+ // TCHAR* title = NULL;
TCHAR msg[512];
msg[0] = '\0';
- switch(msg_event){
+ switch (msg_event){
case OTRL_MSGEVENT_NONE:
case OTRL_MSGEVENT_LOG_HEARTBEAT_RCVD:
case OTRL_MSGEVENT_LOG_HEARTBEAT_SENT:
case OTRL_MSGEVENT_RCVDMSG_UNRECOGNIZED:
break;
case OTRL_MSGEVENT_ENCRYPTION_REQUIRED:
- msgfunc=ShowMessageInline;
- mir_tstrncpy(msg,TranslateT("Attempting to start a private conversation..."),SIZEOF(msg));
+ msgfunc = ShowMessageInline;
+ mir_tstrncpy(msg, TranslateT("Attempting to start a private conversation..."), SIZEOF(msg));
break;
case OTRL_MSGEVENT_ENCRYPTION_ERROR:
- msgfunc=ShowMessageInline;
- mir_tstrncpy(msg,TranslateT("An error occurred when encrypting your message.\nThe message was not sent"),SIZEOF(msg));
+ msgfunc = ShowMessageInline;
+ mir_tstrncpy(msg, TranslateT("An error occurred when encrypting your message.\nThe message was not sent"), SIZEOF(msg));
break;
case OTRL_MSGEVENT_CONNECTION_ENDED:
- msgfunc=ShowMessageInline;
- mir_snwprintf(msg,SIZEOF(msg),TranslateT("'%s' has already closed his/her private connection to you; you should do the same"),contact);
+ msgfunc = ShowMessageInline;
+ mir_snwprintf(msg, SIZEOF(msg), TranslateT("'%s' has already closed his/her private connection to you; you should do the same"), contact);
break;
case OTRL_MSGEVENT_SETUP_ERROR:
-// title = TranslateT("OTR Error");
- if(!err) err = GPG_ERR_INV_VALUE;
- switch(gcry_err_code(err)){
+ // title = TranslateT("OTR Error");
+ if (!err) err = GPG_ERR_INV_VALUE;
+ switch (gcry_err_code(err)){
case GPG_ERR_INV_VALUE:
- mir_snwprintf(msg,SIZEOF(msg),TranslateT("Error setting up private conversation: %s"),TranslateT("Malformed message received"));
+ mir_snwprintf(msg, SIZEOF(msg), TranslateT("Error setting up private conversation: %s"), TranslateT("Malformed message received"));
break;
default:{
TCHAR* tmp = mir_utf8decodeT(gcry_strerror(err));
- mir_snwprintf(msg,SIZEOF(msg),TranslateT("Error setting up private conversation: %s"),tmp);
- mir_free(tmp);}
+ mir_snwprintf(msg, SIZEOF(msg), TranslateT("Error setting up private conversation: %s"), tmp);
+ mir_free(tmp); }
}
break;
case OTRL_MSGEVENT_MSG_REFLECTED:
-// title = TranslateT("OTR Error");
- mir_tstrncpy(msg,TranslateT("We are receiving our own OTR messages.\nYou are either trying to talk to yourself, or someone is reflecting your messages back at you"),SIZEOF(msg));
+ // title = TranslateT("OTR Error");
+ mir_tstrncpy(msg, TranslateT("We are receiving our own OTR messages.\nYou are either trying to talk to yourself, or someone is reflecting your messages back at you"), SIZEOF(msg));
break;
case OTRL_MSGEVENT_MSG_RESENT:
-// title = TranslateT("Message resent");
- mir_snwprintf(msg,SIZEOF(msg),TranslateT("The last message to '%s' was resent"),contact);
+ // title = TranslateT("Message resent");
+ mir_snwprintf(msg, SIZEOF(msg), TranslateT("The last message to '%s' was resent"), contact);
break;
case OTRL_MSGEVENT_RCVDMSG_NOT_IN_PRIVATE:
-// title = TranslateT("Unreadable message");
- mir_snwprintf(msg,SIZEOF(msg),TranslateT("The encrypted message received from '%s' is unreadable, as you are not currently communicating privately"),contact);
+ // title = TranslateT("Unreadable message");
+ mir_snwprintf(msg, SIZEOF(msg), TranslateT("The encrypted message received from '%s' is unreadable, as you are not currently communicating privately"), contact);
break;
case OTRL_MSGEVENT_RCVDMSG_UNREADABLE:
-// title = TranslateT("OTR Error");
- mir_snwprintf(msg,SIZEOF(msg),TranslateT("We received an unreadable encrypted message from '%s'"),contact);
+ // title = TranslateT("OTR Error");
+ mir_snwprintf(msg, SIZEOF(msg), TranslateT("We received an unreadable encrypted message from '%s'"), contact);
break;
case OTRL_MSGEVENT_RCVDMSG_MALFORMED:
-// title = TranslateT("OTR Error");
- mir_snwprintf(msg,SIZEOF(msg),TranslateT("We received a malformed data message from '%s'"),contact);
+ // title = TranslateT("OTR Error");
+ mir_snwprintf(msg, SIZEOF(msg), TranslateT("We received a malformed data message from '%s'"), contact);
break;
case OTRL_MSGEVENT_RCVDMSG_GENERAL_ERR:{
-// title = TranslateT("OTR Error");
+ // title = TranslateT("OTR Error");
TCHAR* tmp = mir_utf8decodeT(message);
- mir_tstrncpy(msg,tmp,SIZEOF(msg));
+ mir_tstrncpy(msg, tmp, SIZEOF(msg));
mir_free(tmp);
- break;}
+ break; }
case OTRL_MSGEVENT_RCVDMSG_UNENCRYPTED:{
-// title = TranslateT("Received unencrypted message");
+ // title = TranslateT("Received unencrypted message");
TCHAR* tmp = mir_utf8decodeT(message);
- mir_snwprintf(msg,SIZEOF(msg),TranslateT("The following message received from '%s' was NOT encrypted: [%s]"),contact,tmp);
+ mir_snwprintf(msg, SIZEOF(msg), TranslateT("The following message received from '%s' was NOT encrypted: [%s]"), contact, tmp);
mir_free(tmp);
- break;}
+ break; }
case OTRL_MSGEVENT_RCVDMSG_FOR_OTHER_INSTANCE:
-// title = TranslateT("Received message for a different session");
- mir_snwprintf(msg,SIZEOF(msg),TranslateT("'%s' has sent a message intended for a different session. If you are logged in multiple times, another session may have received the message."),contact);
+ // title = TranslateT("Received message for a different session");
+ mir_snwprintf(msg, SIZEOF(msg), TranslateT("'%s' has sent a message intended for a different session. If you are logged in multiple times, another session may have received the message."), contact);
break;
default:
-// title = TranslateT("OTR Error");
- mir_tstrncpy(msg,TranslateT("unknown OTR message received, please report that to Miranda NG"),SIZEOF(msg));
+ // title = TranslateT("OTR Error");
+ mir_tstrncpy(msg, TranslateT("unknown OTR message received, please report that to Miranda NG"), SIZEOF(msg));
}
- if(msg[0])
- msgfunc(hContact,msg);
+ if (msg[0])
+ msgfunc(hContact, msg);
}
-
+
void otr_create_instag(void *opdata, const char *accountname, const char *protocol){
DEBUGOUT_T("OTR_CREATE_INSTAG\n");
FILE* instagf = _tfopen(g_instag_filename, _T("w+b"));
- if(!instagf)
+ if (!instagf)
return;
otrl_instag_generate_FILEp(otr_user_state, instagf, accountname, protocol);
fclose(instagf);