--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tcpiputils/dhcp/include/DHCPStatesDebug.h Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,146 @@
+// Copyright (c) 2005-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:
+// Contains functionality to publish states as they are processed, this is so test harnesses can keep an eye on DHCP.
+//
+//
+
+/**
+ @file DHCPStatesDebug.h
+*/
+
+#ifndef __DHCPSTATESDEBUG_H__
+#define __DHCPSTATESDEBUG_H__
+
+#include <e32property.h>
+#include "DHCP_Std.h"
+
+//-- interface debug control functions numbers
+const TUint KDHCP_GetPubSubMonitorHandle = KDhcpInterfaceDbgIoctl | KConnWriteUserDataBit | 1; //-- obtain handle for client to monitor DHCP session
+ //-- (see DHCPStatesDebug.h)
+
+namespace DHCPDebug
+{
+
+#ifdef _DEBUG_DHCP_STATE_NAMES
+const TText* State_Name[] =
+ {
+ (const TText*)L"EDHCPSelect",
+ (const TText*)L"EDHCPInformationConfig",
+ (const TText*)L"EDHCPRebootConfirm",
+ (const TText*)L"EDHCPRequest",
+ (const TText*)L"EDHCPRebind",
+ (const TText*)L"EDHCPWaitForDADBind",
+ (const TText*)L"EDHCPRenew",
+ (const TText*)L"EDHCPRelease",
+ (const TText*)L"EDHCPRemoveConfiguredAddress",
+ (const TText*)L"EDHCPDecline",
+ (const TText*)L"EDHCPIP4Select",
+ (const TText*)L"EDHCPIP6ListenToNeighbor",
+ (const TText*)L"EDHCPIP6Solicit",
+ (const TText*)L"EDHCPIP6Select",
+ (const TText*)L"EDHCPIP6InformRequest",
+ (const TText*)L"EDHCPIP6Release",
+ (const TText*)L"EDHCPIP6Decline",
+ (const TText*)L"EDHCPIP6Confirm",
+ (const TText*)L"EDHCPIP6WaitForDAD",
+ (const TText*)L"EDHCPIP6Renew",
+ (const TText*)L"EDHCPIP6Rebind",
+ (const TText*)L"EDHCPIP6Reconfigure",
+ (const TText*)L"EDHCPIPAddressAcquisition",
+ (const TText*)L"EStateUnknown"
+ };
+#else
+extern const TText* State_Name[];
+#endif
+
+
+typedef enum
+ {
+ EDHCPSelect = 0,
+ EDHCPInformationConfig = 1,
+ EDHCPRebootConfirm = 2,
+ EDHCPRequest = 3,
+ EDHCPRebind = 4,
+ EDHCPWaitForDADBind = 5,
+ EDHCPRenew = 6,
+ EDHCPRelease = 7,
+ EDHCPRemoveConfiguredAddress = 8,
+ EDHCPDecline = 9,
+ EDHCPIP4Select = 10,
+ EDHCPIP6ListenToNeighbor = 11,
+ EDHCPIP6Solicit = 12,
+ EDHCPIP6Select = 13,
+ EDHCPIP6InformRequest = 14,
+ EDHCPIP6Release = 15,
+ EDHCPIP6Decline = 16,
+ EDHCPIP6Confirm = 17,
+ EDHCPIP6WaitForDAD = 18,
+ EDHCPIP6Renew = 19,
+ EDHCPIP6Rebind = 20,
+ EDHCPIP6Reconfigure = 21,
+ EDHCPIPAddressAcquisition = 22,
+ EStateUnknown = 23
+#ifdef SYMBIAN_NETWORKING_DHCPSERVER
+ ,
+ EDHCPProvideOffer = 24,
+ EDHCPSendAckNak = 25,
+ EDHCPWaitForClientMsgs = 26,
+ EDHCPIP4HandleClientMsgs = 27,
+ EDHCPIP4SendRequestResponse = 28,
+ EDHCPIP4SendInformResponse = 29,
+ EDHCPIP4BindServer = 30
+#endif // SYMBIAN_NETWORKING_DHCPSERVER
+ } State;
+
+typedef enum
+ {
+ EUnknown = 0,
+ ENotReady = 1,
+ EReady = 2
+ } Readiness;
+
+
+// offset from the handle value.. as handle is a pointer to the state machine, we'd better not have too many of these :-)
+//
+typedef enum
+ {
+ EState = 0,
+ EReadiness = 1
+ } Attribute;
+
+
+
+} // end of namespace
+
+
+#define DHCP_DEBUG_PUBLISH(w,x) {RProperty a; TUid u = TUid::Uid(0x101fd9c5); a.Define(u, (TUint)(w), RProperty::EInt); a.Set(u, (TUint)(w), (TInt)(x)); a.Close();}
+#define DHCP_DEBUG_QUERYL(w,x) {TAutoClose<RProperty> a; TUid u = TUid::Uid(0x101fd9c5); User::LeaveIfError( a.iObj.Attach(u, (TUint)(w)) ); a.PushL(); a.iObj.Get((TInt&)(x)); a.Pop();}
+#define DHCP_DEBUG_SUBSCRIBEL(w) {TAutoClose<RProperty> a; TUid u = TUid::Uid(0x101fd9c5); User::LeaveIfError( a.iObj.Attach(u, (TUint)(w)) ); a.PushL(); TRequestStatus pubStat; a.iObj.Subscribe(pubStat); User::WaitForRequest( pubStat ); User::LeaveIfError( pubStat.Int() ); a.Pop();}
+
+
+
+#ifdef _DEBUG
+
+#define DHCP_DEBUG_PUBLISH_STATE(x) DHCP_DEBUG_PUBLISH( (DHCPDebug::EState+(TInt)iStateMachine) , (x) )
+#define DHCP_DEBUG_PUBLISH_READY(x) DHCP_DEBUG_PUBLISH( (DHCPDebug::EReadiness+(TInt)iDhcpStateMachine) , (x) )
+
+#else // _DEBUG
+
+#define DHCP_DEBUG_PUBLISH_STATE(x)
+#define DHCP_DEBUG_PUBLISH_READY(x)
+
+#endif // _DEBUG
+
+#endif // __DHCPSTATESDEBUG_H__
+