summaryrefslogtreecommitdiff
path: root/utilities.cpp
diff options
context:
space:
mode:
authorSergey (Elzor) Bolhovskoy <elzor@foobar2000.ru>2010-04-20 18:27:02 +0600
committerSergey (Elzor) Bolhovskoy <elzor@foobar2000.ru>2010-04-20 18:27:02 +0600
commit4171b515e6478dfb70b21dcc255c4eb719bd4c89 (patch)
tree86fa9b6cbbc5bf1422fc1216f948a4a3abe3b196 /utilities.cpp
parent20dbac49450a6e1593c413dae34ef6e7fcb04a01 (diff)
URL blocking work for ANSI events, test for URL content are optimized
Diffstat (limited to 'utilities.cpp')
-rw-r--r--utilities.cpp81
1 files changed, 55 insertions, 26 deletions
diff --git a/utilities.cpp b/utilities.cpp
index 8349430..b7475f6 100644
--- a/utilities.cpp
+++ b/utilities.cpp
@@ -164,7 +164,7 @@ const int Stricmp(const TCHAR *str, const TCHAR *substr)
return i;
}
-
+/*
const int Stristr(const TCHAR *str, const TCHAR *substr)
{
int i = 0;
@@ -182,36 +182,65 @@ const int Stristr(const TCHAR *str, const TCHAR *substr)
return i;
}
-
+*/
TCHAR* ReqGetText(DBEVENTINFO* dbei)
{
if ( !dbei->pBlob )
return 0;
- if ( dbei->flags & DBEF_UTF ) // UTF only
- {
- char * ptr=(char *)&dbei->pBlob[sizeof(DWORD)*2];
- int len=dbei->cbBlob-sizeof(DWORD)*2;
- int i=0;
+ char * ptr=(char *)&dbei->pBlob[sizeof(DWORD)*2];
+ int len=dbei->cbBlob-sizeof(DWORD)*2;
+ int i=0;
- while(len&&(i<4))
- {
- if(!ptr[0]) i++;
- ptr++;
- len--;
- };
-
- if(len){
- char * tstr=(char *)mir_alloc(len+1);
- memcpy(tstr, ptr, len);
- tstr[len]=0;
- WCHAR* msg = NULL;
- //mir_utf8decodecp( tstr, egt->codepage, &msg );
- msg=mir_utf8decodeW(tstr);
- mir_free(tstr);
- return (TCHAR *)msg;
- };
-
- }
+ while(len&&(i<4))
+ {
+ if(!ptr[0]) i++;
+ ptr++;
+ len--;
+ };
+
+ if(len)
+ {
+ char * tstr=(char *)mir_alloc(len+1);
+ memcpy(tstr, ptr, len);
+ tstr[len]=0;
+ WCHAR* msg = NULL;
+ msg=(dbei->flags&DBEF_UTF)?mir_utf8decodeW(tstr):mir_a2u(tstr);
+ mir_free(tstr);
+ return (TCHAR *)msg;
+ };
return 0;
}
+
+
+BOOL IsUrlContains(TCHAR * Str)
+{
+ const int CountUrl=11;
+ const TCHAR URL[CountUrl][5]=
+ {
+ _T("http"),
+ _T("www"),
+ _T(".ru"),
+ _T(".com"),
+ _T(".de"),
+ _T(".cz"),
+ _T(".org"),
+ _T(".net"),
+ _T(".su"),
+ _T(".ua"),
+ _T(".tv")
+ };
+
+ if(Str&&_tcslen(Str)>0) {
+ TCHAR *StrLower = NEWTSTR_MALLOC(Str);
+ CharLowerBuff(StrLower, lstrlen(StrLower));
+ for (int i=0; i<CountUrl; i++)
+ if(_tcsstr (StrLower, URL[i]))
+ {
+ mir_free(StrLower);
+ return 1;
+ }
+ mir_free(StrLower);
+ }
+ return 0;
+} \ No newline at end of file