diff -r 000000000000 -r af10295192d8 linklayerprotocols/pppnif/INC/PPPLOG.H --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/linklayerprotocols/pppnif/INC/PPPLOG.H Tue Jan 26 15:23:49 2010 +0200 @@ -0,0 +1,149 @@ +// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +/** + @file + @internalComponent +*/ + +#if !defined(__PPPLOG_H__) +#define __PPPLOG_H__ + +#include +#include +#include "PPPSOCK.H" +#include "PPPDEF.H" + +// ss_log.h is included +#if !defined(LOG) + +#if defined (__FLOG_ACTIVE) + +#define ESOCK_LOGGING_ACTIVE +#define LOG(a) a +#else +#define LOG(a) +#endif + +#endif + +const TInt KMaxTcpDumpLogFileName = 58; + +/** Packet frame file format */ +enum {EpppDumpLogFormat,ElastLogFormat}; + +/** Format of packets to log in the packet frame file */ +enum {EpppLogLinkFormat,ErawIpLogLinkFormat,ElastLogLinkFormat}; + +/** Data transfer direction (defined by pppdump log spec) */ +enum {EpppDirectionSend=1,EpppDirectionReceive=2}; + +/** +PPP debug logging class. +Manages textual output and binary packet dump files. +@internalTechnology +*/ +NONSHARABLE_CLASS(CPppLog) : public CBase + { +public: + static const TInt KHexDumpWidth = 16; + + static CPppLog* NewL(); + virtual ~CPppLog(); + void SetLogFileNameL(const TDesC& aName); + +private: + CPppLog(); + void ConstructL(); + +private: + HBufC* iLogFileName; + TBuf8 iTcpDumpLogFileName; + __FLOG_DECLARATION_MEMBER; + + /** ETrue once the file header has been written to the packet dump file */ + TBool iLogHeaderDone; + + /** Packet dump file format to use */ + TInt iLogFormat; + + /** What should be logged in the packet dump file */ + TInt iLogType; + + /** Time of last packet logged */ + TTime iTimeOrigin; + +public: + virtual void Write(const TDesC& aDes); + virtual void Printf(const TRefByValue aFmt, ...); + void HexDump(const TText* aHeader, const TText* aMargin, const TUint8* aPtr, TInt aLen, TInt aWidth = KHexDumpWidth); +// + void Dump(RMBufChain& aPacket, TInt aChannel); + void DumpPhase(TPppPhase aOldPhase, TPppPhase aNewPhase); + void DumpState(const TText* aFsm, TPppFsmState aOldState, TPppFsmState aNewState); + void DumpFrame(TInt direction, const TDesC8& aBuffer); + void DumpFrameFileHeader(TInt aLogFormat, TInt aLogType); + +private: + TInt DumpLcp(TPtrC8& aDes); + TInt DumpPap(TPtrC8& aDes); + TInt DumpChap(TPtrC8& aDes); + TInt DumpCbcp(TPtrC8& aDes); + TInt DumpLcpOption(TPtrC8& aDes); + TInt DumpIpcp(TPtrC8& aDes); + TInt DumpIp6cp(TPtrC8& aDes); + TInt DumpIpcpOption(TPtrC8& aDes); + TInt DumpIp6cpOption(TPtrC8& aDes); + void DumpChapType(const TUint8* aPtr); + TInt DumpCcp(TPtrC8& aDes); + TInt DumpCcpOption(TPtrC8& aDes); + void DumpBytes(const TText* aMargin, const TUint8* aPtr, TInt aLen); + TInt DumpIp(TPtrC8& aDes); + TInt DumpIp6(TPtrC8& aDes); + TInt DumpIp6MainHeader(TPtrC8& aDes); + TInt DumpVjUncompTcp(TPtrC8& aDes); + TInt DumpVjCompTcp(TPtrC8& aDes); + TUint16 DecodeDelta(TUint8 * & aPtr); + TInt16 DecodeSignedDelta(TUint8 * & aPtr); + TInt DumpTcp(TPtrC8& aDes, TUint32 aSrcA, TUint32 aDstA, TInt aLength); + TInt DumpIcmp(TPtrC8& aDes, TInt aLength); + TInt DumpUdp(TPtrC8& aDes, TUint32 aSrcA, TUint32 aDstA, TInt aLength); + TInt DumpDns(TPtrC8& aDes); +// + TInt DumpDnsNameAndType(TPtrC8& aDes); + TInt DumpDnsQuery(TPtrC8& aDes); + TInt DumpDnsAnswer(TPtrC8& aDes); + TInt UpdatePtr(TPtrC8& aDes, TUint8* ptr); + + const TText* ProtocolToText(TUint aValue); + const TText* PhaseToText(TPppPhase aPhase); + const TText* StateToText(TPppFsmState aState); + const TText* LcpCodeToText(TUint aValue); + const TText* LcpOptToText(TUint aValue); + const TText* FsmCodeToText(TUint aValue); + const TText* CallbackOpToText(TUint aValue); + const TText* PapCodeToText(TUint aValue); + const TText* ChapCodeToText(TUint aValue); + const TText* CbcpCodeToText(TUint aValue); + const TText* IpcpCodeToText(TUint aValue); + const TText* Ip6cpCodeToText(TUint aValue); + const TText* CcpCodeToText(TUint aValue); + const TText* IpProtocolToText(TUint aValue); + + void PppDumpFileHeader(); + void PppDumpFrame(TInt direction, TUint32 timeStep, const TDesC8& aBuffer); + }; + +#endif