summaryrefslogtreecommitdiff
path: root/protocols/YAMN/src/filterplugin.cpp
diff options
context:
space:
mode:
authordartraiden <wowemuh@gmail.com>2023-01-14 01:30:59 +0300
committerdartraiden <wowemuh@gmail.com>2023-01-14 01:30:59 +0300
commitde40f3be3f08487937525c2ef096dad665dda61d (patch)
treeeb1205f8dca7c30b561a2776f9527072bd92eaf1 /protocols/YAMN/src/filterplugin.cpp
parentdd743899a769120ba2321230afddd6e4f1271872 (diff)
Convert sources to CR+LF
Diffstat (limited to 'protocols/YAMN/src/filterplugin.cpp')
-rw-r--r--protocols/YAMN/src/filterplugin.cpp338
1 files changed, 169 insertions, 169 deletions
diff --git a/protocols/YAMN/src/filterplugin.cpp b/protocols/YAMN/src/filterplugin.cpp
index 1d55f3a9c1..451ea155aa 100644
--- a/protocols/YAMN/src/filterplugin.cpp
+++ b/protocols/YAMN/src/filterplugin.cpp
@@ -1,169 +1,169 @@
-/*
- * YAMN plugin export functions for filtering
- *
- * (c) majvan 2002-2004
- */
-
-#include "stdafx.h"
-
- //--------------------------------------------------------------------------------------------------
- //--------------------------------------------------------------------------------------------------
-
-PYAMN_FILTERPLUGINQUEUE FirstFilterPlugin = nullptr;
-
-INT_PTR RegisterFilterPluginSvc(WPARAM, LPARAM);
-
-//Removes plugin from queue and deletes its structures
-INT_PTR UnregisterFilterPlugin(HYAMNFILTERPLUGIN Plugin);
-
-INT_PTR UnregisterFilterPluginSvc(WPARAM wParam, LPARAM lParam);
-
-//Removes all filter plugins
-INT_PTR UnregisterFilterPlugins();
-
-INT_PTR FilterMailSvc(WPARAM, LPARAM);
-
-//Sets imported functions for an plugin and therefore it starts plugin to be registered and running
-// Plugin- plugin, which wants to set its functions
-// Importance- importance of plugin (see m_filterplugin.h)
-// YAMNFilterFcn- pointer to imported functions
-// YAMNfilterFcnVer- version of YAMN_FILTERIMPORTFCN, use YAMN_FILTERIMPORTFCNVERSION
-// returns nonzero if success
-int WINAPI SetFilterPluginFcnImportFcn(HYAMNFILTERPLUGIN Plugin, uint32_t Importance, PYAMN_FILTERIMPORTFCN YAMNFilterFcn, uint32_t YAMNFilterFcnVer);
-
-struct CExportedFunctions FilterPluginExportedFcn[] =
-{
- {YAMN_SETFILTERPLUGINFCNIMPORTID, (void *)SetFilterPluginFcnImportFcn},
-};
-
-struct CExportedServices FilterPluginExportedSvc[] =
-{
- {MS_YAMN_REGISTERFILTERPLUGIN, RegisterFilterPluginSvc},
- {MS_YAMN_UNREGISTERFILTERPLUGIN, UnregisterFilterPluginSvc},
-};
-
-//--------------------------------------------------------------------------------------------------
-//--------------------------------------------------------------------------------------------------
-
-INT_PTR RegisterFilterPluginSvc(WPARAM wParam, LPARAM lParam)
-{
- PYAMN_FILTERREGISTRATION Registration = (PYAMN_FILTERREGISTRATION)wParam;
- HYAMNFILTERPLUGIN Plugin;
-
- if (lParam != YAMN_FILTERREGISTRATIONVERSION)
- return 0;
- if ((Registration->Name == nullptr) || (Registration->Ver == nullptr))
- return NULL;
- if (nullptr == (Plugin = new YAMN_FILTERPLUGIN))
- return NULL;
-
- Plugin->PluginInfo = Registration;
- Plugin->FilterFcn = nullptr;
- return (INT_PTR)Plugin;
-}
-
-INT_PTR UnregisterFilterPlugin(HYAMNFILTERPLUGIN Plugin)
-{
- PYAMN_FILTERPLUGINQUEUE Parser, Found;
-
- if (FirstFilterPlugin->Plugin == Plugin) {
- Found = FirstFilterPlugin;
- FirstFilterPlugin = FirstFilterPlugin->Next;
- }
- else {
- for (Parser = FirstFilterPlugin; (Parser->Next != nullptr) && (Plugin != Parser->Next->Plugin); Parser = Parser->Next);
- if (Parser->Next != nullptr) {
- Found = Parser->Next;
- Parser->Next = Parser->Next->Next;
- }
- else
- Found = nullptr;
- }
- if (Found != nullptr) {
- if (Plugin->FilterFcn->UnLoadFcn != nullptr)
- Plugin->FilterFcn->UnLoadFcn((void *)nullptr);
-
- delete Found->Plugin;
- delete Found;
- return 1;
- }
-
- return 0;
-}
-
-INT_PTR UnregisterFilterPluginSvc(WPARAM wParam, LPARAM)
-{
- HYAMNFILTERPLUGIN Plugin = (HYAMNFILTERPLUGIN)wParam;
-
- mir_cslock lck(PluginRegCS);
- UnregisterFilterPlugin(Plugin);
- return 1;
-}
-
-INT_PTR UnregisterFilterPlugins()
-{
- mir_cslock lck(PluginRegCS);
-
- // We remove protocols from the protocol list
- while (FirstFilterPlugin != nullptr)
- UnregisterFilterPlugin(FirstFilterPlugin->Plugin);
- return 1;
-}
-
-int WINAPI SetFilterPluginFcnImportFcn(HYAMNFILTERPLUGIN Plugin, uint32_t Importance, PYAMN_FILTERIMPORTFCN YAMNFilterFcn, uint32_t YAMNFilterFcnVer)
-{
- PYAMN_FILTERPLUGINQUEUE Parser, Previous;
-
- if (YAMNFilterFcnVer != YAMN_FILTERIMPORTFCNVERSION)
- return 0;
- if (YAMNFilterFcn == nullptr)
- return 0;
-
- Plugin->Importance = Importance;
- Plugin->FilterFcn = YAMNFilterFcn;
-
- mir_cslock lck(PluginRegCS);
-
- // We add protocol to the protocol list
- for (Previous = nullptr, Parser = FirstFilterPlugin; Parser != nullptr && Parser->Next != nullptr && Parser->Plugin->Importance <= Importance; Previous = Parser, Parser = Parser->Next);
-
- if (Previous == nullptr) { //insert to the beginnig of queue
- FirstFilterPlugin = new YAMN_FILTERPLUGINQUEUE;
- FirstFilterPlugin->Plugin = Plugin;
- FirstFilterPlugin->Next = Parser;
- }
- else {
- Previous->Next = new YAMN_FILTERPLUGINQUEUE;
- Previous = Previous->Next; //leave previous, go to actual plugin
- Previous->Plugin = Plugin;
- Previous->Next = Parser; //and in actual plugin set, that next plugin is the one we insert in front of
- }
- return 1;
-}
-
-INT_PTR FilterMailSvc(WPARAM wParam, LPARAM lParam)
-{
- CAccount *Account = (CAccount *)wParam;
- HYAMNMAIL Mail = (HYAMNMAIL)lParam;
- PYAMN_FILTERPLUGINQUEUE ActualPlugin;
-
- mir_cslock lck(PluginRegCS);
- WaitToWriteFcn(Account->MessagesAccessSO);
-
- for (ActualPlugin = FirstFilterPlugin; ActualPlugin != nullptr; ActualPlugin = ActualPlugin->Next)
- if (ActualPlugin->Plugin->FilterFcn->FilterMailFcnPtr != nullptr)
- ActualPlugin->Plugin->FilterFcn->FilterMailFcnPtr(Account, YAMN_ACCOUNTVERSION, Mail, YAMN_MAILVERSION);
-
- Mail->Flags |= YAMN_MSG_FILTERED;
-
- //Set mail flags according to spamlevel settings
- if ((Mail->Flags & YAMN_MSG_SPAMMASK) > YAMN_MSG_SPAML1)
- Mail->Flags = Mail->Flags & ~(YAMN_MSG_BROWSER | YAMN_MSG_POPUP | YAMN_MSG_SYSTRAY | YAMN_MSG_SOUND | YAMN_MSG_APP | YAMN_MSG_NEVENT);
- if (YAMN_MSG_SPAML(Mail->Flags, YAMN_MSG_SPAML3) || YAMN_MSG_SPAML(Mail->Flags, YAMN_MSG_SPAML4))
- Mail->Flags = Mail->Flags | (YAMN_MSG_AUTODELETE | YAMN_MSG_DELETEOK); //set message to delete
- if (YAMN_MSG_SPAML(Mail->Flags, YAMN_MSG_SPAML3))
- Mail->Flags = Mail->Flags & ~(YAMN_MSG_MEMDELETE); //set message not to delete it immidiatelly from memory
-
- WriteDoneFcn(Account->MessagesAccessSO);
- return 1;
-}
+/*
+ * YAMN plugin export functions for filtering
+ *
+ * (c) majvan 2002-2004
+ */
+
+#include "stdafx.h"
+
+ //--------------------------------------------------------------------------------------------------
+ //--------------------------------------------------------------------------------------------------
+
+PYAMN_FILTERPLUGINQUEUE FirstFilterPlugin = nullptr;
+
+INT_PTR RegisterFilterPluginSvc(WPARAM, LPARAM);
+
+//Removes plugin from queue and deletes its structures
+INT_PTR UnregisterFilterPlugin(HYAMNFILTERPLUGIN Plugin);
+
+INT_PTR UnregisterFilterPluginSvc(WPARAM wParam, LPARAM lParam);
+
+//Removes all filter plugins
+INT_PTR UnregisterFilterPlugins();
+
+INT_PTR FilterMailSvc(WPARAM, LPARAM);
+
+//Sets imported functions for an plugin and therefore it starts plugin to be registered and running
+// Plugin- plugin, which wants to set its functions
+// Importance- importance of plugin (see m_filterplugin.h)
+// YAMNFilterFcn- pointer to imported functions
+// YAMNfilterFcnVer- version of YAMN_FILTERIMPORTFCN, use YAMN_FILTERIMPORTFCNVERSION
+// returns nonzero if success
+int WINAPI SetFilterPluginFcnImportFcn(HYAMNFILTERPLUGIN Plugin, uint32_t Importance, PYAMN_FILTERIMPORTFCN YAMNFilterFcn, uint32_t YAMNFilterFcnVer);
+
+struct CExportedFunctions FilterPluginExportedFcn[] =
+{
+ {YAMN_SETFILTERPLUGINFCNIMPORTID, (void *)SetFilterPluginFcnImportFcn},
+};
+
+struct CExportedServices FilterPluginExportedSvc[] =
+{
+ {MS_YAMN_REGISTERFILTERPLUGIN, RegisterFilterPluginSvc},
+ {MS_YAMN_UNREGISTERFILTERPLUGIN, UnregisterFilterPluginSvc},
+};
+
+//--------------------------------------------------------------------------------------------------
+//--------------------------------------------------------------------------------------------------
+
+INT_PTR RegisterFilterPluginSvc(WPARAM wParam, LPARAM lParam)
+{
+ PYAMN_FILTERREGISTRATION Registration = (PYAMN_FILTERREGISTRATION)wParam;
+ HYAMNFILTERPLUGIN Plugin;
+
+ if (lParam != YAMN_FILTERREGISTRATIONVERSION)
+ return 0;
+ if ((Registration->Name == nullptr) || (Registration->Ver == nullptr))
+ return NULL;
+ if (nullptr == (Plugin = new YAMN_FILTERPLUGIN))
+ return NULL;
+
+ Plugin->PluginInfo = Registration;
+ Plugin->FilterFcn = nullptr;
+ return (INT_PTR)Plugin;
+}
+
+INT_PTR UnregisterFilterPlugin(HYAMNFILTERPLUGIN Plugin)
+{
+ PYAMN_FILTERPLUGINQUEUE Parser, Found;
+
+ if (FirstFilterPlugin->Plugin == Plugin) {
+ Found = FirstFilterPlugin;
+ FirstFilterPlugin = FirstFilterPlugin->Next;
+ }
+ else {
+ for (Parser = FirstFilterPlugin; (Parser->Next != nullptr) && (Plugin != Parser->Next->Plugin); Parser = Parser->Next);
+ if (Parser->Next != nullptr) {
+ Found = Parser->Next;
+ Parser->Next = Parser->Next->Next;
+ }
+ else
+ Found = nullptr;
+ }
+ if (Found != nullptr) {
+ if (Plugin->FilterFcn->UnLoadFcn != nullptr)
+ Plugin->FilterFcn->UnLoadFcn((void *)nullptr);
+
+ delete Found->Plugin;
+ delete Found;
+ return 1;
+ }
+
+ return 0;
+}
+
+INT_PTR UnregisterFilterPluginSvc(WPARAM wParam, LPARAM)
+{
+ HYAMNFILTERPLUGIN Plugin = (HYAMNFILTERPLUGIN)wParam;
+
+ mir_cslock lck(PluginRegCS);
+ UnregisterFilterPlugin(Plugin);
+ return 1;
+}
+
+INT_PTR UnregisterFilterPlugins()
+{
+ mir_cslock lck(PluginRegCS);
+
+ // We remove protocols from the protocol list
+ while (FirstFilterPlugin != nullptr)
+ UnregisterFilterPlugin(FirstFilterPlugin->Plugin);
+ return 1;
+}
+
+int WINAPI SetFilterPluginFcnImportFcn(HYAMNFILTERPLUGIN Plugin, uint32_t Importance, PYAMN_FILTERIMPORTFCN YAMNFilterFcn, uint32_t YAMNFilterFcnVer)
+{
+ PYAMN_FILTERPLUGINQUEUE Parser, Previous;
+
+ if (YAMNFilterFcnVer != YAMN_FILTERIMPORTFCNVERSION)
+ return 0;
+ if (YAMNFilterFcn == nullptr)
+ return 0;
+
+ Plugin->Importance = Importance;
+ Plugin->FilterFcn = YAMNFilterFcn;
+
+ mir_cslock lck(PluginRegCS);
+
+ // We add protocol to the protocol list
+ for (Previous = nullptr, Parser = FirstFilterPlugin; Parser != nullptr && Parser->Next != nullptr && Parser->Plugin->Importance <= Importance; Previous = Parser, Parser = Parser->Next);
+
+ if (Previous == nullptr) { //insert to the beginnig of queue
+ FirstFilterPlugin = new YAMN_FILTERPLUGINQUEUE;
+ FirstFilterPlugin->Plugin = Plugin;
+ FirstFilterPlugin->Next = Parser;
+ }
+ else {
+ Previous->Next = new YAMN_FILTERPLUGINQUEUE;
+ Previous = Previous->Next; //leave previous, go to actual plugin
+ Previous->Plugin = Plugin;
+ Previous->Next = Parser; //and in actual plugin set, that next plugin is the one we insert in front of
+ }
+ return 1;
+}
+
+INT_PTR FilterMailSvc(WPARAM wParam, LPARAM lParam)
+{
+ CAccount *Account = (CAccount *)wParam;
+ HYAMNMAIL Mail = (HYAMNMAIL)lParam;
+ PYAMN_FILTERPLUGINQUEUE ActualPlugin;
+
+ mir_cslock lck(PluginRegCS);
+ WaitToWriteFcn(Account->MessagesAccessSO);
+
+ for (ActualPlugin = FirstFilterPlugin; ActualPlugin != nullptr; ActualPlugin = ActualPlugin->Next)
+ if (ActualPlugin->Plugin->FilterFcn->FilterMailFcnPtr != nullptr)
+ ActualPlugin->Plugin->FilterFcn->FilterMailFcnPtr(Account, YAMN_ACCOUNTVERSION, Mail, YAMN_MAILVERSION);
+
+ Mail->Flags |= YAMN_MSG_FILTERED;
+
+ //Set mail flags according to spamlevel settings
+ if ((Mail->Flags & YAMN_MSG_SPAMMASK) > YAMN_MSG_SPAML1)
+ Mail->Flags = Mail->Flags & ~(YAMN_MSG_BROWSER | YAMN_MSG_POPUP | YAMN_MSG_SYSTRAY | YAMN_MSG_SOUND | YAMN_MSG_APP | YAMN_MSG_NEVENT);
+ if (YAMN_MSG_SPAML(Mail->Flags, YAMN_MSG_SPAML3) || YAMN_MSG_SPAML(Mail->Flags, YAMN_MSG_SPAML4))
+ Mail->Flags = Mail->Flags | (YAMN_MSG_AUTODELETE | YAMN_MSG_DELETEOK); //set message to delete
+ if (YAMN_MSG_SPAML(Mail->Flags, YAMN_MSG_SPAML3))
+ Mail->Flags = Mail->Flags & ~(YAMN_MSG_MEMDELETE); //set message not to delete it immidiatelly from memory
+
+ WriteDoneFcn(Account->MessagesAccessSO);
+ return 1;
+}