Index: miranda32.dsp =================================================================== --- miranda32.dsp (revision 6899) +++ miranda32.dsp (working copy) @@ -45,7 +45,7 @@ # PROP Ignore_Export_Lib 1 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /Zi /O1 /I "../include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /D "_STATIC" /Fr /Yu"commonheaders.h" /FD /c +# ADD CPP /nologo /MD /G4 /Zp4 /W3 /GX /Zi /O1 /I "../include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /D "_STATIC" /Fr /Yu"commonheaders.h" /FD /c # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x409 /d "NDEBUG" @@ -55,8 +55,12 @@ # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 -# ADD LINK32 wsock32.lib comctl32.lib winmm.lib version.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /map /debug /machine:I386 /out:"../bin/release/miranda32.exe" /fixed /ALIGN:4096 /ignore:4108 +# ADD LINK32 wsock32.lib comctl32.lib winmm.lib version.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /map /debug /machine:I386 /out:"../bin/upload/08/A/miranda32.exe" /fixed /ALIGN:4096 /FILEALIGN:0x200 /ignore:4108 # SUBTRACT LINK32 /pdb:none /incremental:yes +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=$(COMSPEC) /c "cd ../bin/upload/ && upx --compress-icons=0 --best --lzma --force 08/A/miranda32.exe && md5 -t -s -o08/A/miranda32.exe.md5 08/A/miranda32.exe" +# End Special Build Tool !ELSEIF "$(CFG)" == "miranda32 - Win32 Debug" @@ -72,7 +76,7 @@ # PROP Ignore_Export_Lib 1 # PROP Target_Dir "" # ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /D "_STATIC" /Fr /Yu"commonheaders.h" /FD /c +# ADD CPP /nologo /MDd /G4 /Zp4 /W3 /Gm /GX /ZI /Od /I "../include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /D "_STATIC" /Fr /Yu"commonheaders.h" /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" @@ -100,7 +104,7 @@ # PROP Ignore_Export_Lib 1 # PROP Target_Dir "" # ADD BASE CPP /nologo /MD /W3 /GX /Zi /O1 /I "../include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /Fr /Yu"../../core/commonheaders.h" /FD /c -# ADD CPP /nologo /MD /W3 /GX /Zi /O1 /I "../include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /D "UNICODE" /D "_STATIC" /Yu"commonheaders.h" /FD /c +# ADD CPP /nologo /MD /G4 /Zp4 /W3 /GX /Zi /O1 /I "../include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /D "UNICODE" /D "_STATIC" /Yu"commonheaders.h" /FD /c # SUBTRACT CPP /Fr # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 @@ -112,8 +116,12 @@ LINK32=link.exe # ADD BASE LINK32 wsock32.lib comctl32.lib winmm.lib version.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /map /machine:I386 /out:"../bin/release/miranda32.exe" /fixed /ALIGN:4096 /ignore:4108 # SUBTRACT BASE LINK32 /pdb:none /debug -# ADD LINK32 wsock32.lib comctl32.lib winmm.lib version.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /map /debug /machine:I386 /out:"../bin/Release Unicode/miranda32.exe" /fixed /ALIGN:4096 /ignore:4108 +# ADD LINK32 wsock32.lib comctl32.lib winmm.lib version.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /map /debug /machine:I386 /out:"../bin/upload/08/W/miranda32.exe" /fixed /ALIGN:4096 /FILEALIGN:0x200 /ignore:4108 # SUBTRACT LINK32 /pdb:none /incremental:yes +# Begin Special Build Tool +SOURCE="$(InputPath)" +PostBuild_Cmds=$(COMSPEC) /c "cd ../bin/upload/ && upx --compress-icons=0 --best --lzma --force 08/W/miranda32.exe && md5 -t -s -o08/W/miranda32.exe.md5 08/W/miranda32.exe" +# End Special Build Tool !ELSEIF "$(CFG)" == "miranda32 - Win32 Debug Unicode" @@ -131,7 +139,7 @@ # PROP Target_Dir "" # ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /Fr /FD /c # SUBTRACT BASE CPP /YX -# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /D "UNICODE" /D "_STATIC" /Fr /Yu"commonheaders.h" /FD /c +# ADD CPP /nologo /MDd /G4 /Zp4 /W3 /Gm /GX /ZI /Od /I "../include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /D "UNICODE" /D "_STATIC" /Fr /Yu"commonheaders.h" /FD /c # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 # ADD BASE RSC /l 0x409 /d "_DEBUG" @@ -389,14 +397,6 @@ # End Source File # End Group -# Begin Group "autoaway" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\modules\autoaway\autoaway.c -# End Source File -# End Group # Begin Group "button" # PROP Default_Filter "" @@ -478,22 +478,6 @@ SOURCE=.\modules\help\help.c # End Source File # End Group -# Begin Group "history" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\modules\history\history.c -# End Source File -# End Group -# Begin Group "idle" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\modules\idle\idle.c -# End Source File -# End Group # Begin Group "ignore" # PROP Default_Filter "" @@ -936,6 +920,65 @@ # End Source File # End Group # End Group +# Begin Group "saa" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=..\extra\saa\aa_utils.c +# ADD CPP /I "core" +# SUBTRACT CPP /YX /Yc /Yu +# End Source File +# Begin Source File + +SOURCE=..\extra\saa\autoaway.c +# ADD CPP /I "core" +# SUBTRACT CPP /YX /Yc /Yu +# End Source File +# Begin Source File + +SOURCE=..\extra\saa\dlgproc.c +# ADD CPP /I "core" +# SUBTRACT CPP /YX /Yc /Yu +# End Source File +# Begin Source File + +SOURCE=..\extra\saa\globals.c +# ADD CPP /I "core" +# SUBTRACT CPP /YX /Yc /Yu +# End Source File +# Begin Source File + +SOURCE=..\extra\saa\idle.c +# ADD CPP /I "core" +# SUBTRACT CPP /YX /Yc /Yu +# End Source File +# Begin Source File + +SOURCE=..\extra\saa\idleMenu.c +# ADD CPP /I "core" +# SUBTRACT CPP /YX /Yc /Yu +# End Source File +# Begin Source File + +SOURCE=..\extra\saa\idleMessages.c +# ADD CPP /I "core" +# SUBTRACT CPP /YX /Yc /Yu +# End Source File +# Begin Source File + +SOURCE=..\extra\saa\reconnect.c +# ADD CPP /I "core" +# SUBTRACT CPP /YX /Yc /Yu +# End Source File +# Begin Source File + +SOURCE=..\extra\saa\saamain.c +# ADD CPP /I "core" +# SUBTRACT CPP /YX /Yc /Yu +# End Source File +# End Group +# End Group # Begin Group "Resources" # PROP Default_Filter "" @@ -946,6 +989,7 @@ # Begin Source File SOURCE=.\vc6.rc +# ADD RSC /i "../extra/saa" # End Source File # End Group # End Target Index: core/modules.c =================================================================== --- core/modules.c (revision 6899) +++ core/modules.c (working copy) @@ -104,7 +104,7 @@ int LoadSkinModule(void); // ui: skin int LoadHelpModule(void); // ui: help stuff int LoadUserInfoModule(void); // ui: user info -int LoadHistoryModule(void); // ui: history viewer +//int LoadHistoryModule(void); // ui: history viewer int LoadAwayMsgModule(void); // ui: setting away messages int LoadVisibilityModule(void); // ui: visibility control int LoadCLUIModule(void); // ui: CList UI @@ -155,7 +155,7 @@ if (!disableDefaultModule[DEFMOD_SRAUTH]) if (LoadSendRecvAuthModule()) return 1; if (!disableDefaultModule[DEFMOD_SRFILE]) if (LoadSendRecvFileModule()) return 1; if (!disableDefaultModule[DEFMOD_UIHELP]) if (LoadHelpModule()) return 1; - if (!disableDefaultModule[DEFMOD_UIHISTORY]) if (LoadHistoryModule()) return 1; +// if (!disableDefaultModule[DEFMOD_UIHISTORY]) if (LoadHistoryModule()) return 1; if (!disableDefaultModule[DEFMOD_RNDIDLE]) if (LoadIdleModule()) return 1; if (!disableDefaultModule[DEFMOD_RNDAUTOAWAY]) if (LoadAutoAwayModule()) return 1; if (!disableDefaultModule[DEFMOD_RNDUSERONLINE]) if (LoadUserOnlineModule()) return 1; Index: core/miranda.c =================================================================== --- core/miranda.c (revision 6899) +++ core/miranda.c (working copy) @@ -544,10 +544,16 @@ pVerInfo=mir_alloc(verInfoSize); GetFileVersionInfoA(filename,0,verInfoSize,pVerInfo); VerQueryValueA(pVerInfo,"\\StringFileInfo\\000004b0\\ProductVersion",(void*)&productVersion,&blockSize); + lstrcpynA((char*)lParam,productVersion,wParam); + unused = strlen((char*)lParam); + if (VerQueryValueA(pVerInfo,"\\StringFileInfo\\000004b0\\PrivateBuild",(void*)&productVersion,&blockSize)) + if (strlen(productVersion)) + unused += mir_snprintf(( char* )lParam+unused, wParam-unused, " Priv(%s)", productVersion ); + if (VerQueryValueA(pVerInfo,"\\StringFileInfo\\000004b0\\SpecialBuild",(void*)&productVersion,&blockSize)) + if (strlen(productVersion)) + unused += mir_snprintf(( char* )lParam+unused, wParam-unused, " Spec(%s)", productVersion ); #if defined( _UNICODE ) - mir_snprintf(( char* )lParam, wParam, "%s Unicode", productVersion ); - #else - lstrcpynA((char*)lParam,productVersion,wParam); + lstrcpynA(( char* )lParam+unused, " Unicode", wParam-unused); #endif mir_free(pVerInfo); return 0; Index: modules/database/dbtime.c =================================================================== --- modules/database/dbtime.c (revision 6899) +++ modules/database/dbtime.c (working copy) @@ -185,7 +185,7 @@ int destCharsLeft, dateTimeStrLen; //this huge number is the difference between 1970 and 1601 in seconds - liFiletime.QuadPart = (11644473600i64+(__int64)(DWORD)TimestampToLocal(wParam,0))*10000000; + liFiletime.QuadPart = ((__int64)11644473600+(__int64)(DWORD)TimestampToLocal(wParam,0))*10000000; filetime.dwHighDateTime = liFiletime.HighPart; filetime.dwLowDateTime = liFiletime.LowPart; FileTimeToSystemTime(&filetime,&st); Index: modules/updatenotify/updatenotify.c =================================================================== --- modules/updatenotify/updatenotify.c (revision 6899) +++ modules/updatenotify/updatenotify.c (working copy) @@ -28,10 +28,11 @@ #define UN_LASTCHECK "UpdateNotifyLastCheck" #define UN_SERVERPERIOD "UpdateNotifyPingDelayPeriod" #define UN_CURRENTVERSION "UpdateNotifyCurrentVersion" +#define UN_CURRENTMD5 "UpdateNotifyCurrentMD5" #define UN_NOTIFYALPHA "UpdateNotifyNotifyAlpha" -#define UN_NOTIFYALPHA_DEF 0 +#define UN_NOTIFYALPHA_DEF 1 #define UN_CUSTOMURL "UpdateNotifyCustomURL" -#define UN_URL "http://update.miranda-im.org/update.php" +#define UN_URL "http://saaplugin.no-ip.info/mirupdate.cgi" #define UN_MINCHECKTIME 60*60 /* Check no more than once an hour */ #define UN_DEFAULTCHECKTIME 60*24*60 /* Default to check once every 24 hours */ #define UN_FIRSTCHECK 15 /* First check 15 seconds after startup */ @@ -39,6 +40,7 @@ typedef struct { char version[64]; char downloadUrl[256]; + char szMD5[33]; } UpdateNotifyData; static HANDLE hNetlibUser = 0, hHookModules, hHookPreShutdown; @@ -137,7 +139,33 @@ updateTimerId = SetTimer(NULL, 0, 1000*UN_MINCHECKTIME, UpdateNotifyTimerCheck); } } +void md5_init(mir_md5_state_t *pms); +void md5_append(mir_md5_state_t *pms, const mir_md5_byte_t *data, int nbytes); +void md5_finish(mir_md5_state_t *pms, mir_md5_byte_t digest[16]); +static void getMD5(char *target){ +#define BIT 0x4000 + char filename[MAX_PATH]; + char *buff=mir_alloc(BIT); + FILE *in = NULL; + DWORD digest[4]; + digest[0] = 0; + GetModuleFileNameA(NULL,filename,SIZEOF(filename)); + if (in = fopen(filename, "rb")){ + mir_md5_state_t state; + int len = 0; + md5_init(&state); + do { + len = fread(buff,1,BIT,in); + md5_append(&state,buff,len); + } while (len==BIT); + md5_finish(&state,(unsigned char *)digest); + fclose(in); + } + mir_free(buff); + sprintf( target, "%08x%08x%08x%08x", htonl(digest[0]), htonl(digest[1]), htonl(digest[2]), htonl(digest[3])); +} + static void UpdateNotifyPerform(void *manual) { NETLIBHTTPREQUEST req; NETLIBHTTPREQUEST *resp; @@ -145,6 +173,7 @@ DWORD timeNow = time(NULL); DWORD dwVersion; char szVersion[32], szUrl[256], szVersionText[128]; + char szMD5[33]; int isUnicode, isAlpha, isAlphaBuild; DBVARIANT dbv; @@ -154,14 +183,15 @@ isAlpha = DBGetContactSettingByte(NULL, UN_MOD, UN_NOTIFYALPHA, UN_NOTIFYALPHA_DEF); isAlphaBuild = strstr(szVersionText, "alpha") != NULL ? 1 : 0; dwVersion = CallService(MS_SYSTEM_GETVERSION, 0, 0); + getMD5(szMD5); mir_snprintf(szVersion, sizeof(szVersion), "%d.%d.%d.%d", HIBYTE(HIWORD(dwVersion)), LOBYTE(HIWORD(dwVersion)), HIBYTE(LOWORD(dwVersion)), LOBYTE(LOWORD(dwVersion))); if (!DBGetContactSettingString(NULL, UN_MOD, UN_CUSTOMURL, &dbv)) { - mir_snprintf(szUrl, sizeof(szUrl), "%s?version=%s&unicode=%d&alpha=%d&alphaBuild=%d", dbv.pszVal?dbv.pszVal:UN_URL, szVersion, isUnicode, isAlpha, isAlphaBuild); + mir_snprintf(szUrl, sizeof(szUrl), "%s?version=%s&unicode=%d&alpha=%d&alphaBuild=%d&md5sum=%s", dbv.pszVal?dbv.pszVal:UN_URL, szVersion, isUnicode, isAlpha, isAlphaBuild, szMD5); DBFreeVariant(&dbv); } - else mir_snprintf(szUrl, sizeof(szUrl), "%s?version=%s&unicode=%d&alpha=%d&alphaBuild=%d", UN_URL, szVersion, isUnicode, isAlpha, isAlphaBuild); + else mir_snprintf(szUrl, sizeof(szUrl), "%s?version=%s&unicode=%d&alpha=%d&alphaBuild=%d&md5sum=%s", UN_URL, szVersion, isUnicode, isAlpha, isAlphaBuild, szMD5); ZeroMemory(&req, sizeof(req)); req.cbSize = sizeof(req); @@ -169,7 +199,7 @@ req.szUrl = szUrl; req.flags = 0; headers[0].szName = "User-Agent"; - headers[0].szValue = "MirandaUpdate/0.2"; + headers[0].szValue = "MirandaUpdate/0.3"; req.headersCount = 1; req.headers = headers; resp = (NETLIBHTTPREQUEST *)CallService(MS_NETLIB_HTTPTRANSACTION, (WPARAM)hNetlibUser, (LPARAM)&req); @@ -193,6 +223,10 @@ Netlib_Logf(hNetlibUser, "New version found (%s)", resp->headers[i].szValue); mir_snprintf(und.version, sizeof(und.version), "%s", resp->headers[i].szValue); } + else if (strcmp(resp->headers[i].szName, "X-Miranda-MD5")==0&&resp->headers[i].szValue) { + Netlib_Logf(hNetlibUser, "New MD5 found (%s)", resp->headers[i].szValue); + mir_snprintf(und.szMD5, sizeof(und.szMD5), "%s", resp->headers[i].szValue); + } else if (strcmp(resp->headers[i].szName, "X-Miranda-Download-URL")==0&&resp->headers[i].szValue) { Netlib_Logf(hNetlibUser, "Download url found (%s)", resp->headers[i].szValue); mir_snprintf(und.downloadUrl, sizeof(und.downloadUrl), "%s", resp->headers[i].szValue); @@ -210,7 +244,7 @@ } } } - if (resUpdate&&und.version[0]&&und.downloadUrl[0]) { + if (resUpdate&&und.version[0]&&und.downloadUrl[0]&&und.szMD5[0]) { int notify = 1; if (!DBGetContactSettingString(NULL, UN_MOD, UN_CURRENTVERSION, &dbv)) { @@ -218,8 +252,14 @@ notify = 0; DBFreeVariant(&dbv); } + if (!notify) if (!DBGetContactSettingString(NULL, UN_MOD, UN_CURRENTMD5, &dbv)) { + if (!strcmp(dbv.pszVal, und.szMD5)) // already notified of this version, don't show dialog + notify = 0; + DBFreeVariant(&dbv); + } if (notify) { DBWriteContactSettingString(NULL, UN_MOD, UN_CURRENTVERSION, und.version); + DBWriteContactSettingString(NULL, UN_MOD, UN_CURRENTMD5, und.szMD5); DialogBoxParam(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_UPDATE_NOTIFY), 0, UpdateNotifyProc,(LPARAM)&und); hwndUpdateDlg = 0; } Index: modules/netlib/netlibhttpproxy.c =================================================================== --- modules/netlib/netlibhttpproxy.c (revision 6899) +++ modules/netlib/netlibhttpproxy.c (working copy) @@ -22,6 +22,7 @@ */ #include "commonheaders.h" #include "netlib.h" +#define FILENAME "netlibhttpproxy.c" #define HTTPGETTIMEOUT 55000 //in ms. http GETs through most proxies will give up after a while so the request needs to be re-sent @@ -34,12 +35,12 @@ nlc->s=socket(AF_INET,SOCK_STREAM,0); if(nlc->s==INVALID_SOCKET) { - Netlib_Logf(nlc->nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"socket",WSAGetLastError()); + Netlib_Logf(nlc->nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"socket",WSAGetLastError()); return 0; } if(connect(nlc->s,(SOCKADDR *)&nlc->sinProxy,sizeof(nlc->sinProxy))==SOCKET_ERROR) { - Netlib_Logf(nlc->nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"connect",WSAGetLastError()); + Netlib_Logf(nlc->nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"connect",WSAGetLastError()); return 0; } @@ -81,7 +82,7 @@ if (nlc->nlhpi.szHttpGetUrl != NULL) { - Netlib_Logf(nlc->nlu,"%s %d: Sending data.[ICQ GET] ",__FILE__,__LINE__); + Netlib_Logf(nlc->nlu,"%s %d: Sending data.[ICQ GET] ",FILENAME,__LINE__); if(NetlibHttpSendRequest((WPARAM)&nlcSend,(LPARAM)&nlhrSend)==SOCKET_ERROR) { nlc->usingHttpGateway=1; return 0; @@ -148,7 +149,7 @@ nlcSend.hNtlmSecurity=nlc->hNtlmSecurity; nlcSend.s=socket(AF_INET,SOCK_STREAM,0); if(nlcSend.s==INVALID_SOCKET) { - Netlib_Logf(nlc->nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"socket",WSAGetLastError()); + Netlib_Logf(nlc->nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"socket",WSAGetLastError()); return SOCKET_ERROR; } nlcSend.hOkToCloseEvent=CreateEvent(NULL,TRUE,TRUE,NULL); @@ -157,7 +158,7 @@ NetlibInitializeNestedCS(&nlcSend.ncsSend); if(connect(nlcSend.s,(SOCKADDR *)&nlc->sinProxy,sizeof(nlc->sinProxy))==SOCKET_ERROR) { - Netlib_Logf(nlc->nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"connect",WSAGetLastError()); + Netlib_Logf(nlc->nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"connect",WSAGetLastError()); NetlibDeleteNestedCS(&nlcSend.ncsRecv); NetlibDeleteNestedCS(&nlcSend.ncsSend); CloseHandle(nlcSend.hOkToCloseEvent); @@ -362,7 +363,7 @@ nlc->s = INVALID_SOCKET; Sleep(NETLIBHTTP_RETRYTIMEOUT); // wait 5 seconds // retry the connection - Netlib_Logf(nlc->nlu,"%s %d: ResultCode?? Doing GET.",__FILE__,__LINE__); + Netlib_Logf(nlc->nlu,"%s %d: ResultCode?? Doing GET.",FILENAME,__LINE__); if(HttpGatewaySendGet(nlc)) continue; SetLastError(ERROR_GEN_FAILURE); @@ -385,7 +386,7 @@ * */ if (nlc->nlhpi.szHttpGetUrl != NULL) { - Netlib_Logf(nlc->nlu,"%s %d: Doing GET, Again????",__FILE__,__LINE__); + Netlib_Logf(nlc->nlu,"%s %d: Doing GET, Again????",FILENAME,__LINE__); if(!HttpGatewaySendGet(nlc)) { NetlibHttpFreeRequestStruct(0,(LPARAM)nlhrReply); @@ -433,7 +434,7 @@ nlhrReply->dataLength = 0; NetlibHttpFreeRequestStruct(0,(LPARAM)nlhrReply); - Netlib_Logf(nlc->nlu,"%s %d: NetlibHTTPGatewayRecv EXIT!",__FILE__,__LINE__); + Netlib_Logf(nlc->nlu,"%s %d: NetlibHTTPGatewayRecv EXIT!",FILENAME,__LINE__); return len; } Index: modules/netlib/netlibupnp.c =================================================================== --- modules/netlib/netlibupnp.c (revision 6899) +++ modules/netlib/netlibupnp.c (working copy) @@ -22,6 +22,10 @@ */ #include "commonheaders.h" #include "netlib.h" +#ifdef __GNUC__ + #define IP_MULTICAST_IF 2 + #define IP_TTL 7 /* set/get IP Time To Live */ +#endif extern struct NetlibUser **netlibUser; extern int netlibUserCount; Index: modules/netlib/netlibbind.c =================================================================== --- modules/netlib/netlibbind.c (revision 6899) +++ modules/netlib/netlibbind.c (working copy) @@ -22,6 +22,7 @@ */ #include "commonheaders.h" #include "netlib.h" +#define FILENAME "netlibbind.c" //mask must be 8192 bytes, returns number of bits set #define PortInMask(mask,p) ((mask)[((p)&0xFFFF)>>3]&(1<<((p)&7))) @@ -127,7 +128,7 @@ nlbp->s=socket(AF_INET,SOCK_STREAM,0); nlbp->pExtra= (nlb->cbSize != NETLIBBIND_SIZEOF_V1) ? nlb->pExtra : NULL; if(nlbp->s==INVALID_SOCKET) { - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"socket",WSAGetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"socket",WSAGetLastError()); mir_free(nlbp); return (int)(HANDLE)NULL; } @@ -177,20 +178,20 @@ /* if ->wPort==0 then they'll get any free port, otherwise they'll be asking for whatever was in nlb->wPort*/ if (nlb->wPort!=0) { - Netlib_Logf(nlu,"%s %d: trying to bind port %d, this 'feature' can be abused, please be sure you want to allow it.",__FILE__,__LINE__,nlb->wPort); + Netlib_Logf(nlu,"%s %d: trying to bind port %d, this 'feature' can be abused, please be sure you want to allow it.",FILENAME,__LINE__,nlb->wPort); sin.sin_port=htons(nlb->wPort); } if(bind(nlbp->s,(SOCKADDR *)&sin,sizeof(sin))==0) foundPort=1; } if(!foundPort) { - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"bind",WSAGetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"bind",WSAGetLastError()); closesocket(nlbp->s); mir_free(nlbp); return (int)(HANDLE)NULL; } if(listen(nlbp->s,5)) { - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"listen",WSAGetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"listen",WSAGetLastError()); closesocket(nlbp->s); mir_free(nlbp); return (int)(HANDLE)NULL; @@ -202,7 +203,7 @@ ZeroMemory(&sin,sizeof(sin)); len=sizeof(sin); if(getsockname(nlbp->s,(SOCKADDR *)&sin,&len)) { - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"getsockname",WSAGetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"getsockname",WSAGetLastError()); closesocket(nlbp->s); mir_free(nlbp); return (int)(HANDLE)NULL; Index: modules/netlib/netlibopenconn.c =================================================================== --- modules/netlib/netlibopenconn.c (revision 6899) +++ modules/netlib/netlibopenconn.c (working copy) @@ -22,6 +22,7 @@ */ #include "commonheaders.h" #include "netlib.h" +#define FILENAME "netlibopenconn.c" extern CRITICAL_SECTION csNetlibUser; extern DWORD g_LastConnectionTick; // protected by csNetlibUser @@ -41,7 +42,7 @@ if ( host ) return *( u_long* )host->h_addr_list[0]; - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"gethostbyname",WSAGetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"gethostbyname",WSAGetLastError()); return 0; } @@ -141,14 +142,14 @@ len=9+nUserLen; } if(NLSend(nlc,pInit,len,MSG_DUMPPROXY)==SOCKET_ERROR) { - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"NLSend",GetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"NLSend",GetLastError()); mir_free(pInit); return 0; } mir_free(pInit); if (!RecvUntilTimeout(nlc,reply,SIZEOF(reply),MSG_DUMPPROXY,RECV_DEFAULT_TIMEOUT)) { - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"RecvUntilTimeout",GetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"RecvUntilTimeout",GetLastError()); return 0; } if ( reply[1] != 90 ) { @@ -158,7 +159,7 @@ case 93: SetLastError(ERROR_INVALID_ACCESS); break; default: SetLastError(ERROR_INVALID_DATA); break; } - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"RecvUntilTimeout",GetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"RecvUntilTimeout",GetLastError()); return 0; } //connected @@ -173,18 +174,18 @@ buf[1]=1; //one auth method buf[2]=nlu->settings.useProxyAuth?2:0; if(NLSend(nlc,buf,3,MSG_DUMPPROXY)==SOCKET_ERROR) { - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"NLSend",GetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"NLSend",GetLastError()); return 0; } //confirmation of auth method if (!RecvUntilTimeout(nlc,buf,2,MSG_DUMPPROXY,RECV_DEFAULT_TIMEOUT)) { - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"RecvUntilTimeout",GetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"RecvUntilTimeout",GetLastError()); return 0; } if((buf[1]!=0 && buf[1]!=2)) { SetLastError(ERROR_INVALID_ID_AUTHORITY); - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"NLRecv",GetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"NLRecv",GetLastError()); return 0; } @@ -201,19 +202,19 @@ pAuthBuf[2+nUserLen]=nPassLen; memcpy(pAuthBuf+3+nUserLen,nlu->settings.szProxyAuthPassword,nPassLen); if(NLSend(nlc,pAuthBuf,3+nUserLen+nPassLen,MSG_DUMPPROXY)==SOCKET_ERROR) { - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"NLSend",GetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"NLSend",GetLastError()); mir_free(pAuthBuf); return 0; } mir_free(pAuthBuf); if (!RecvUntilTimeout(nlc,buf,2,MSG_DUMPPROXY,RECV_DEFAULT_TIMEOUT)) { - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"RecvUntilTimeout",GetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"RecvUntilTimeout",GetLastError()); return 0; } if(buf[1]) { SetLastError(ERROR_ACCESS_DENIED); - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"RecvUntilTimeout",GetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"RecvUntilTimeout",GetLastError()); return 0; } } @@ -247,7 +248,7 @@ } *(PWORD)(pInit+4+nHostLen)=htons(nloc->wPort); if(NLSend(nlc,pInit,6+nHostLen,MSG_DUMPPROXY)==SOCKET_ERROR) { - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"NLSend",GetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"NLSend",GetLastError()); mir_free(pInit); return 0; } @@ -255,7 +256,7 @@ } if (!RecvUntilTimeout(nlc,buf,5,MSG_DUMPPROXY,RECV_DEFAULT_TIMEOUT)) { - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"RecvUntilTimeout",GetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"RecvUntilTimeout",GetLastError()); return 0; } @@ -274,7 +275,7 @@ case 8: SetLastError(ERROR_INVALID_ADDRESS); break; default: SetLastError(ERROR_INVALID_DATA); break; } - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"RecvUntilTimeout",GetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"RecvUntilTimeout",GetLastError()); return 0; } { @@ -337,7 +338,7 @@ if(nlhrReply==NULL) return 0; if(nlhrReply->resultCode<200 || nlhrReply->resultCode>=300) { NetlibHttpSetLastErrorUsingHttpResult(nlhrReply->resultCode); - Netlib_Logf(nlu,"%s %d: %s request failed (%u %s)",__FILE__,__LINE__,nlu->settings.proxyType==PROXYTYPE_HTTP?"HTTP":"HTTPS",nlhrReply->resultCode,nlhrReply->szResultDescr); + Netlib_Logf(nlu,"%s %d: %s request failed (%u %s)",FILENAME,__LINE__,nlu->settings.proxyType==PROXYTYPE_HTTP?"HTTP":"HTTPS",nlhrReply->resultCode,nlhrReply->szResultDescr); NetlibHttpFreeRequestStruct(0,(LPARAM)nlhrReply); return 0; } @@ -479,7 +480,7 @@ nlc->nlu=nlu; nlc->s=socket(AF_INET,nloc->flags & NLOCF_UDP ? SOCK_DGRAM : SOCK_STREAM, 0); if(nlc->s==INVALID_SOCKET) { - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"socket",WSAGetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"socket",WSAGetLastError()); mir_free(nlc); return (int)(HANDLE)NULL; } @@ -543,7 +544,7 @@ if(nlc->sinProxy.sin_addr.S_un.S_addr==0 || my_connect(nlc->s,(SOCKADDR *)&nlc->sinProxy,sizeof(nlc->sinProxy), nloc)==SOCKET_ERROR) { if(nlc->sinProxy.sin_addr.S_un.S_addr) - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"connect",WSAGetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"connect",WSAGetLastError()); FreePartiallyInitedConnection(nlc); return (int)(HANDLE)NULL; } @@ -597,7 +598,7 @@ if(nlc->sinProxy.sin_addr.S_un.S_addr==0 || my_connect(nlc->s,(SOCKADDR *)&nlc->sinProxy,sizeof(nlc->sinProxy), nloc)==SOCKET_ERROR) { if(nlc->sinProxy.sin_addr.S_un.S_addr) - Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"connect",WSAGetLastError()); + Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"connect",WSAGetLastError()); FreePartiallyInitedConnection(nlc); return (int)(HANDLE)NULL; } Index: version.rc =================================================================== --- version.rc (revision 6899) +++ version.rc (working copy) @@ -34,7 +34,7 @@ VALUE "PrivateBuild", "\0" VALUE "ProductName", "Miranda IM\0" VALUE "ProductVersion", "0.8.0 alpha build #4\0" - VALUE "SpecialBuild", "\0" + VALUE "SpecialBuild", "YB\0" END END BLOCK "VarFileInfo" Index: resource.rc =================================================================== --- resource.rc (revision 6899) +++ resource.rc (working copy) @@ -129,7 +129,7 @@ EDITTEXT IDC_BUILDTIME,4,91,146,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER PUSHBUTTON "Credits >",IDC_CONTRIBLINK,5,112,55,14 - LTEXT "Version",IDC_VERSION,5,25,150,15 + LTEXT "Version",IDC_VERSION,5,25,200,15 EDITTEXT IDC_CREDITSFILE,4,44,202,56,ES_CENTER | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER | WS_VSCROLL @@ -611,19 +611,6 @@ PUSHBUTTON "Cancel",IDCANCEL,201,233,54,14 END -IDD_HISTORY_FIND DIALOGEX 0, 0, 230, 46 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | - WS_SYSMENU -EXSTYLE WS_EX_CONTROLPARENT -CAPTION "Find" -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - EDITTEXT IDC_FINDWHAT,48,11,115,12,ES_AUTOHSCROLL - DEFPUSHBUTTON "&Find Next",IDOK,173,7,50,14 - PUSHBUTTON "Cancel",IDCANCEL,173,24,50,14 - LTEXT "Find What:",IDC_STATIC,7,13,39,9 -END - IDD_FILESEND DIALOGEX 0, 0, 256, 177 STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | @@ -833,22 +820,6 @@ ES_READONLY | WS_VSCROLL END -IDD_HISTORY DIALOGEX 0, 0, 296, 166 -STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | - WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME -EXSTYLE WS_EX_CONTROLPARENT -CAPTION "Message History" -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - DEFPUSHBUTTON "Close",IDOK,239,144,50,14 - EDITTEXT IDC_EDIT,7,83,282,52,ES_MULTILINE | ES_AUTOVSCROLL | - ES_READONLY | WS_VSCROLL - LISTBOX IDC_LIST,7,7,282,72,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | - WS_TABSTOP - PUSHBUTTON "&Find...",IDC_FIND,7,144,50,14 - PUSHBUTTON "Delete",IDC_DELETEHISTORY,66,144,50,14 -END - IDD_OPT_SOUND DIALOGEX 0, 0, 285, 240 STYLE DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE EXSTYLE WS_EX_CONTROLPARENT @@ -1100,46 +1071,6 @@ IDC_STATIC,93,27,167,11,WS_DISABLED END -IDD_OPT_IDLE DIALOGEX 0, 0, 312, 190 -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_BORDER -EXSTYLE WS_EX_CONTROLPARENT -FONT 8, "MS Shell Dlg", 0, 0, 0x1 -BEGIN - CONTROL "Become idle if the following is left unattended:", - IDC_IDLESHORT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25, - 18,259,9 - CONTROL "Windows",IDC_IDLEONWINDOWS,"Button",BS_AUTORADIOBUTTON, - 45,31,104,9 - CONTROL "Miranda",IDC_IDLEONMIRANDA,"Button",BS_AUTORADIOBUTTON, - 45,43,103,9 - EDITTEXT IDC_IDLE1STTIME,59,59,27,14,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "Spin2",IDC_IDLESPIN,"msctls_updown32",UDS_WRAP | - UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_ARROWKEYS | - UDS_NOTHOUSANDS | UDS_HOTTRACK,71,55,12,23 - CONTROL "Become idle if the screen saver is active", - IDC_SCREENSAVER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25, - 83,268,9 - CONTROL "Become idle if the computer is locked (2000/XP+ only)", - IDC_LOCKED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,99, - 249,9 - CONTROL "Become idle if a terminal session is disconnected", - IDC_IDLETERMINAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 25,115,265,10 - CONTROL "Do not let protocols report any idle information", - IDC_IDLEPRIVATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25, - 131,251,9 - LTEXT "minute(s)",IDC_STATIC,91,61,76,9 - RTEXT "for",IDC_STATIC,12,59,41,9 - COMBOBOX IDC_AASTATUS,128,146,64,50,CBS_DROPDOWNLIST | WS_VSCROLL | - WS_TABSTOP - CONTROL "Change my status mode to:",IDC_AASHORTIDLE,"Button", - BS_AUTOCHECKBOX | WS_TABSTOP,25,147,101,11 - CONTROL "Do not set status back to online when returning from idle", - IDC_IDLESTATUSLOCK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, - 35,164,246,10 - GROUPBOX "Idle Options",IDC_STATIC,3,3,304,182 -END - IDD_PROFILE_SELECTION DIALOGEX 0, 0, 386, 142 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN @@ -1638,15 +1569,6 @@ BOTTOMMARGIN, 247 END - IDD_HISTORY_FIND, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 223 - TOPMARGIN, 7 - BOTTOMMARGIN, 39 - HORZGUIDE, 17 - END - IDD_FILESEND, DIALOG BEGIN LEFTMARGIN, 5 @@ -1701,14 +1623,6 @@ BOTTOMMARGIN, 135 END - IDD_HISTORY, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 289 - TOPMARGIN, 7 - BOTTOMMARGIN, 158 - END - IDD_OPT_SOUND, DIALOG BEGIN LEFTMARGIN, 4 @@ -2028,6 +1942,7 @@ // Generated from the TEXTINCLUDE 3 resource. // +#include "saa-res.rc" ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED Index: resource.h =================================================================== --- resource.h (revision 6899) +++ resource.h (working copy) @@ -1,3 +1,6 @@ +#ifndef _WIN32_IE +#define _WIN32_IE 0x0501 +#endif //{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by resource.rc @@ -21,7 +24,6 @@ #define IDD_URLRECV 120 #define IDD_AUTHREQ 121 #define IDD_DETAILS 125 -#define IDD_HISTORY 127 #define IDI_AWAY 128 #define IDI_FREE4CHAT 129 #define IDI_INVISIBLE 130 @@ -43,7 +45,6 @@ #define IDR_CONTEXT 180 #define IDR_ICOLIB_CONTEXT 181 #define IDC_DROP 183 -#define IDD_HISTORY_FIND 192 #define IDI_SENDEMAIL 193 #define IDD_FILERECV 194 #define IDD_PROFILEMANAGER 197