15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* ***** BEGIN LICENSE BLOCK ***** 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Version: MPL 1.1/GPL 2.0/LGPL 2.1 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The contents of this file are subject to the Mozilla Public License Version 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1.1 (the "License"); you may not use this file except in compliance with 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the License. You may obtain a copy of the License at 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * http://www.mozilla.org/MPL/ 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Software distributed under the License is distributed on an "AS IS" basis, 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * for the specific language governing rights and limitations under the 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * License. 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The Original Code is mozilla.org code. 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The Initial Developer of the Original Code is 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Netscape Communications Corporation. 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Portions created by the Initial Developer are Copyright (C) 1998 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the Initial Developer. All Rights Reserved. 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Contributor(s): 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Alternatively, the contents of this file may be used under the terms of 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * either the GNU General Public License Version 2 or later (the "GPL"), or 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * in which case the provisions of the GPL or the LGPL are applicable instead 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * of those above. If you wish to allow use of your version of this file only 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * under the terms of either the GPL or the LGPL, and not to allow others to 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * use your version of this file under the terms of the MPL, indicate your 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * decision by deleting the provisions above and replace them with the notice 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * and other provisions required by the GPL or the LGPL. If you do not delete 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the provisions above, a recipient may use your version of this file under 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the terms of any one of the MPL, the GPL or the LGPL. 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * ***** END LICENSE BLOCK ***** */ 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "xp.h" 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "logger.h" 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "profile.h" 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "plugload.h" 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Logger::Logger() : 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bMutedAll(FALSE), 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bOnTop(TRUE), 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bToWindow(TRUE), 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bToConsole(FALSE), 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bToFile(FALSE), 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bSPALID(FALSE) 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(0 != GetPluginsDir(szFile, sizeof(szFile))) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) strcat(szFile, DIR_SEPARATOR); 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) strcat(szFile, DEFAULT_LOG_FILE_NAME); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) szFile[0] = '\0'; 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for(int i = 0; i < sizeof(bMutedCalls)/sizeof(BOOL); i++) 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bMutedCalls[i] = FALSE; 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bMutedCalls[action_npn_mem_alloc] = TRUE; 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bMutedCalls[action_npn_mem_free] = TRUE; 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bMutedCalls[action_npn_mem_flush] = TRUE; 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Logger::~Logger() 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BOOL Logger::init() 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToFile) 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.create(szFile, TRUE); 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return TRUE; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Logger::shut() 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.close(); 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define MAX_OUTPUT_SIZE 8192 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Logger::logNS_NP_GetEntryPoints() 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char szLog[] = "NP_GetEntryPoints by Netscape\r\n"; 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToConsole) 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf("%s", szLog); 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToFile) 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.write(szLog); 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToWindow) 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow(szLog); 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Logger::logNS_NP_Initialize() 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char szLog[] = "NP_Initialize by Netscape\r\n"; 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToConsole) 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf("%s", szLog); 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToFile) 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.write(szLog); 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToWindow) 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow(szLog); 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Logger::logNS_NP_Shutdown() 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char szLog[] = "NP_Shutdown by Netscape\r\n"; 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToConsole) 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf("%s", szLog); 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToFile) 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.write(szLog); 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToWindow) 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow(szLog); 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Logger::logSPY_NP_GetEntryPoints(NPPluginFuncs * pNPPFuncs) 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char szLog[80] = "NP_GetEntryPoints by NPSpy\r\n"; 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToConsole) 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf("%s", szLog); 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToFile) 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.write(szLog); 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToWindow) 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow(szLog); 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(!pNPPFuncs) 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return; 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char szLog1[80],szLog2[80],szLog3[80],szLog4[80],szLog5[80],szLog6[80],szLog7[80], 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) szLog8[80],szLog9[80],szLog10[80],szLog11[80],szLog12[80],szLog13[80],szLog14[80], 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) szLog15[80],szLog16[80],szLog17[80],szLog18[80],szLog19[80],szLog20[80]; 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog1, "\r\n"); 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog2, " Plugin entry point table\r\n"); 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog3, " ========================\r\n"); 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(pNPPFuncs->size) 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog4, " size = %i\r\n", pNPPFuncs->size); 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog4, " size = not set!\r\n"); 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(pNPPFuncs->version) 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog5, " version = %i\r\n", pNPPFuncs->version); 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog5, " version = not set!\r\n"); 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(pNPPFuncs->newp) 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog6, " newp = %#08lx\r\n", pNPPFuncs->newp); 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog6, " newp = not set!\r\n"); 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(pNPPFuncs->destroy) 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog7, " destroy = %#08lx\r\n", pNPPFuncs->destroy); 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog7, " destroy = not set!\r\n"); 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(pNPPFuncs->setwindow) 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog8, " setwindow = %#08lx\r\n", pNPPFuncs->setwindow); 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog8, " setwindow = not set!\r\n"); 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(pNPPFuncs->newstream) 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog9, " newstream = %#08lx\r\n", pNPPFuncs->newstream); 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog9, " newstream = not set!\r\n"); 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(pNPPFuncs->destroystream) 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog10, " destroystream = %#08lx\r\n", pNPPFuncs->destroystream); 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog10, " destroystream = not set!\r\n"); 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(pNPPFuncs->asfile) 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog11, " asfile = %#08lx\r\n", pNPPFuncs->asfile); 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog11, " asfile = not set!\r\n"); 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(pNPPFuncs->writeready) 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog12, " writeready = %#08lx\r\n", pNPPFuncs->writeready); 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog12, " writeready = not set!\r\n"); 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(pNPPFuncs->write) 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog13, " write = %#08lx\r\n", pNPPFuncs->write); 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog13, " write = not set!\r\n"); 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(pNPPFuncs->print) 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog14, " print = %#08lx\r\n", pNPPFuncs->print); 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog14, " print = not set!\r\n"); 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(pNPPFuncs->event) 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog15, " event = %#08lx\r\n", pNPPFuncs->event); 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog15, " event = not set!\r\n"); 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(pNPPFuncs->urlnotify) 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog16, " urlnotify = %#08lx\r\n", pNPPFuncs->urlnotify); 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog16, " urlnotify = not set!\r\n"); 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(pNPPFuncs->javaClass) 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog17, " javaClass = %#08lx\r\n", pNPPFuncs->javaClass); 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog17, " javaClass = not set!\r\n"); 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(pNPPFuncs->getvalue) 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog18, " getvalue = %#08lx\r\n", pNPPFuncs->getvalue); 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog18, " getvalue = not set!\r\n"); 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(pNPPFuncs->setvalue) 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog19, " setvalue = %#08lx\r\n", pNPPFuncs->setvalue); 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog19, " setvalue = not set!\r\n"); 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(szLog20, "\r\n"); 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToConsole) 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf("%s", szLog1); printf("%s", szLog2); printf("%s", szLog3); printf("%s", szLog4); 2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf("%s", szLog5); printf("%s", szLog6); printf("%s", szLog7); printf("%s", szLog8); 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf("%s", szLog9); printf("%s", szLog10); printf("%s", szLog11); printf("%s", szLog12); 2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf("%s", szLog13); printf("%s", szLog14); printf("%s", szLog15); printf("%s", szLog16); 2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf("%s", szLog17); printf("%s", szLog18); printf("%s", szLog19); printf("%s", szLog20); 2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToFile) 2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.write(szLog1); filer.write(szLog2); filer.write(szLog3); filer.write(szLog4); 2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.write(szLog5); filer.write(szLog6); filer.write(szLog7); filer.write(szLog8); 2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.write(szLog9); filer.write(szLog10); filer.write(szLog11); filer.write(szLog12); 2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.write(szLog13); filer.write(szLog14); filer.write(szLog15); filer.write(szLog16); 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.write(szLog17); filer.write(szLog18); filer.write(szLog19); filer.write(szLog20); 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToWindow) 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow(szLog1); dumpStringToMainWindow(szLog2); 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow(szLog3); dumpStringToMainWindow(szLog4); 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow(szLog5); dumpStringToMainWindow(szLog6); 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow(szLog7); dumpStringToMainWindow(szLog8); 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow(szLog9); dumpStringToMainWindow(szLog10); 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow(szLog11); dumpStringToMainWindow(szLog12); 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow(szLog13); dumpStringToMainWindow(szLog14); 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow(szLog15); dumpStringToMainWindow(szLog16); 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow(szLog17); dumpStringToMainWindow(szLog18); 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow(szLog19); dumpStringToMainWindow(szLog20); 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Logger::logSPY_NP_Initialize() 2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char szLog[] = "NP_Initialize by NPSpy\r\n"; 2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToConsole) 2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf("%s", szLog); 2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToFile) 2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.write(szLog); 2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToWindow) 2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow(szLog); 2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Logger::logSPY_NP_Shutdown(char * mimetype) 2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char szLog[512] = "NP_Shutdown by NPSpy\r\n"; 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(mimetype) 2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) strcat(szLog, " for \""); 2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) strcat(szLog, mimetype); 2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) strcat(szLog, "\"\r\n"); 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToConsole) 2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf("%s", szLog); 2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToFile) 2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.write(szLog); 2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToWindow) 3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow(szLog); 3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Logger::logCall(NPAPI_Action action, DWORD dw1, DWORD dw2, DWORD dw3, DWORD dw4, DWORD dw5, DWORD dw6, DWORD dw7) 3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(isMuted(action)) 3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return; 3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) std::string log; 3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) LogItemStruct * lis = makeLogItemStruct(action, dw1, dw2, dw3, dw4, dw5, dw6, dw7); 3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) formatLogItem(lis, &log, TRUE); 3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) freeLogItemStruct(lis); 3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToConsole) 3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf("%s", log.c_str()); 3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToFile) 3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.write(log); 3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToWindow) 3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow(log); 3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Logger::logMessage(const char *msg) 3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToConsole) 3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf("%s", msg); 3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToFile) 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.write((char *)msg); 3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToWindow) 3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) dumpStringToMainWindow((char *)msg); 3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Logger::logReturn(NPAPI_Action action, DWORD dwRet) 3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (isMuted(action)) 3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return; 3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) char msg[512]; 3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) sprintf(msg, "---Return: %d\r\n", dwRet); 3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) logMessage(msg); 3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Logger::setOnTop(BOOL ontop) 3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bOnTop = ontop; 3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Logger::setToFile(BOOL tofile, char * filename) 3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(!filename || !*filename || (strlen(filename) > _MAX_PATH)) 3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bToFile = FALSE; 3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return; 3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) //don't screw up the file on false call 3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BOOL samefile = (_stricmp(szFile, filename) == 0); 3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) BOOL sameaction = (bToFile == tofile); 3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(sameaction) 3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(samefile) 3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return; 3685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) strcpy(szFile, filename); 3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToFile) 3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.close(); 3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.create(szFile, TRUE); 3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(!sameaction) 3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bToFile = tofile; 3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(!samefile) 3835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) strcpy(szFile, filename); 3845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bToFile) 3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.create(szFile, TRUE); 3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) else 3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) filer.close(); 3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BOOL Logger::isMuted(NPAPI_Action action) 3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(bMutedAll) 3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return TRUE; 3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if(action >= TOTAL_NUMBER_OF_API_CALLS) 3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) { 3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) assert(0); 4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return FALSE; 4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return bMutedCalls[action]; 4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BOOL * Logger::getMutedCalls() 4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return &bMutedCalls[0]; 4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void Logger::setMutedCalls(BOOL * mutedcalls) 4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){ 4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for(int i = 0; i < sizeof(bMutedCalls)/sizeof(BOOL); i++) 4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) bMutedCalls[i] = mutedcalls[i]; 4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 416