From 4171b515e6478dfb70b21dcc255c4eb719bd4c89 Mon Sep 17 00:00:00 2001 From: "Sergey (Elzor) Bolhovskoy" Date: Tue, 20 Apr 2010 18:27:02 +0600 Subject: URL blocking work for ANSI events, test for URL content are optimized --- utilities.cpp | 81 ++++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 55 insertions(+), 26 deletions(-) (limited to 'utilities.cpp') 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