[Olsr-cvs] olsrd-current/gui/win32/Main Main.vcproj, NONE, 1.1 Frontend.cpp, 1.7, 1.8 Frontend.h, 1.5, 1.6 Frontend.rc, 1.7, 1.8 FrontendDlg.cpp, 1.10, 1.11 FrontendDlg.h, 1.6, 1.7 HnaEntry.cpp, 1.3, 1.4 HnaEntry.h, 1.3, 1.4 Ipc.h, 1.5, 1.6 LQ-Default.olsr, 1.1, 1.2 MidEntry.cpp, 1.3, 1.4 MidEntry.h, 1.3, 1.4 MprEntry.cpp, 1.3, 1.4 MprEntry.h, 1.3, 1.4 MyDialog1.cpp, 1.6, 1.7 MyDialog1.h, 1.5, 1.6 MyDialog2.cpp, 1.8, 1.9 MyDialog2.h, 1.8, 1.9 MyDialog3.cpp, 1.4, 1.5 MyDialog3.h, 1.3, 1.4 MyDialog4.cpp, 1.3, 1.4 MyDialog4.h, 1.3, 1.4 MyEdit.cpp, 1.3, 1.4 MyEdit.h, 1.3, 1.4 MyTabCtrl.cpp, 1.4, 1.5 MyTabCtrl.h, 1.5, 1.6 NodeEntry.cpp, 1.3, 1.4 NodeEntry.h, 1.3, 1.4 RFC-Default.olsr, 1.1, 1.2 StdAfx.cpp, 1.3, 1.4 StdAfx.h, 1.3, 1.4 TrayIcon.cpp, 1.3, 1.4 TrayIcon.h, 1.1, 1.2 resource.h, 1.6, 1.7 Frontend.clw, 1.8, NONE Frontend.dsp, 1.5, NONE Switch.exe.manifest, 1.1, NONE

Thomas Lopatic (spam-protected)
Tue Mar 27 05:01:10 CEST 2007


Update of /cvsroot/olsrd/olsrd-current/gui/win32/Main
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv27684/Main

Modified Files:
	Frontend.cpp Frontend.h Frontend.rc FrontendDlg.cpp 
	FrontendDlg.h HnaEntry.cpp HnaEntry.h Ipc.h LQ-Default.olsr 
	MidEntry.cpp MidEntry.h MprEntry.cpp MprEntry.h MyDialog1.cpp 
	MyDialog1.h MyDialog2.cpp MyDialog2.h MyDialog3.cpp 
	MyDialog3.h MyDialog4.cpp MyDialog4.h MyEdit.cpp MyEdit.h 
	MyTabCtrl.cpp MyTabCtrl.h NodeEntry.cpp NodeEntry.h 
	RFC-Default.olsr StdAfx.cpp StdAfx.h TrayIcon.cpp TrayIcon.h 
	resource.h 
Added Files:
	Main.vcproj 
Removed Files:
	Frontend.clw Frontend.dsp Switch.exe.manifest 
Log Message:
Use Visual Studio .NET 2005.

Index: Frontend.cpp
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/Frontend.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** Frontend.cpp	17 Jan 2005 11:52:35 -0000	1.7
--- Frontend.cpp	27 Mar 2007 03:01:06 -0000	1.8
***************
*** 1,300 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "Frontend.h"
! #include "FrontendDlg.h"
! #include "TrayIcon.h"
! 
! #ifdef _DEBUG
! #define new DEBUG_NEW
! #undef THIS_FILE
! static char THIS_FILE[] = __FILE__;
! #endif
! 
! BEGIN_MESSAGE_MAP(CFrontendApp, CWinApp)
! 	//{{AFX_MSG_MAP(CFrontendApp)
! 	//}}AFX_MSG
! 	ON_COMMAND(ID_HELP, CWinApp::OnHelp)
! END_MESSAGE_MAP()
! 
! CFrontendApp::CFrontendApp()
! {
! }
! 
! CFrontendApp theApp;
! 
! static int SetEnableRedirKey(unsigned long New)
! {
! 	HKEY Key;
! 	unsigned long Type;
! 	unsigned long Len;
! 	unsigned long Old;
! 	
! 	if (::RegOpenKeyEx(HKEY_LOCAL_MACHINE,
! 		"SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters",
! 		0, KEY_READ | KEY_WRITE, &Key) != ERROR_SUCCESS)
! 		return -1;
! 	
! 	Len = sizeof (Old);
! 	
! 	if (::RegQueryValueEx(Key, "EnableICMPRedirect", NULL, &Type,
! 		(unsigned char *)&Old, &Len) != ERROR_SUCCESS ||
! 		Type != REG_DWORD)
! 		Old = 1;
! 	
! 	if (::RegSetValueEx(Key, "EnableICMPRedirect", 0, REG_DWORD,
! 		(unsigned char *)&New, sizeof (New)))
! 	{
! 		::RegCloseKey(Key);
! 		return -1;
! 	}
! 	
! 	::RegCloseKey(Key);
! 	return Old;
! }
! 
! BOOL CFrontendApp::InitInstance()
! {
! 	int Res;
! 
! #ifdef _AFXDLL
! 	Enable3dControls();
! #else
! 	Enable3dControlsStatic();
! #endif
! 
! 	CCommandLineInfo CmdLineInfo;
! 	ParseCommandLine(CmdLineInfo);
! 
! 	CFrontendDlg dlg;
! 
! 	tray_icon = new TrayIcon( dlg, AfxGetInstanceHandle() );
! 
! 	dlg.ConfigFile = CmdLineInfo.m_strFileName;
! 
! 	m_pMainWnd = &dlg;
! 
! 	Res = SetEnableRedirKey(0);
! 
! 	if (Res == 1)
! 	{
! 		Res = AfxMessageBox("- WARNING -\n\n"
! 			"The OLSR software has just switched off the processing of incoming ICMP "
! 			" redirect messages in your registry.\n\n"
! 			" Please REBOOT your computer for this change to take effect.\n\n"
! 			" Do you want to allow the OLSR software to reboot your computer now?\n\n"
! 			" (Please say \"Yes\".)", MB_YESNO | MB_ICONEXCLAMATION);
! 
! 		if (Res == IDYES)
! 		{
! 			HANDLE Proc;
! 			HMODULE Lib;
! 			BOOL (*Open)(HANDLE, DWORD, HANDLE *);
! 			BOOL (*Lookup)(char *, char *, LUID *);
! 			BOOL (*Adjust)(HANDLE, BOOL, TOKEN_PRIVILEGES *, DWORD,
! 				TOKEN_PRIVILEGES *, DWORD *);
! 			HANDLE Token;
! 
! 			Proc = ::GetCurrentProcess();
! 
! 			Lib = ::LoadLibrary("advapi32.dll");
! 
! 			if (Lib != NULL)
! 			{
! 				Open = (BOOL (*)(HANDLE, DWORD, HANDLE *))
! 					::GetProcAddress(Lib, "OpenProcessToken");
! 
! 				Lookup = (BOOL (*)(char *, char *, LUID *))
! 					::GetProcAddress(Lib, "LookupPrivilegeValueA");
! 
! 				Adjust = (BOOL (*)(HANDLE, BOOL, TOKEN_PRIVILEGES *, DWORD,
! 					TOKEN_PRIVILEGES *, DWORD *))
! 					::GetProcAddress(Lib, "AdjustTokenPrivileges");
! 
! 				if (Open != NULL && Lookup != NULL && Adjust != NULL)
! 				{
! 					struct
! 					{
! 						DWORD Count;
! 						LUID_AND_ATTRIBUTES Priv;
! 					}
! 					TokPriv;
! 
! 					Proc = ::GetCurrentProcess();
! 
! 					if (!Open(Proc, TOKEN_ALL_ACCESS, &Token))
! 						AfxMessageBox("OpenProcessToken() failed.");
! 
! 					else if (!Lookup("", "SeShutdownPrivilege", &TokPriv.Priv.Luid))
! 						AfxMessageBox("LookupPrivilegeValue() failed.");
! 
! 					else
! 					{
! 						TokPriv.Count = 1;
! 						TokPriv.Priv.Attributes = SE_PRIVILEGE_ENABLED;
! 
! 						if (!Adjust(Token, FALSE, (TOKEN_PRIVILEGES *)&TokPriv,
! 							0, NULL, NULL))
! 							AfxMessageBox("AdjustTokenPrivilege() failed.");
! 					}
! 				}
! 
! 				::FreeLibrary(Lib);
! 			}
! 
! 			::ExitWindowsEx(EWX_REBOOT, 0);
! 			::TerminateProcess(Proc, 0);
! 		}
! 	}
! 
! 	RedirectStdHandles();
! 
! 	dlg.DoModal();
! 
! 	return FALSE;
! }
! 
! unsigned int CFrontendApp::RedirectThreadFunc(void)
! {
! 	char Buff[1000];
! 	int Len;
! 	int Left, Right;
! 	CString Line;
! 	CString Int;
! 
! 	while (::ReadFile(OutRead, Buff, sizeof (Buff) - 1, (unsigned long *)&Len, NULL))
! 	{
! 		if (Len == 0)
! 			break;
! 
! 		Left = 0;
! 
! 		for (Right = 0; Right < Len; Right++)
! 		{
! 			if (Buff[Right] != 13)
! 				Buff[Left++] = Buff[Right];
! 		}
! 
! 		Len = Left;
! 
! 		Left = 0;
! 
! 		for (Right = 0; Right < Len; Right++)
! 		{
! 			if (Buff[Right] == 10)
! 			{
! 				Buff[Right] = 0;
! 				Line += (Buff + Left);
! 
! 				AfxMessageBox(Line);
! 
! 				Line.Empty();
! 
! 				Left = Right + 1;
! 			}
! 		}
! 
! 		Buff[Right] = 0;
! 		Line += (Buff + Left);
! 	}
! 
! 	AfxEndThread(0);
! 	return 0;
! }
! 
! static unsigned int RedirectThreadStub(void *Arg)
! {
! 	class CFrontendApp *This;
! 
! 	This = (class CFrontendApp *)Arg;
! 
! 	return This->RedirectThreadFunc();
! }
! 
! struct IoInfo
! {
! 	HANDLE Hand;
! 	unsigned char Attr;
! 	char Buff;
! #if defined _MT
! 	int Flag;
! 	CRITICAL_SECTION Lock;
! #endif
! };
! 
! extern "C" struct IoInfo *__pioinfo[];
! 
! extern "C" void win32_stdio_hack(unsigned int handle);
! 
! int CFrontendApp::RedirectStdHandles(void)
! {
! 	SECURITY_ATTRIBUTES SecAttr;
! 	HANDLE OutWrite;
! 	struct IoInfo *Info;
! 
! 	SecAttr.nLength = sizeof (SECURITY_ATTRIBUTES);
! 	SecAttr.lpSecurityDescriptor = NULL;
! 	SecAttr.bInheritHandle = TRUE;
! 
! 	if (!::CreatePipe(&OutRead, &OutWrite, &SecAttr, 0))
! 	{
! 		AfxMessageBox("Cannot create stdout pipe.");
! 		return -1;
! 	}
! 
! 	AfxBeginThread(RedirectThreadStub, (void *)this);
! 
! 	Info = __pioinfo[0];
! 
! 	// Info[1].Hand = OutWrite;
! 	// Info[1].Attr = 0x89; // FOPEN | FTEXT | FPIPE;
! 
! 	Info[2].Hand = OutWrite;
! 	Info[2].Attr = 0x89;
! 
! 	// stdout->_file = 1;
! 	stderr->_file = 2;
! 
! 	win32_stdio_hack((unsigned int)OutWrite);
! 
! 	return 0;
! }
--- 1,294 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "Frontend.h"
! #include "FrontendDlg.h"
! #include "TrayIcon.h"
! 
! #ifdef _DEBUG
! #define new DEBUG_NEW
! #undef THIS_FILE
! static char THIS_FILE[] = __FILE__;
! #endif
! 
! BEGIN_MESSAGE_MAP(CFrontendApp, CWinApp)
! 	//{{AFX_MSG_MAP(CFrontendApp)
! 	//}}AFX_MSG
! 	ON_COMMAND(ID_HELP, CWinApp::OnHelp)
! END_MESSAGE_MAP()
! 
! CFrontendApp::CFrontendApp()
! {
! }
! 
! CFrontendApp theApp;
! 
! static int SetEnableRedirKey(unsigned long New)
! {
! 	HKEY Key;
! 	unsigned long Type;
! 	unsigned long Len;
! 	unsigned long Old;
! 	
! 	if (::RegOpenKeyEx(HKEY_LOCAL_MACHINE,
! 		"SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters",
! 		0, KEY_READ | KEY_WRITE, &Key) != ERROR_SUCCESS)
! 		return -1;
! 	
! 	Len = sizeof (Old);
! 	
! 	if (::RegQueryValueEx(Key, "EnableICMPRedirect", NULL, &Type,
! 		(unsigned char *)&Old, &Len) != ERROR_SUCCESS ||
! 		Type != REG_DWORD)
! 		Old = 1;
! 	
! 	if (::RegSetValueEx(Key, "EnableICMPRedirect", 0, REG_DWORD,
! 		(unsigned char *)&New, sizeof (New)))
! 	{
! 		::RegCloseKey(Key);
! 		return -1;
! 	}
! 	
! 	::RegCloseKey(Key);
! 	return Old;
! }
! 
! BOOL CFrontendApp::InitInstance()
! {
! 	int Res;
! 
! 	CCommandLineInfo CmdLineInfo;
! 	ParseCommandLine(CmdLineInfo);
! 
! 	CFrontendDlg dlg;
! 
! 	tray_icon = new TrayIcon( dlg, AfxGetInstanceHandle() );
! 
! 	dlg.ConfigFile = CmdLineInfo.m_strFileName;
! 
! 	m_pMainWnd = &dlg;
! 
! 	Res = SetEnableRedirKey(0);
! 
! 	if (Res == 1)
! 	{
! 		Res = AfxMessageBox("- WARNING -\n\n"
! 			"The OLSR software has just switched off the processing of incoming ICMP "
! 			" redirect messages in your registry.\n\n"
! 			" Please REBOOT your computer for this change to take effect.\n\n"
! 			" Do you want to allow the OLSR software to reboot your computer now?\n\n"
! 			" (Please say \"Yes\".)", MB_YESNO | MB_ICONEXCLAMATION);
! 
! 		if (Res == IDYES)
! 		{
! 			HANDLE Proc;
! 			HMODULE Lib;
! 			BOOL (*Open)(HANDLE, DWORD, HANDLE *);
! 			BOOL (*Lookup)(char *, char *, LUID *);
! 			BOOL (*Adjust)(HANDLE, BOOL, TOKEN_PRIVILEGES *, DWORD,
! 				TOKEN_PRIVILEGES *, DWORD *);
! 			HANDLE Token;
! 
! 			Proc = ::GetCurrentProcess();
! 
! 			Lib = ::LoadLibrary("advapi32.dll");
! 
! 			if (Lib != NULL)
! 			{
! 				Open = (BOOL (*)(HANDLE, DWORD, HANDLE *))
! 					::GetProcAddress(Lib, "OpenProcessToken");
! 
! 				Lookup = (BOOL (*)(char *, char *, LUID *))
! 					::GetProcAddress(Lib, "LookupPrivilegeValueA");
! 
! 				Adjust = (BOOL (*)(HANDLE, BOOL, TOKEN_PRIVILEGES *, DWORD,
! 					TOKEN_PRIVILEGES *, DWORD *))
! 					::GetProcAddress(Lib, "AdjustTokenPrivileges");
! 
! 				if (Open != NULL && Lookup != NULL && Adjust != NULL)
! 				{
! 					struct
! 					{
! 						DWORD Count;
! 						LUID_AND_ATTRIBUTES Priv;
! 					}
! 					TokPriv;
! 
! 					Proc = ::GetCurrentProcess();
! 
! 					if (!Open(Proc, TOKEN_ALL_ACCESS, &Token))
! 						AfxMessageBox("OpenProcessToken() failed.");
! 
! 					else if (!Lookup("", "SeShutdownPrivilege", &TokPriv.Priv.Luid))
! 						AfxMessageBox("LookupPrivilegeValue() failed.");
! 
! 					else
! 					{
! 						TokPriv.Count = 1;
! 						TokPriv.Priv.Attributes = SE_PRIVILEGE_ENABLED;
! 
! 						if (!Adjust(Token, FALSE, (TOKEN_PRIVILEGES *)&TokPriv,
! 							0, NULL, NULL))
! 							AfxMessageBox("AdjustTokenPrivilege() failed.");
! 					}
! 				}
! 
! 				::FreeLibrary(Lib);
! 			}
! 
! 			::ExitWindowsEx(EWX_REBOOT, 0);
! 			::TerminateProcess(Proc, 0);
! 		}
! 	}
! 
! 	RedirectStdHandles();
! 
! 	dlg.DoModal();
! 
! 	return FALSE;
! }
! 
! unsigned int CFrontendApp::RedirectThreadFunc(void)
! {
! 	char Buff[1000];
! 	int Len;
! 	int Left, Right;
! 	CString Line;
! 	CString Int;
! 
! 	while (::ReadFile(OutRead, Buff, sizeof (Buff) - 1, (unsigned long *)&Len, NULL))
! 	{
! 		if (Len == 0)
! 			break;
! 
! 		Left = 0;
! 
! 		for (Right = 0; Right < Len; Right++)
! 		{
! 			if (Buff[Right] != 13)
! 				Buff[Left++] = Buff[Right];
! 		}
! 
! 		Len = Left;
! 
! 		Left = 0;
! 
! 		for (Right = 0; Right < Len; Right++)
! 		{
! 			if (Buff[Right] == 10)
! 			{
! 				Buff[Right] = 0;
! 				Line += (Buff + Left);
! 
! 				AfxMessageBox(Line);
! 
! 				Line.Empty();
! 
! 				Left = Right + 1;
! 			}
! 		}
! 
! 		Buff[Right] = 0;
! 		Line += (Buff + Left);
! 	}
! 
! 	AfxEndThread(0);
! 	return 0;
! }
! 
! static unsigned int RedirectThreadStub(void *Arg)
! {
! 	class CFrontendApp *This;
! 
! 	This = (class CFrontendApp *)Arg;
! 
! 	return This->RedirectThreadFunc();
! }
! 
! struct IoInfo
! {
! 	HANDLE Hand;
! 	unsigned char Attr;
! 	char Buff;
! #if defined _MT
! 	int Flag;
! 	CRITICAL_SECTION Lock;
! #endif
! };
! 
! extern "C" struct IoInfo *__pioinfo[];
! 
! extern "C" void win32_stdio_hack(unsigned int handle);
! 
! int CFrontendApp::RedirectStdHandles(void)
! {
! 	SECURITY_ATTRIBUTES SecAttr;
! 	HANDLE OutWrite;
! 	struct IoInfo *Info;
! 
! 	SecAttr.nLength = sizeof (SECURITY_ATTRIBUTES);
! 	SecAttr.lpSecurityDescriptor = NULL;
! 	SecAttr.bInheritHandle = TRUE;
! 
! 	if (!::CreatePipe(&OutRead, &OutWrite, &SecAttr, 0))
! 	{
! 		AfxMessageBox("Cannot create stdout pipe.");
! 		return -1;
! 	}
! 
! 	AfxBeginThread(RedirectThreadStub, (void *)this);
! 
! 	Info = __pioinfo[0];
! 
! 	// Info[1].Hand = OutWrite;
! 	// Info[1].Attr = 0x89; // FOPEN | FTEXT | FPIPE;
! 
! 	Info[2].Hand = OutWrite;
! 	Info[2].Attr = 0x89;
! 
! 	// stdout->_file = 1;
! 	stderr->_file = 2;
! 
! 	win32_stdio_hack((unsigned int)OutWrite);
! 
! 	return 0;
! }

Index: MyDialog1.cpp
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/MyDialog1.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** MyDialog1.cpp	24 Nov 2004 16:46:21 -0000	1.6
--- MyDialog1.cpp	27 Mar 2007 03:01:06 -0000	1.7
***************
*** 1,274 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "Frontend.h"
! #include "MyDialog1.h"
! 
! #ifdef _DEBUG
! #define new DEBUG_NEW
! #undef THIS_FILE
! static char THIS_FILE[] = __FILE__;
! #endif
! 
! MyDialog1::MyDialog1(CWnd* pParent)
! 	: CDialog(MyDialog1::IDD, pParent)
! {
! 	NumLines = 0;
! 
! 	//{{AFX_DATA_INIT(MyDialog1)
! 	//}}AFX_DATA_INIT
! }
! 
! BOOL MyDialog1::Create(CWnd *Parent)
! {
! 	return CDialog::Create(MyDialog1::IDD, Parent);
! }
! 
! void MyDialog1::DoDataExchange(CDataExchange* pDX)
! {
! 	CDialog::DoDataExchange(pDX);
! 	//{{AFX_DATA_MAP(MyDialog1)
! 	DDX_Control(pDX, IDC_BUTTON4, m_SaveButton);
! 	DDX_Control(pDX, IDC_BUTTON3, m_FreezeButton);
! 	DDX_Control(pDX, IDC_BUTTON2, m_ContinueButton);
! 	DDX_Control(pDX, IDC_BUTTON1, m_ClearButton);
! 	DDX_Control(pDX, IDC_EDIT1, m_OutputWindow);
! 	//}}AFX_DATA_MAP
! }
! 
! 
! BEGIN_MESSAGE_MAP(MyDialog1, CDialog)
! 	//{{AFX_MSG_MAP(MyDialog1)
! 	ON_BN_CLICKED(IDC_BUTTON1, OnClearButton)
! 	ON_BN_CLICKED(IDC_BUTTON2, OnContinueButton)
! 	ON_BN_CLICKED(IDC_BUTTON3, OnFreezeButton)
! 	ON_WM_CTLCOLOR()
! 	ON_BN_CLICKED(IDOK, OnOK)
! 	ON_BN_CLICKED(IDCANCEL, OnCancel)
! 	ON_BN_CLICKED(IDC_BUTTON4, OnSaveButton)
! 	//}}AFX_MSG_MAP
! END_MESSAGE_MAP()
! 
! void MyDialog1::OnOK()
! {
! }
! 
! void MyDialog1::OnCancel()
! {
! }
! 
! void MyDialog1::AddOutputLine(CString Line)
! {
! 	int Index;
! 
! 	CritSect.Lock();
! 
! 	Output += Line + "\r\n";
! 
! 	if (NumLines == 1000)
! 	{
! 		Index = Output.Find("\r\n");
! 		Output.Delete(0, Index + 2);
! 	}
! 
! 	else
! 		NumLines++;
! 
! 	CritSect.Unlock();
! 
! 	if (Frozen == 0)
! 	{
! 		m_OutputWindow.SetWindowText(Output);
! 		m_OutputWindow.SetSel(Output.GetLength(), Output.GetLength());
! 	}
! }
! 
! void MyDialog1::SetFrozen(int NewFrozen)
! {
! 	Frozen = NewFrozen;
! }
! 
! BOOL MyDialog1::OnInitDialog() 
! {
! 	CDialog::OnInitDialog();
! 	
! 	CClientDC DevCont(&m_OutputWindow);
! 
! 	EditFont.CreatePointFont(90, "Courier New", NULL);
! 	m_OutputWindow.SetFont(&EditFont);
! 
! 	m_FreezeButton.EnableWindow(FALSE);
! 	m_ContinueButton.EnableWindow(FALSE);
! 
! 	Frozen = 0;
! 
! 	WhiteBrush.CreateSolidBrush(RGB(255, 255, 255));
! 
! 	return TRUE;
! }
! 
! void MyDialog1::OnClearButton() 
! {
! 	CritSect.Lock();
! 	Output.Empty();
! 	NumLines = 0;
! 	CritSect.Unlock();
! 
! 	m_OutputWindow.SetWindowText(Output);
! 	m_OutputWindow.SetSel(0, 0);
! }
! 
! void MyDialog1::OnContinueButton()
! {
! 	CString Copy;
! 	int Len;
! 
! 	m_FreezeButton.EnableWindow(TRUE);
! 	m_ContinueButton.EnableWindow(FALSE);
! 
! 	Frozen = 0;
! 
! 	CritSect.Lock();
! 	Copy = Output;
! 	Len = Output.GetLength();
! 	CritSect.Unlock();
! 
! 	m_OutputWindow.SetWindowText(Copy);
! 	m_OutputWindow.SetSel(Len, Len);
! }
! 
! void MyDialog1::OnFreezeButton() 
! {
! 	m_FreezeButton.EnableWindow(FALSE);
! 	m_ContinueButton.EnableWindow(TRUE);
! 
! 	Frozen = 1;
! }
! 
! void MyDialog1::HandleStart(void)
! {
! 	CString Copy;
! 	int Len;
! 
! 	m_FreezeButton.EnableWindow(TRUE);
! 	m_ContinueButton.EnableWindow(FALSE);
! 
! 	Frozen = 0;
! 
! 	CritSect.Lock();
! 	Copy = Output;
! 	Len = Output.GetLength();
! 	CritSect.Unlock();
! 
! 	m_OutputWindow.SetWindowText(Copy);
! 	m_OutputWindow.SetSel(Len, Len);
! }
! 
! void MyDialog1::HandleStop(void)
! {
! 	CString Copy;
! 	int Len;
! 
! 	m_FreezeButton.EnableWindow(FALSE);
! 	m_ContinueButton.EnableWindow(FALSE);
! 
! 	Frozen = 0;
! 
! 	CritSect.Lock();
! 	Copy = Output;
! 	Len = Output.GetLength();
! 	CritSect.Unlock();
! 
! 	m_OutputWindow.SetWindowText(Copy);
! 	m_OutputWindow.SetSel(Len, Len);
! }
! 
! HBRUSH MyDialog1::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
! {
! 	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
! 
! 	if (pWnd == &m_OutputWindow)
! 	{
! 		pDC->SetBkColor(RGB(255, 255, 255));
! 		hbr = WhiteBrush;
! 	}
! 	
! 	return hbr;
! }
! 
! void MyDialog1::OnSaveButton()
! {
! 	CString Copy;
! 	int Len;
! 	CFileDialog FileDialog(FALSE);
! 	CString FileName = "OLSR log.txt";
! 	CString PathName;
! 	CFile File;
! 
! 	CritSect.Lock();
! 	Copy = Output;
! 	Len = Output.GetLength();
! 	CritSect.Unlock();
! 
! 	FileDialog.m_ofn.lpstrFilter = "Text file (*.txt)\0*.txt\0";
! 	FileDialog.m_ofn.nFilterIndex = 1;
! 
! 	FileDialog.m_ofn.lpstrFile = FileName.GetBuffer(500);
! 	FileDialog.m_ofn.nMaxFile = 500;
! 
! 	if (FileDialog.DoModal() == IDOK)
! 	{
! 		PathName = FileDialog.GetPathName();
! 
! 		if (File.Open(PathName, CFile::modeCreate | CFile::modeWrite |
! 			CFile::shareExclusive) == 0)
! 			AfxMessageBox("Cannot open logfile '" + PathName + "'.");
! 
! 		else
! 		{
! 			File.Write((const char *)Copy, Len);
! 			File.Close();
! 		}
! 	}
! 
! 	FileName.ReleaseBuffer();
! }
--- 1,274 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "Frontend.h"
! #include "MyDialog1.h"
! 
! #ifdef _DEBUG
! #define new DEBUG_NEW
! #undef THIS_FILE
! static char THIS_FILE[] = __FILE__;
! #endif
! 
! MyDialog1::MyDialog1(CWnd* pParent)
! 	: CDialog(MyDialog1::IDD, pParent)
! {
! 	NumLines = 0;
! 
! 	//{{AFX_DATA_INIT(MyDialog1)
! 	//}}AFX_DATA_INIT
! }
! 
! BOOL MyDialog1::Create(CWnd *Parent)
! {
! 	return CDialog::Create(MyDialog1::IDD, Parent);
! }
! 
! void MyDialog1::DoDataExchange(CDataExchange* pDX)
! {
! 	CDialog::DoDataExchange(pDX);
! 	//{{AFX_DATA_MAP(MyDialog1)
! 	DDX_Control(pDX, IDC_BUTTON4, m_SaveButton);
! 	DDX_Control(pDX, IDC_BUTTON3, m_FreezeButton);
! 	DDX_Control(pDX, IDC_BUTTON2, m_ContinueButton);
! 	DDX_Control(pDX, IDC_BUTTON1, m_ClearButton);
! 	DDX_Control(pDX, IDC_EDIT1, m_OutputWindow);
! 	//}}AFX_DATA_MAP
! }
! 
! 
! BEGIN_MESSAGE_MAP(MyDialog1, CDialog)
! 	//{{AFX_MSG_MAP(MyDialog1)
! 	ON_BN_CLICKED(IDC_BUTTON1, OnClearButton)
! 	ON_BN_CLICKED(IDC_BUTTON2, OnContinueButton)
! 	ON_BN_CLICKED(IDC_BUTTON3, OnFreezeButton)
! 	ON_WM_CTLCOLOR()
! 	ON_BN_CLICKED(IDOK, OnOK)
! 	ON_BN_CLICKED(IDCANCEL, OnCancel)
! 	ON_BN_CLICKED(IDC_BUTTON4, OnSaveButton)
! 	//}}AFX_MSG_MAP
! END_MESSAGE_MAP()
! 
! void MyDialog1::OnOK()
! {
! }
! 
! void MyDialog1::OnCancel()
! {
! }
! 
! void MyDialog1::AddOutputLine(CString Line)
! {
! 	int Index;
! 
! 	CritSect.Lock();
! 
! 	Output += Line + "\r\n";
! 
! 	if (NumLines == 1000)
! 	{
! 		Index = Output.Find("\r\n");
! 		Output.Delete(0, Index + 2);
! 	}
! 
! 	else
! 		NumLines++;
! 
! 	CritSect.Unlock();
! 
! 	if (Frozen == 0)
! 	{
! 		m_OutputWindow.SetWindowText(Output);
! 		m_OutputWindow.SetSel(Output.GetLength(), Output.GetLength());
! 	}
! }
! 
! void MyDialog1::SetFrozen(int NewFrozen)
! {
! 	Frozen = NewFrozen;
! }
! 
! BOOL MyDialog1::OnInitDialog() 
! {
! 	CDialog::OnInitDialog();
! 	
! 	CClientDC DevCont(&m_OutputWindow);
! 
! 	EditFont.CreatePointFont(90, "Courier New", NULL);
! 	m_OutputWindow.SetFont(&EditFont);
! 
! 	m_FreezeButton.EnableWindow(FALSE);
! 	m_ContinueButton.EnableWindow(FALSE);
! 
! 	Frozen = 0;
! 
! 	WhiteBrush.CreateSolidBrush(RGB(255, 255, 255));
! 
! 	return TRUE;
! }
! 
! void MyDialog1::OnClearButton() 
! {
! 	CritSect.Lock();
! 	Output.Empty();
! 	NumLines = 0;
! 	CritSect.Unlock();
! 
! 	m_OutputWindow.SetWindowText(Output);
! 	m_OutputWindow.SetSel(0, 0);
! }
! 
! void MyDialog1::OnContinueButton()
! {
! 	CString Copy;
! 	int Len;
! 
! 	m_FreezeButton.EnableWindow(TRUE);
! 	m_ContinueButton.EnableWindow(FALSE);
! 
! 	Frozen = 0;
! 
! 	CritSect.Lock();
! 	Copy = Output;
! 	Len = Output.GetLength();
! 	CritSect.Unlock();
! 
! 	m_OutputWindow.SetWindowText(Copy);
! 	m_OutputWindow.SetSel(Len, Len);
! }
! 
! void MyDialog1::OnFreezeButton() 
! {
! 	m_FreezeButton.EnableWindow(FALSE);
! 	m_ContinueButton.EnableWindow(TRUE);
! 
! 	Frozen = 1;
! }
! 
! void MyDialog1::HandleStart(void)
! {
! 	CString Copy;
! 	int Len;
! 
! 	m_FreezeButton.EnableWindow(TRUE);
! 	m_ContinueButton.EnableWindow(FALSE);
! 
! 	Frozen = 0;
! 
! 	CritSect.Lock();
! 	Copy = Output;
! 	Len = Output.GetLength();
! 	CritSect.Unlock();
! 
! 	m_OutputWindow.SetWindowText(Copy);
! 	m_OutputWindow.SetSel(Len, Len);
! }
! 
! void MyDialog1::HandleStop(void)
! {
! 	CString Copy;
! 	int Len;
! 
! 	m_FreezeButton.EnableWindow(FALSE);
! 	m_ContinueButton.EnableWindow(FALSE);
! 
! 	Frozen = 0;
! 
! 	CritSect.Lock();
! 	Copy = Output;
! 	Len = Output.GetLength();
! 	CritSect.Unlock();
! 
! 	m_OutputWindow.SetWindowText(Copy);
! 	m_OutputWindow.SetSel(Len, Len);
! }
! 
! HBRUSH MyDialog1::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
! {
! 	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
! 
! 	if (pWnd == &m_OutputWindow)
! 	{
! 		pDC->SetBkColor(RGB(255, 255, 255));
! 		hbr = WhiteBrush;
! 	}
! 	
! 	return hbr;
! }
! 
! void MyDialog1::OnSaveButton()
! {
! 	CString Copy;
! 	int Len;
! 	CFileDialog FileDialog(FALSE);
! 	CString FileName = "OLSR log.txt";
! 	CString PathName;
! 	CFile File;
! 
! 	CritSect.Lock();
! 	Copy = Output;
! 	Len = Output.GetLength();
! 	CritSect.Unlock();
! 
! 	FileDialog.m_ofn.lpstrFilter = "Text file (*.txt)\0*.txt\0";
! 	FileDialog.m_ofn.nFilterIndex = 1;
! 
! 	FileDialog.m_ofn.lpstrFile = FileName.GetBuffer(500);
! 	FileDialog.m_ofn.nMaxFile = 500;
! 
! 	if (FileDialog.DoModal() == IDOK)
! 	{
! 		PathName = FileDialog.GetPathName();
! 
! 		if (File.Open(PathName, CFile::modeCreate | CFile::modeWrite |
! 			CFile::shareExclusive) == 0)
! 			AfxMessageBox("Cannot open logfile '" + PathName + "'.");
! 
! 		else
! 		{
! 			File.Write((const char *)Copy, Len);
! 			File.Close();
! 		}
! 	}
! 
! 	FileName.ReleaseBuffer();
! }

Index: RFC-Default.olsr
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/RFC-Default.olsr,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** RFC-Default.olsr	31 Mar 2005 18:20:02 -0000	1.1
--- RFC-Default.olsr	27 Mar 2007 03:01:07 -0000	1.2
***************
*** 1,122 ****
! #
! # Default configuration for the GUI
! #
! # $Id$
! #
! 
! #
! # By default don't print anything to save CPU cycles
! #
! 
! DebugLevel		0
! 
! #
! # Enable the link quality extensions?
! #
! # 0 - no
! # 1 - yes, use link quality for MPR selection
! # 2 - yes, use link quality for MPR selection and routing
! #
! 
! LinkQualityLevel	0
! 
! #
! # Windows size for packet loss calculation
! #
! 
! LinkQualityWinSize	10
! 
! #
! # Do not use hysteresis
! #
! 
! UseHysteresis		no
! 
! #
! # If using hysteresis, use the RFC parameters
! #
! 
! HystScaling		0.5
! HystThrHigh		0.8
! HystThrLow		0.3
! 
! #
! # The pollrate used by the scheduler
! #
! 
! Pollrate		0.1
! 
! #
! # Which neighbours should be advertised via TC messages?
! #
! # 0 - only advertise our MPR selectors
! # 1 - advertise our MPR selectors and our MPRs
! # 2 - advertise all neighbors
! #
! 
! TcRedundancy		0
! 
! #
! # Specifies by how many MPRs each two-hop neighbour should be covered
! #
! 
! MprCoverage		1
! 
! #
! # Load the HTTP info plugin
! #
! 
! LoadPlugin		"olsrd_httpinfo.dll"
! {
! 	PlParam	"Net"	"0.0.0.0 0.0.0.0"
! }
! 
! #
! # This default gateway HNA will only be considered by the GUI if the
! # computer actually has a default route.
! #
! 
! Hna4
! {
! 	0.0.0.0 0.0.0.0
! }
! 
! #
! # Pseudo interface used by the GUI. If we do not select any interface
! # in the GUI, we still have to store the per-interface settings of the
! # GUI somewhere. We then simply create a pseudo interfaced named GUI"
! # for storing this information. When parsing the configuration file,
! # the settings will be read and will be used to populate the GUI, but
! # after that the "GUI" interface will be discarded.
! #
! 
! Interface "GUI"
! {
! 	#
! 	# HELLO interval and validity time in seconds (float)
! 	#
! 
! 	HelloInterval		2.0
! 	HelloValidityTime	6.0
! 
! 	#
! 	# TC interval and validity time in seconds (float)
! 	#
! 
! 	TcInterval		5.0
! 	TcValidityTime		15.0
! 
! 	#
! 	# MID interval and validity time in seconds (float)
! 	#
! 
! 	MidInterval		5.0
! 	MidValidityTime		15.0
! 
! 	#
! 	# HNA interval and validity time in seconds (float)
! 	#
! 
! 	HnaInterval		5.0
! 	HnaValidityTime		15.0
! }
--- 1,131 ----
! #
! # Default configuration for the GUI
! #
! # $Id$
! #
! 
! #
! # By default don't print anything to save CPU cycles
! #
! 
! DebugLevel		0
! 
! #
! # Enable the link quality extensions?
! #
! # 0 - no
! # 1 - yes, use link quality for MPR selection
! # 2 - yes, use link quality for MPR selection and routing
! #
! 
! LinkQualityLevel	0
! 
! #
! # Enable the fish eye algorithm
! #
! # 0 - no
! # 1 - yes
! #
! 
! LinkQualityFishEye	0
! 
! #
! # Windows size for packet loss calculation
! #
! 
! LinkQualityWinSize	10
! 
! #
! # Do not use hysteresis
! #
! 
! UseHysteresis		no
! 
! #
! # If using hysteresis, use the RFC parameters
! #
! 
! HystScaling		0.5
! HystThrHigh		0.8
! HystThrLow		0.3
! 
! #
! # The pollrate used by the scheduler
! #
! 
! Pollrate		0.1
! 
! #
! # Which neighbours should be advertised via TC messages?
! #
! # 0 - only advertise our MPR selectors
! # 1 - advertise our MPR selectors and our MPRs
! # 2 - advertise all neighbors
! #
! 
! TcRedundancy		0
! 
! #
! # Specifies by how many MPRs each two-hop neighbour should be covered
! #
! 
! MprCoverage		1
! 
! #
! # Load the HTTP info plugin
! #
! 
! LoadPlugin		"olsrd_httpinfo.dll"
! {
! 	PlParam	"Net"	"0.0.0.0 0.0.0.0"
! }
! 
! #
! # This default gateway HNA will only be considered by the GUI if the
! # computer actually has a default route.
! #
! 
! Hna4
! {
! 	0.0.0.0 0.0.0.0
! }
! 
! #
! # Pseudo interface used by the GUI. If we do not select any interface
! # in the GUI, we still have to store the per-interface settings of the
! # GUI somewhere. We then simply create a pseudo interfaced named GUI"
! # for storing this information. When parsing the configuration file,
! # the settings will be read and will be used to populate the GUI, but
! # after that the "GUI" interface will be discarded.
! #
! 
! Interface "GUI"
! {
! 	#
! 	# HELLO interval and validity time in seconds (float)
! 	#
! 
! 	HelloInterval		2.0
! 	HelloValidityTime	6.0
! 
! 	#
! 	# TC interval and validity time in seconds (float)
! 	#
! 
! 	TcInterval		5.0
! 	TcValidityTime		15.0
! 
! 	#
! 	# MID interval and validity time in seconds (float)
! 	#
! 
! 	MidInterval		5.0
! 	MidValidityTime		15.0
! 
! 	#
! 	# HNA interval and validity time in seconds (float)
! 	#
! 
! 	HnaInterval		5.0
! 	HnaValidityTime		15.0
! }

Index: MyDialog3.cpp
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/MyDialog3.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** MyDialog3.cpp	21 Nov 2004 01:21:10 -0000	1.4
--- MyDialog3.cpp	27 Mar 2007 03:01:06 -0000	1.5
***************
*** 1,308 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "Frontend.h"
! #include "MyDialog3.h"
! 
! #include "MprEntry.h"
! #include "MidEntry.h"
! #include "HnaEntry.h"
! 
! #ifdef _DEBUG
! #define new DEBUG_NEW
! #undef THIS_FILE
! static char THIS_FILE[] = __FILE__;
! #endif
! 
! MyDialog3::MyDialog3(CWnd* pParent)
! 	: CDialog(MyDialog3::IDD, pParent)
! {
! 	LastUpdate = 0;
! 	Info = NULL;
! 
! 	//{{AFX_DATA_INIT(MyDialog3)
! 	//}}AFX_DATA_INIT
! }
! 
! BOOL MyDialog3::Create(CWnd *Parent)
! {
! 	return CDialog::Create(MyDialog3::IDD, Parent);
! }
! 
! void MyDialog3::DoDataExchange(CDataExchange* pDX)
! {
! 	CDialog::DoDataExchange(pDX);
! 	//{{AFX_DATA_MAP(MyDialog3)
! 	DDX_Control(pDX, IDC_LIST6, m_HnaList);
! 	DDX_Control(pDX, IDC_LIST5, m_MidList);
! 	DDX_Control(pDX, IDC_LIST4, m_MprList);
! 	DDX_Control(pDX, IDC_LIST1, m_NodeList);
! 	//}}AFX_DATA_MAP
! }
! 
! BEGIN_MESSAGE_MAP(MyDialog3, CDialog)
! 	//{{AFX_MSG_MAP(MyDialog3)
! 	ON_BN_CLICKED(IDOK, OnOK)
! 	ON_BN_CLICKED(IDCANCEL, OnCancel)
! 	ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST1, OnItemchangedNodeList)
! 	//}}AFX_MSG_MAP
! END_MESSAGE_MAP()
! 
! void MyDialog3::OnOK()
! {
! }
! 
! void MyDialog3::OnCancel()
! {
! }
! 
! BOOL MyDialog3::OnInitDialog() 
! {
! 	CDialog::OnInitDialog();
! 	
! 	m_NodeList.InsertColumn(0, "Address", LVCFMT_LEFT, 110, 0);
! 	m_NodeList.InsertColumn(1, "Timeout", LVCFMT_LEFT, 110, 1);
! 	m_NodeList.InsertColumn(2, "MID", LVCFMT_LEFT, 68, 2);
! 	m_NodeList.InsertColumn(3, "HNA", LVCFMT_LEFT, 67, 3);
! 
! 	m_MprList.InsertColumn(0, "MPR", LVCFMT_LEFT, 169, 0);
! 
! 	m_MidList.InsertColumn(0, "MID", LVCFMT_LEFT, 169, 0);
! 
! 	m_HnaList.InsertColumn(0, "HNA", LVCFMT_LEFT, 169, 0);
! 
! 	return TRUE;
! }
! 
! void MyDialog3::ClearNodeInfo(void)
! {
! 	m_NodeList.DeleteAllItems();
! 
! 	m_MprList.DeleteAllItems();
! 	m_MidList.DeleteAllItems();
! 	m_HnaList.DeleteAllItems();
! 
! 	if (Info != NULL)
! 	{
! 		delete[] Info;
! 		Info = NULL;
! 	}
! }
! 
! void MyDialog3::UpdateNodeInfo(CList<class NodeEntry, class NodeEntry &> &NodeList)
! {
! 	SYSTEMTIME SysTime;
! 	FILETIME FileTime;
! 	unsigned __int64 Now;
! 	class NodeEntry Entry;
! 	POSITION Pos;
! 	CString AddrStr;
! 	CString TimeoutStr;
! 	int Idx, Num;
! 	POSITION Pos2;
! 	class MprEntry MprEntry;
! 	class MidEntry MidEntry;
! 	class HnaEntry HnaEntry;
! 	CString CurrNode;
! 
! 	::GetSystemTime(&SysTime);
! 	::SystemTimeToFileTime(&SysTime, &FileTime);
! 
! 	Now = *(unsigned __int64 *)&FileTime;
! 
! 	if (Now < LastUpdate + (__int64)3 * (__int64)10000000)
! 		return;
! 
! 	LastUpdate = Now;
! 
! 	int CurrItem = m_NodeList.GetNextItem(-1, LVNI_SELECTED);
! 
! 	if (CurrItem >= 0)
! 		CurrNode = m_NodeList.GetItemText(CurrItem, 0);
! 
! 	m_NodeList.DeleteAllItems();
! 
! 	if (Info != NULL)
! 	{
! 		delete[] Info;
! 		Info = NULL;
! 	}
! 
! 	Num = NodeList.GetCount();
! 
! 	if (Num == 0)
! 		return;
! 
! 	Info = new class NodeInfo[Num];
! 
! 	Pos = NodeList.GetHeadPosition();
! 
! 	Idx = 0;
! 
! 	while (Pos != NULL)
! 	{
! 		Entry = NodeList.GetNext(Pos);
! 
! 		Pos2 = Entry.MprList.GetHeadPosition();
! 
! 		while (Pos2 != NULL)
! 		{
! 			MprEntry = Entry.MprList.GetNext(Pos2);
! 
! 			AddrStr.Format("%d.%d.%d.%d",
! 				((unsigned char *)&MprEntry.Addr)[0], ((unsigned char *)&MprEntry.Addr)[1],
! 				((unsigned char *)&MprEntry.Addr)[2], ((unsigned char *)&MprEntry.Addr)[3]);
! 
! 			Info[Idx].MprList.Add(AddrStr);
! 		}
! 
! 		Pos2 = Entry.MidList.GetHeadPosition();
! 
! 		while (Pos2 != NULL)
! 		{
! 			MidEntry = Entry.MidList.GetNext(Pos2);
! 
! 			AddrStr.Format("%d.%d.%d.%d",
! 				((unsigned char *)&MidEntry.Addr)[0], ((unsigned char *)&MidEntry.Addr)[1],
! 				((unsigned char *)&MidEntry.Addr)[2], ((unsigned char *)&MidEntry.Addr)[3]);
! 
! 			Info[Idx].MidList.Add(AddrStr);
! 		}
! 
! 		Pos2 = Entry.HnaList.GetHeadPosition();
! 
! 		while (Pos2 != NULL)
! 		{
! 			HnaEntry = Entry.HnaList.GetNext(Pos2);
! 
! 			unsigned int Mask = 0x80000000;
! 			unsigned int Val = ::ntohl(HnaEntry.Mask);
! 			int Bits;
! 
! 			for (Bits = 0; Bits < 32; Bits++)
! 			{
! 				if ((Val & Mask) == 0)
! 					break;
! 
! 				Mask >>= 1;
! 			}
! 
! 			AddrStr.Format("%d.%d.%d.%d/%d",
! 				((unsigned char *)&HnaEntry.Addr)[0], ((unsigned char *)&HnaEntry.Addr)[1],
! 				((unsigned char *)&HnaEntry.Addr)[2], ((unsigned char *)&HnaEntry.Addr)[3],
! 				Bits);
! 
! 			Info[Idx].HnaList.Add(AddrStr);
! 		}
! 
! 		AddrStr.Format("%d.%d.%d.%d",
! 			((unsigned char *)&Entry.Addr)[0], ((unsigned char *)&Entry.Addr)[1],
! 			((unsigned char *)&Entry.Addr)[2], ((unsigned char *)&Entry.Addr)[3]);
! 
! 		m_NodeList.InsertItem(Idx, AddrStr);
! 
! 		if (AddrStr == CurrNode)
! 			m_NodeList.SetItemState(Idx, LVIS_SELECTED, LVIS_SELECTED);
! 
! 		SYSTEMTIME SysTime;
! 		FILETIME LocalFileTime;
! 
! 		::FileTimeToLocalFileTime((FILETIME *)&Entry.Timeout, &LocalFileTime);
! 		::FileTimeToSystemTime(&LocalFileTime, &SysTime);
! 
! 		TimeoutStr.Format("%02d:%02d:%02d", SysTime.wHour, SysTime.wMinute,
! 			SysTime.wSecond);
! 
! 		m_NodeList.SetItemText(Idx, 1, TimeoutStr);
! 
! 		if (Entry.MidList.IsEmpty())
! 			m_NodeList.SetItemText(Idx, 2, "no");
! 
! 		else
! 			m_NodeList.SetItemText(Idx, 2, "yes");
! 
! 		if (Entry.HnaList.IsEmpty())
! 			m_NodeList.SetItemText(Idx, 3, "no");
! 
! 		else
! 			m_NodeList.SetItemText(Idx, 3, "yes");
! 
! 		Idx++;
! 	}
! }
! 
! void MyDialog3::OnItemchangedNodeList(NMHDR* pNMHDR, LRESULT* pResult) 
! {
! 	int Item;
! 	int Idx;
! 	int Num;
! 
! 	pNMHDR = pNMHDR;
! 
! 	*pResult = 0;
! 
! 	Item = m_NodeList.GetNextItem(-1, LVNI_SELECTED);
! 
! 	if (Item < 0)
! 		return;
! 
! 	m_MprList.DeleteAllItems();
! 
! 	Num = Info[Item].MprList.GetSize();
! 	
! 	for (Idx = 0; Idx < Num; Idx++)
! 		m_MprList.InsertItem(Idx, Info[Item].MprList.GetAt(Idx));
! 
! 	m_MidList.DeleteAllItems();
! 
! 	Num = Info[Item].MidList.GetSize();
! 	
! 	for (Idx = 0; Idx < Num; Idx++)
! 		m_MidList.InsertItem(Idx, Info[Item].MidList.GetAt(Idx));
! 
! 	m_HnaList.DeleteAllItems();
! 
! 	Num = Info[Item].HnaList.GetSize();
! 	
! 	for (Idx = 0; Idx < Num; Idx++)
! 		m_HnaList.InsertItem(Idx, Info[Item].HnaList.GetAt(Idx));
! }
--- 1,308 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "Frontend.h"
! #include "MyDialog3.h"
! 
! #include "MprEntry.h"
! #include "MidEntry.h"
! #include "HnaEntry.h"
! 
! #ifdef _DEBUG
! #define new DEBUG_NEW
! #undef THIS_FILE
! static char THIS_FILE[] = __FILE__;
! #endif
! 
! MyDialog3::MyDialog3(CWnd* pParent)
! 	: CDialog(MyDialog3::IDD, pParent)
! {
! 	LastUpdate = 0;
! 	Info = NULL;
! 
! 	//{{AFX_DATA_INIT(MyDialog3)
! 	//}}AFX_DATA_INIT
! }
! 
! BOOL MyDialog3::Create(CWnd *Parent)
! {
! 	return CDialog::Create(MyDialog3::IDD, Parent);
! }
! 
! void MyDialog3::DoDataExchange(CDataExchange* pDX)
! {
! 	CDialog::DoDataExchange(pDX);
! 	//{{AFX_DATA_MAP(MyDialog3)
! 	DDX_Control(pDX, IDC_LIST6, m_HnaList);
! 	DDX_Control(pDX, IDC_LIST5, m_MidList);
! 	DDX_Control(pDX, IDC_LIST4, m_MprList);
! 	DDX_Control(pDX, IDC_LIST1, m_NodeList);
! 	//}}AFX_DATA_MAP
! }
! 
! BEGIN_MESSAGE_MAP(MyDialog3, CDialog)
! 	//{{AFX_MSG_MAP(MyDialog3)
! 	ON_BN_CLICKED(IDOK, OnOK)
! 	ON_BN_CLICKED(IDCANCEL, OnCancel)
! 	ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST1, OnItemchangedNodeList)
! 	//}}AFX_MSG_MAP
! END_MESSAGE_MAP()
! 
! void MyDialog3::OnOK()
! {
! }
! 
! void MyDialog3::OnCancel()
! {
! }
! 
! BOOL MyDialog3::OnInitDialog() 
! {
! 	CDialog::OnInitDialog();
! 	
! 	m_NodeList.InsertColumn(0, "Address", LVCFMT_LEFT, 110, 0);
! 	m_NodeList.InsertColumn(1, "Timeout", LVCFMT_LEFT, 110, 1);
! 	m_NodeList.InsertColumn(2, "MID", LVCFMT_LEFT, 68, 2);
! 	m_NodeList.InsertColumn(3, "HNA", LVCFMT_LEFT, 67, 3);
! 
! 	m_MprList.InsertColumn(0, "MPR", LVCFMT_LEFT, 169, 0);
! 
! 	m_MidList.InsertColumn(0, "MID", LVCFMT_LEFT, 169, 0);
! 
! 	m_HnaList.InsertColumn(0, "HNA", LVCFMT_LEFT, 169, 0);
! 
! 	return TRUE;
! }
! 
! void MyDialog3::ClearNodeInfo(void)
! {
! 	m_NodeList.DeleteAllItems();
! 
! 	m_MprList.DeleteAllItems();
! 	m_MidList.DeleteAllItems();
! 	m_HnaList.DeleteAllItems();
! 
! 	if (Info != NULL)
! 	{
! 		delete[] Info;
! 		Info = NULL;
! 	}
! }
! 
! void MyDialog3::UpdateNodeInfo(CList<class NodeEntry, class NodeEntry &> &NodeList)
! {
! 	SYSTEMTIME SysTime;
! 	FILETIME FileTime;
! 	unsigned __int64 Now;
! 	class NodeEntry Entry;
! 	POSITION Pos;
! 	CString AddrStr;
! 	CString TimeoutStr;
! 	int Idx, Num;
! 	POSITION Pos2;
! 	class MprEntry MprEntry;
! 	class MidEntry MidEntry;
! 	class HnaEntry HnaEntry;
! 	CString CurrNode;
! 
! 	::GetSystemTime(&SysTime);
! 	::SystemTimeToFileTime(&SysTime, &FileTime);
! 
! 	Now = *(unsigned __int64 *)&FileTime;
! 
! 	if (Now < LastUpdate + (__int64)3 * (__int64)10000000)
! 		return;
! 
! 	LastUpdate = Now;
! 
! 	int CurrItem = m_NodeList.GetNextItem(-1, LVNI_SELECTED);
! 
! 	if (CurrItem >= 0)
! 		CurrNode = m_NodeList.GetItemText(CurrItem, 0);
! 
! 	m_NodeList.DeleteAllItems();
! 
! 	if (Info != NULL)
! 	{
! 		delete[] Info;
! 		Info = NULL;
! 	}
! 
! 	Num = NodeList.GetCount();
! 
! 	if (Num == 0)
! 		return;
! 
! 	Info = new class NodeInfo[Num];
! 
! 	Pos = NodeList.GetHeadPosition();
! 
! 	Idx = 0;
! 
! 	while (Pos != NULL)
! 	{
! 		Entry = NodeList.GetNext(Pos);
! 
! 		Pos2 = Entry.MprList.GetHeadPosition();
! 
! 		while (Pos2 != NULL)
! 		{
! 			MprEntry = Entry.MprList.GetNext(Pos2);
! 
! 			AddrStr.Format("%d.%d.%d.%d",
! 				((unsigned char *)&MprEntry.Addr)[0], ((unsigned char *)&MprEntry.Addr)[1],
! 				((unsigned char *)&MprEntry.Addr)[2], ((unsigned char *)&MprEntry.Addr)[3]);
! 
! 			Info[Idx].MprList.Add(AddrStr);
! 		}
! 
! 		Pos2 = Entry.MidList.GetHeadPosition();
! 
! 		while (Pos2 != NULL)
! 		{
! 			MidEntry = Entry.MidList.GetNext(Pos2);
! 
! 			AddrStr.Format("%d.%d.%d.%d",
! 				((unsigned char *)&MidEntry.Addr)[0], ((unsigned char *)&MidEntry.Addr)[1],
! 				((unsigned char *)&MidEntry.Addr)[2], ((unsigned char *)&MidEntry.Addr)[3]);
! 
! 			Info[Idx].MidList.Add(AddrStr);
! 		}
! 
! 		Pos2 = Entry.HnaList.GetHeadPosition();
! 
! 		while (Pos2 != NULL)
! 		{
! 			HnaEntry = Entry.HnaList.GetNext(Pos2);
! 
! 			unsigned int Mask = 0x80000000;
! 			unsigned int Val = ::ntohl(HnaEntry.Mask);
! 			int Bits;
! 
! 			for (Bits = 0; Bits < 32; Bits++)
! 			{
! 				if ((Val & Mask) == 0)
! 					break;
! 
! 				Mask >>= 1;
! 			}
! 
! 			AddrStr.Format("%d.%d.%d.%d/%d",
! 				((unsigned char *)&HnaEntry.Addr)[0], ((unsigned char *)&HnaEntry.Addr)[1],
! 				((unsigned char *)&HnaEntry.Addr)[2], ((unsigned char *)&HnaEntry.Addr)[3],
! 				Bits);
! 
! 			Info[Idx].HnaList.Add(AddrStr);
! 		}
! 
! 		AddrStr.Format("%d.%d.%d.%d",
! 			((unsigned char *)&Entry.Addr)[0], ((unsigned char *)&Entry.Addr)[1],
! 			((unsigned char *)&Entry.Addr)[2], ((unsigned char *)&Entry.Addr)[3]);
! 
! 		m_NodeList.InsertItem(Idx, AddrStr);
! 
! 		if (AddrStr == CurrNode)
! 			m_NodeList.SetItemState(Idx, LVIS_SELECTED, LVIS_SELECTED);
! 
! 		SYSTEMTIME SysTime;
! 		FILETIME LocalFileTime;
! 
! 		::FileTimeToLocalFileTime((FILETIME *)&Entry.Timeout, &LocalFileTime);
! 		::FileTimeToSystemTime(&LocalFileTime, &SysTime);
! 
! 		TimeoutStr.Format("%02d:%02d:%02d", SysTime.wHour, SysTime.wMinute,
! 			SysTime.wSecond);
! 
! 		m_NodeList.SetItemText(Idx, 1, TimeoutStr);
! 
! 		if (Entry.MidList.IsEmpty())
! 			m_NodeList.SetItemText(Idx, 2, "no");
! 
! 		else
! 			m_NodeList.SetItemText(Idx, 2, "yes");
! 
! 		if (Entry.HnaList.IsEmpty())
! 			m_NodeList.SetItemText(Idx, 3, "no");
! 
! 		else
! 			m_NodeList.SetItemText(Idx, 3, "yes");
! 
! 		Idx++;
! 	}
! }
! 
! void MyDialog3::OnItemchangedNodeList(NMHDR* pNMHDR, LRESULT* pResult) 
! {
! 	int Item;
! 	int Idx;
! 	int Num;
! 
! 	pNMHDR = pNMHDR;
! 
! 	*pResult = 0;
! 
! 	Item = m_NodeList.GetNextItem(-1, LVNI_SELECTED);
! 
! 	if (Item < 0)
! 		return;
! 
! 	m_MprList.DeleteAllItems();
! 
! 	Num = Info[Item].MprList.GetSize();
! 	
! 	for (Idx = 0; Idx < Num; Idx++)
! 		m_MprList.InsertItem(Idx, Info[Item].MprList.GetAt(Idx));
! 
! 	m_MidList.DeleteAllItems();
! 
! 	Num = Info[Item].MidList.GetSize();
! 	
! 	for (Idx = 0; Idx < Num; Idx++)
! 		m_MidList.InsertItem(Idx, Info[Item].MidList.GetAt(Idx));
! 
! 	m_HnaList.DeleteAllItems();
! 
! 	Num = Info[Item].HnaList.GetSize();
! 	
! 	for (Idx = 0; Idx < Num; Idx++)
! 		m_HnaList.InsertItem(Idx, Info[Item].HnaList.GetAt(Idx));
! }

Index: MyEdit.h
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/MyEdit.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** MyEdit.h	21 Nov 2004 01:21:10 -0000	1.3
--- MyEdit.h	27 Mar 2007 03:01:06 -0000	1.4
***************
*** 1,71 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined(AFX_MYEDIT_H__951EC391_AFE3_428F_865D_24CA55C68C7C__INCLUDED_)
! #define AFX_MYEDIT_H__951EC391_AFE3_428F_865D_24CA55C68C7C__INCLUDED_
! 
! #if _MSC_VER > 1000
! #pragma once
! #endif
! 
! class MyEdit : public CEdit
! {
! public:
! 
! 	MyEdit();
! 
! 	//{{AFX_VIRTUAL(MyEdit)
! 	//}}AFX_VIRTUAL
! 
! 	virtual ~MyEdit();
! 
! protected:
! 	//{{AFX_MSG(MyEdit)
! 	afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
! 	afx_msg void OnKillFocus(CWnd* pNewWnd);
! 	//}}AFX_MSG
! 
! 	DECLARE_MESSAGE_MAP()
! };
! 
! //{{AFX_INSERT_LOCATION}}
! 
! #endif
--- 1,71 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined(AFX_MYEDIT_H__951EC391_AFE3_428F_865D_24CA55C68C7C__INCLUDED_)
! #define AFX_MYEDIT_H__951EC391_AFE3_428F_865D_24CA55C68C7C__INCLUDED_
! 
! #if _MSC_VER > 1000
! #pragma once
! #endif
! 
! class MyEdit : public CEdit
! {
! public:
! 
! 	MyEdit();
! 
! 	//{{AFX_VIRTUAL(MyEdit)
! 	//}}AFX_VIRTUAL
! 
! 	virtual ~MyEdit();
! 
! protected:
! 	//{{AFX_MSG(MyEdit)
! 	afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
! 	afx_msg void OnKillFocus(CWnd* pNewWnd);
! 	//}}AFX_MSG
! 
! 	DECLARE_MESSAGE_MAP()
! };
! 
! //{{AFX_INSERT_LOCATION}}
! 
! #endif

Index: MyEdit.cpp
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/MyEdit.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** MyEdit.cpp	21 Nov 2004 01:21:10 -0000	1.3
--- MyEdit.cpp	27 Mar 2007 03:01:06 -0000	1.4
***************
*** 1,117 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "frontend.h"
! #include "MyEdit.h"
! 
! #ifdef _DEBUG
! #define new DEBUG_NEW
! #undef THIS_FILE
! static char THIS_FILE[] = __FILE__;
! #endif
! 
! MyEdit::MyEdit()
! {
! }
! 
! MyEdit::~MyEdit()
! {
! }
! 
! 
! BEGIN_MESSAGE_MAP(MyEdit, CEdit)
! 	//{{AFX_MSG_MAP(MyEdit)
! 	ON_WM_CHAR()
! 	ON_WM_KILLFOCUS()
! 	//}}AFX_MSG_MAP
! END_MESSAGE_MAP()
! 
! void MyEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
! {
! 	static unsigned char *Allowed = (unsigned char *)"0123456789.";
! 	int i;
! 	CString Text;
! 
! 	if (nChar >= 32)
! 	{
! 		for (i = 0; Allowed[i] != 0; i++)
! 			if (nChar == Allowed[i])
! 				break;
! 
! 		if (Allowed[i] == 0)
! 			return;
! 
! 		GetWindowText(Text);
! 
! 		if (nChar == '.' && Text.Find('.') >= 0)
! 			return;
! 
! 		if (Text.GetLength() > 2 && Text.Find('.') < 0 && nChar != '.')
! 			return;
! 	}
! 	
! 	CEdit::OnChar(nChar, nRepCnt, nFlags);
! }
! 
! void MyEdit::OnKillFocus(CWnd* pNewWnd) 
! {
! 	CString Text;
! 	int Index;
! 	int Len;
! 
! 	GetWindowText(Text);
! 
! 	Index = Text.Find('.');
! 
! 	Len = Text.GetLength();
! 
! 	if (Len == 0)
! 		SetWindowText("0.0");
! 
! 	else if (Index < 0)
! 		SetWindowText(Text + ".0");
! 
! 	else if (Index == Len - 1)
! 		SetWindowText(Text + "0");
! 
! 	CEdit::OnKillFocus(pNewWnd);
! }
--- 1,117 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "frontend.h"
! #include "MyEdit.h"
! 
! #ifdef _DEBUG
! #define new DEBUG_NEW
! #undef THIS_FILE
! static char THIS_FILE[] = __FILE__;
! #endif
! 
! MyEdit::MyEdit()
! {
! }
! 
! MyEdit::~MyEdit()
! {
! }
! 
! 
! BEGIN_MESSAGE_MAP(MyEdit, CEdit)
! 	//{{AFX_MSG_MAP(MyEdit)
! 	ON_WM_CHAR()
! 	ON_WM_KILLFOCUS()
! 	//}}AFX_MSG_MAP
! END_MESSAGE_MAP()
! 
! void MyEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
! {
! 	static unsigned char *Allowed = (unsigned char *)"0123456789.";
! 	int i;
! 	CString Text;
! 
! 	if (nChar >= 32)
! 	{
! 		for (i = 0; Allowed[i] != 0; i++)
! 			if (nChar == Allowed[i])
! 				break;
! 
! 		if (Allowed[i] == 0)
! 			return;
! 
! 		GetWindowText(Text);
! 
! 		if (nChar == '.' && Text.Find('.') >= 0)
! 			return;
! 
! 		if (Text.GetLength() > 2 && Text.Find('.') < 0 && nChar != '.')
! 			return;
! 	}
! 	
! 	CEdit::OnChar(nChar, nRepCnt, nFlags);
! }
! 
! void MyEdit::OnKillFocus(CWnd* pNewWnd) 
! {
! 	CString Text;
! 	int Index;
! 	int Len;
! 
! 	GetWindowText(Text);
! 
! 	Index = Text.Find('.');
! 
! 	Len = Text.GetLength();
! 
! 	if (Len == 0)
! 		SetWindowText("0.0");
! 
! 	else if (Index < 0)
! 		SetWindowText(Text + ".0");
! 
! 	else if (Index == Len - 1)
! 		SetWindowText(Text + "0");
! 
! 	CEdit::OnKillFocus(pNewWnd);
! }

--- Frontend.clw DELETED ---

Index: resource.h
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/resource.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** resource.h	2 Mar 2005 00:13:23 -0000	1.6
--- resource.h	27 Mar 2007 03:01:07 -0000	1.7
***************
*** 1,67 ****
! //{{NO_DEPENDENCIES}}
! // Microsoft Developer Studio generated include file.
! // Used by Frontend.rc
! //
! #define IDD_FRONTEND_DIALOG             102
! #define IDP_SOCKETS_INIT_FAILED         103
! #define IDR_MAINFRAME                   128
! #define IDD_DIALOG1                     129
! #define IDD_DIALOG2                     130
! #define IDD_DIALOG3                     131
! #define IDD_DIALOG4                     132
! #define IDI_ICON1                       132
! #define IDR_241                         138
! #define IDI_ICON3                       141
! #define IDR_TRAYMENU                    141
! #define IDI_ICON2                       142
! #define IDC_TAB1                        1000
! #define IDC_BUTTON1                     1001
! #define IDC_EDIT1                       1003
! #define IDC_BUTTON2                     1004
! #define IDC_EDIT2                       1004
! #define IDC_EDIT3                       1005
! #define IDC_BUTTON3                     1006
! #define IDC_EDIT4                       1006
! #define IDC_EDIT5                       1007
! #define IDC_LIST1                       1008
! #define IDC_SLIDER2                     1009
! #define IDC_TEXT1                       1010
! #define IDC_EDIT6                       1011
! #define IDC_EDIT7                       1012
! #define IDC_CHECK1                      1013
! #define IDC_CHECK2                      1014
! #define IDC_EDIT9                       1015
! #define IDC_CHECK3                      1016
! #define IDC_BUTTON4                     1017
! #define IDC_BUTTON5                     1018
! #define IDC_CHECK4                      1019
! #define IDC_EDIT10                      1020
! #define IDC_EDIT11                      1021
! #define IDC_EDIT8                       1022
! #define IDC_EDIT12                      1023
! #define IDC_EDIT13                      1024
! #define IDC_LIST4                       1025
! #define IDC_EDIT14                      1025
! #define IDC_LIST5                       1026
! #define IDC_EDIT15                      1026
! #define IDC_LIST6                       1027
! #define IDC_RADIO1                      1029
! #define IDC_RADIO2                      1030
! #define IDC_COMBO1                      1031
! #define IDM_START                       32773
! #define IDM_STOP                        32774
! #define IDM_WINDOW                      32775
! #define IDM_SETTINGS                    32776
! #define IDM_OUTPUT                      32777
! #define IDM_EXIT                        32778
! 
! // Next default values for new objects
! // 
! #ifdef APSTUDIO_INVOKED
! #ifndef APSTUDIO_READONLY_SYMBOLS
! #define _APS_NEXT_RESOURCE_VALUE        142
! #define _APS_NEXT_COMMAND_VALUE         32779
! #define _APS_NEXT_CONTROL_VALUE         1032
! #define _APS_NEXT_SYMED_VALUE           101
! #endif
! #endif
--- 1,68 ----
! //{{NO_DEPENDENCIES}}
! // Microsoft Visual C++ generated include file.
! // Used by Frontend.rc
! //
! #define IDD_FRONTEND_DIALOG             102
! #define IDP_SOCKETS_INIT_FAILED         103
! #define IDR_MAINFRAME                   128
! #define IDD_DIALOG1                     129
! #define IDD_DIALOG2                     130
! #define IDD_DIALOG3                     131
! #define IDD_DIALOG4                     132
! #define IDI_ICON1                       132
! #define IDR_241                         138
! #define IDI_ICON3                       141
! #define IDR_TRAYMENU                    141
! #define IDI_ICON2                       142
! #define IDC_TAB1                        1000
! #define IDC_BUTTON1                     1001
! #define IDC_EDIT1                       1003
! #define IDC_BUTTON2                     1004
! #define IDC_EDIT2                       1004
! #define IDC_EDIT3                       1005
! #define IDC_BUTTON3                     1006
! #define IDC_EDIT4                       1006
! #define IDC_EDIT5                       1007
! #define IDC_LIST1                       1008
! #define IDC_SLIDER2                     1009
! #define IDC_TEXT1                       1010
! #define IDC_EDIT6                       1011
! #define IDC_EDIT7                       1012
! #define IDC_CHECK1                      1013
! #define IDC_CHECK2                      1014
! #define IDC_EDIT9                       1015
! #define IDC_CHECK3                      1016
! #define IDC_BUTTON4                     1017
! #define IDC_BUTTON5                     1018
! #define IDC_CHECK4                      1019
! #define IDC_EDIT10                      1020
! #define IDC_EDIT11                      1021
! #define IDC_EDIT8                       1022
! #define IDC_CHECK5                      1022
! #define IDC_EDIT12                      1023
! #define IDC_EDIT13                      1024
! #define IDC_LIST4                       1025
! #define IDC_EDIT14                      1025
! #define IDC_LIST5                       1026
! #define IDC_EDIT15                      1026
! #define IDC_LIST6                       1027
! #define IDC_RADIO1                      1029
! #define IDC_RADIO2                      1030
! #define IDC_COMBO1                      1031
! #define IDM_START                       32773
! #define IDM_STOP                        32774
! #define IDM_WINDOW                      32775
! #define IDM_SETTINGS                    32776
! #define IDM_OUTPUT                      32777
! #define IDM_EXIT                        32778
! 
! // Next default values for new objects
! // 
! #ifdef APSTUDIO_INVOKED
! #ifndef APSTUDIO_READONLY_SYMBOLS
! #define _APS_NEXT_RESOURCE_VALUE        142
! #define _APS_NEXT_COMMAND_VALUE         32779
! #define _APS_NEXT_CONTROL_VALUE         1032
! #define _APS_NEXT_SYMED_VALUE           101
! #endif
! #endif

--- NEW FILE: Main.vcproj ---
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
	ProjectType="Visual C++"
	Version="8.00"
	Name="Main"
	ProjectGUID="{01BB6810-46BB-4BE5-BCE3-96FF48F5DF1D}"
	RootNamespace="Main"
	Keyword="MFCProj"
	>
	<Platforms>
		<Platform
			Name="Win32"
		/>
	</Platforms>
	<ToolFiles>
	</ToolFiles>
	<Configurations>
		<Configuration
			Name="Debug|Win32"
			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
			IntermediateDirectory="$(ConfigurationName)"
			ConfigurationType="1"
			UseOfMFC="1"
			CharacterSet="2"
			>
			<Tool
				Name="VCPreBuildEventTool"
			/>
			<Tool
				Name="VCCustomBuildTool"
			/>
			<Tool
				Name="VCXMLDataGeneratorTool"
			/>
			<Tool
				Name="VCWebServiceProxyGeneratorTool"
			/>
			<Tool
				Name="VCMIDLTool"
				PreprocessorDefinitions="_DEBUG"
				MkTypLibCompatible="false"
				ValidateParameters="false"
			/>
			<Tool
				Name="VCCLCompilerTool"
				Optimization="0"
				AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\win32"
				PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG"
				MinimalRebuild="true"
				BasicRuntimeChecks="3"
				RuntimeLibrary="1"
				UsePrecompiledHeader="2"
				WarningLevel="3"
				Detect64BitPortabilityProblems="true"
				DebugInformationFormat="4"
			/>
			<Tool
				Name="VCManagedResourceCompilerTool"
			/>
			<Tool
				Name="VCResourceCompilerTool"
				PreprocessorDefinitions="_DEBUG"
				Culture="1033"
				AdditionalIncludeDirectories="$(IntDir)"
			/>
			<Tool
				Name="VCPreLinkEventTool"
			/>
			<Tool
				Name="VCLinkerTool"
				AdditionalDependencies="iphlpapi.lib"
				LinkIncremental="2"
				AdditionalLibraryDirectories=""
				GenerateDebugInformation="true"
				SubSystem="2"
				TargetMachine="1"
			/>
			<Tool
				Name="VCALinkTool"
			/>
			<Tool
				Name="VCManifestTool"
			/>
			<Tool
				Name="VCXDCMakeTool"
			/>
			<Tool
				Name="VCBscMakeTool"
			/>
			<Tool
				Name="VCFxCopTool"
			/>
			<Tool
				Name="VCAppVerifierTool"
			/>
			<Tool
				Name="VCWebDeploymentTool"
			/>
			<Tool
				Name="VCPostBuildEventTool"
			/>
		</Configuration>
		<Configuration
			Name="Release|Win32"
			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
			IntermediateDirectory="$(ConfigurationName)"
			ConfigurationType="1"
			UseOfMFC="1"
			CharacterSet="2"
			WholeProgramOptimization="1"
			>
			<Tool
				Name="VCPreBuildEventTool"
			/>
			<Tool
				Name="VCCustomBuildTool"
			/>
			<Tool
				Name="VCXMLDataGeneratorTool"
			/>
			<Tool
				Name="VCWebServiceProxyGeneratorTool"
			/>
			<Tool
				Name="VCMIDLTool"
				PreprocessorDefinitions="NDEBUG"
				MkTypLibCompatible="false"
				ValidateParameters="false"
			/>
			<Tool
				Name="VCCLCompilerTool"
				AdditionalIncludeDirectories="..\..\..\src;..\..\..\src\win32"
				PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG"
				MinimalRebuild="false"
				RuntimeLibrary="0"
				UsePrecompiledHeader="2"
				WarningLevel="3"
				Detect64BitPortabilityProblems="true"
				DebugInformationFormat="3"
			/>
			<Tool
				Name="VCManagedResourceCompilerTool"
			/>
			<Tool
				Name="VCResourceCompilerTool"
				PreprocessorDefinitions="NDEBUG"
				Culture="1033"
				AdditionalIncludeDirectories="$(IntDir)"
			/>
			<Tool
				Name="VCPreLinkEventTool"
			/>
			<Tool
				Name="VCLinkerTool"
				AdditionalDependencies="iphlpapi.lib"
				LinkIncremental="1"
				AdditionalLibraryDirectories=""
				GenerateDebugInformation="true"
				SubSystem="2"
				OptimizeReferences="2"
				EnableCOMDATFolding="2"
				TargetMachine="1"
			/>
			<Tool
				Name="VCALinkTool"
			/>
			<Tool
				Name="VCManifestTool"
			/>
			<Tool
				Name="VCXDCMakeTool"
			/>
			<Tool
				Name="VCBscMakeTool"
			/>
			<Tool
				Name="VCFxCopTool"
			/>
			<Tool
				Name="VCAppVerifierTool"
			/>
			<Tool
				Name="VCWebDeploymentTool"
			/>
			<Tool
				Name="VCPostBuildEventTool"
			/>
		</Configuration>
	</Configurations>
	<References>
	</References>
	<Files>
		<Filter
			Name="Source Files"
			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
			>
			<File
				RelativePath=".\Frontend.cpp"
				>
			</File>
			<File
				RelativePath=".\FrontendDlg.cpp"
				>
			</File>
			<File
				RelativePath=".\HnaEntry.cpp"
				>
			</File>
			<File
				RelativePath=".\MidEntry.cpp"
				>
			</File>
			<File
				RelativePath=".\MprEntry.cpp"
				>
			</File>
			<File
				RelativePath=".\MyDialog1.cpp"
				>
			</File>
			<File
				RelativePath=".\MyDialog2.cpp"
				>
			</File>
			<File
				RelativePath=".\MyDialog3.cpp"
				>
			</File>
			<File
				RelativePath=".\MyDialog4.cpp"
				>
			</File>
			<File
				RelativePath=".\MyEdit.cpp"
				>
			</File>
			<File
				RelativePath=".\MyTabCtrl.cpp"
				>
			</File>
			<File
				RelativePath=".\NodeEntry.cpp"
				>
			</File>
			<File
				RelativePath=".\StdAfx.cpp"
				>
				<FileConfiguration
					Name="Debug|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						UsePrecompiledHeader="1"
					/>
				</FileConfiguration>
				<FileConfiguration
					Name="Release|Win32"
					>
					<Tool
						Name="VCCLCompilerTool"
						UsePrecompiledHeader="1"
					/>
				</FileConfiguration>
			</File>
			<File
				RelativePath=".\TrayIcon.cpp"
				>
			</File>
		</Filter>
		<Filter
			Name="Header Files"
			Filter="h;hpp;hxx;hm;inl;inc;xsd"
			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
			>
			<File
				RelativePath=".\Frontend.h"
				>
			</File>
			<File
				RelativePath=".\FrontendDlg.h"
				>
			</File>
			<File
				RelativePath=".\HnaEntry.h"
				>
			</File>
			<File
				RelativePath=".\Ipc.h"
				>
			</File>
			<File
				RelativePath=".\MidEntry.h"
				>
			</File>
			<File
				RelativePath=".\MprEntry.h"
				>
			</File>
			<File
				RelativePath=".\MyDialog1.h"
				>
			</File>
			<File
				RelativePath=".\MyDialog2.h"
				>
			</File>
			<File
				RelativePath=".\MyDialog3.h"
				>
			</File>
			<File
				RelativePath=".\MyDialog4.h"
				>
			</File>
			<File
				RelativePath=".\MyEdit.h"
				>
			</File>
			<File
				RelativePath=".\MyTabCtrl.h"
				>
			</File>
			<File
				RelativePath=".\NodeEntry.h"
				>
			</File>
			<File
				RelativePath=".\resource.h"
				>
			</File>
			<File
				RelativePath=".\StdAfx.h"
				>
			</File>
			<File
				RelativePath=".\TrayIcon.h"
				>
			</File>
		</Filter>
		<Filter
			Name="Resource Files"
			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
			>
			<File
				RelativePath=".\res\Frontend.ico"
				>
			</File>
			<File
				RelativePath=".\Frontend.rc"
				>
			</File>
			<File
				RelativePath=".\res\Tray1.ico"
				>
			</File>
			<File
				RelativePath=".\res\Tray2.ico"
				>
			</File>
		</Filter>
		<File
			RelativePath=".\LQ-Default.olsr"
			>
		</File>
		<File
			RelativePath=".\olsrd_cfgparser.lib"
			>
		</File>
		<File
			RelativePath=".\RFC-Default.olsr"
			>
		</File>
	</Files>
	<Globals>
		<Global
			Name="RESOURCE_FILE"
			Value="Frontend.rc"
		/>
	</Globals>
</VisualStudioProject>

Index: MyDialog4.cpp
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/MyDialog4.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** MyDialog4.cpp	21 Nov 2004 01:21:10 -0000	1.3
--- MyDialog4.cpp	27 Mar 2007 03:01:06 -0000	1.4
***************
*** 1,155 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "Frontend.h"
! #include "MyDialog4.h"
! 
! #ifdef _DEBUG
! #define new DEBUG_NEW
! #undef THIS_FILE
! static char THIS_FILE[] = __FILE__;
! #endif
! 
! MyDialog4::MyDialog4(CWnd* pParent)
! 	: CDialog(MyDialog4::IDD, pParent)
! {
! 	//{{AFX_DATA_INIT(MyDialog4)
! 	//}}AFX_DATA_INIT
! }
! 
! BOOL MyDialog4::Create(CWnd *Parent)
! {
! 	return CDialog::Create(MyDialog4::IDD, Parent);
! }
! 
! void MyDialog4::DoDataExchange(CDataExchange* pDX)
! {
! 	CDialog::DoDataExchange(pDX);
! 	//{{AFX_DATA_MAP(MyDialog4)
! 	DDX_Control(pDX, IDC_LIST1, m_RoutingTable);
! 	//}}AFX_DATA_MAP
! }
! 
! 
! BEGIN_MESSAGE_MAP(MyDialog4, CDialog)
! 	//{{AFX_MSG_MAP(MyDialog4)
! 	ON_BN_CLICKED(IDOK, OnOK)
! 	ON_BN_CLICKED(IDCANCEL, OnCancel)
! 	//}}AFX_MSG_MAP
! END_MESSAGE_MAP()
! 
! void MyDialog4::OnOK()
! {
! }
! 
! void MyDialog4::OnCancel()
! {
! }
! 
! BOOL MyDialog4::OnInitDialog() 
! {
! 	CDialog::OnInitDialog();
! 
! 	m_RoutingTable.InsertColumn(0, "Destination", LVCFMT_LEFT, 110, 0);
! 	m_RoutingTable.InsertColumn(1, "Gateway", LVCFMT_LEFT, 110, 1);
! 	m_RoutingTable.InsertColumn(2, "Metric", LVCFMT_LEFT, 68, 2);
! 	m_RoutingTable.InsertColumn(3, "Interface", LVCFMT_LEFT, 67, 3);
! 
! 	return TRUE;
! }
! 
! void MyDialog4::AddRoute(unsigned int Dest, unsigned int Gate, int Metric,
! 						 char *Int)
! {
! 	CString DestStr;
! 	CString GateStr;
! 	CString MetricStr;
! 	CString IntStr;
! 	int Idx;
! 
! 	DestStr.Format("%d.%d.%d.%d",
! 		((unsigned char *)&Dest)[0], ((unsigned char *)&Dest)[1],
! 		((unsigned char *)&Dest)[2], ((unsigned char *)&Dest)[3]);
! 
! 	GateStr.Format("%d.%d.%d.%d",
! 		((unsigned char *)&Gate)[0], ((unsigned char *)&Gate)[1],
! 		((unsigned char *)&Gate)[2], ((unsigned char *)&Gate)[3]);
! 
! 	MetricStr.Format("%d", Metric);
! 
! 	IntStr.Format("%c%c%c%c", Int[0], Int[1], Int[2], Int[3]);
! 	IntStr.MakeUpper();
! 
! 	Idx = m_RoutingTable.GetItemCount();
! 
! 	m_RoutingTable.InsertItem(Idx, DestStr);
! 
! 	m_RoutingTable.SetItemText(Idx, 1, GateStr);
! 	m_RoutingTable.SetItemText(Idx, 2, MetricStr);
! 	m_RoutingTable.SetItemText(Idx, 3, IntStr);
! }
! 
! void MyDialog4::DeleteRoute(unsigned int Dest)
! {
! 	CString DestStr;
! 	int Idx, Num;
! 
! 	DestStr.Format("%d.%d.%d.%d",
! 		((unsigned char *)&Dest)[0], ((unsigned char *)&Dest)[1],
! 		((unsigned char *)&Dest)[2], ((unsigned char *)&Dest)[3]);
! 
! 	Num = m_RoutingTable.GetItemCount();
! 
! 	for (Idx = 0; Idx < Num; Idx++)
! 	{
! 		if (m_RoutingTable.GetItemText(Idx, 0) == DestStr)
! 		{
! 			m_RoutingTable.DeleteItem(Idx);
! 			break;
! 		}
! 	}
! }
! 
! void MyDialog4::ClearRoutes(void)
! {
! 	m_RoutingTable.DeleteAllItems();
! }
--- 1,155 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "Frontend.h"
! #include "MyDialog4.h"
! 
! #ifdef _DEBUG
! #define new DEBUG_NEW
! #undef THIS_FILE
! static char THIS_FILE[] = __FILE__;
! #endif
! 
! MyDialog4::MyDialog4(CWnd* pParent)
! 	: CDialog(MyDialog4::IDD, pParent)
! {
! 	//{{AFX_DATA_INIT(MyDialog4)
! 	//}}AFX_DATA_INIT
! }
! 
! BOOL MyDialog4::Create(CWnd *Parent)
! {
! 	return CDialog::Create(MyDialog4::IDD, Parent);
! }
! 
! void MyDialog4::DoDataExchange(CDataExchange* pDX)
! {
! 	CDialog::DoDataExchange(pDX);
! 	//{{AFX_DATA_MAP(MyDialog4)
! 	DDX_Control(pDX, IDC_LIST1, m_RoutingTable);
! 	//}}AFX_DATA_MAP
! }
! 
! 
! BEGIN_MESSAGE_MAP(MyDialog4, CDialog)
! 	//{{AFX_MSG_MAP(MyDialog4)
! 	ON_BN_CLICKED(IDOK, OnOK)
! 	ON_BN_CLICKED(IDCANCEL, OnCancel)
! 	//}}AFX_MSG_MAP
! END_MESSAGE_MAP()
! 
! void MyDialog4::OnOK()
! {
! }
! 
! void MyDialog4::OnCancel()
! {
! }
! 
! BOOL MyDialog4::OnInitDialog() 
! {
! 	CDialog::OnInitDialog();
! 
! 	m_RoutingTable.InsertColumn(0, "Destination", LVCFMT_LEFT, 110, 0);
! 	m_RoutingTable.InsertColumn(1, "Gateway", LVCFMT_LEFT, 110, 1);
! 	m_RoutingTable.InsertColumn(2, "Metric", LVCFMT_LEFT, 68, 2);
! 	m_RoutingTable.InsertColumn(3, "Interface", LVCFMT_LEFT, 67, 3);
! 
! 	return TRUE;
! }
! 
! void MyDialog4::AddRoute(unsigned int Dest, unsigned int Gate, int Metric,
! 						 char *Int)
! {
! 	CString DestStr;
! 	CString GateStr;
! 	CString MetricStr;
! 	CString IntStr;
! 	int Idx;
! 
! 	DestStr.Format("%d.%d.%d.%d",
! 		((unsigned char *)&Dest)[0], ((unsigned char *)&Dest)[1],
! 		((unsigned char *)&Dest)[2], ((unsigned char *)&Dest)[3]);
! 
! 	GateStr.Format("%d.%d.%d.%d",
! 		((unsigned char *)&Gate)[0], ((unsigned char *)&Gate)[1],
! 		((unsigned char *)&Gate)[2], ((unsigned char *)&Gate)[3]);
! 
! 	MetricStr.Format("%d", Metric);
! 
! 	IntStr.Format("%c%c%c%c", Int[0], Int[1], Int[2], Int[3]);
! 	IntStr.MakeUpper();
! 
! 	Idx = m_RoutingTable.GetItemCount();
! 
! 	m_RoutingTable.InsertItem(Idx, DestStr);
! 
! 	m_RoutingTable.SetItemText(Idx, 1, GateStr);
! 	m_RoutingTable.SetItemText(Idx, 2, MetricStr);
! 	m_RoutingTable.SetItemText(Idx, 3, IntStr);
! }
! 
! void MyDialog4::DeleteRoute(unsigned int Dest)
! {
! 	CString DestStr;
! 	int Idx, Num;
! 
! 	DestStr.Format("%d.%d.%d.%d",
! 		((unsigned char *)&Dest)[0], ((unsigned char *)&Dest)[1],
! 		((unsigned char *)&Dest)[2], ((unsigned char *)&Dest)[3]);
! 
! 	Num = m_RoutingTable.GetItemCount();
! 
! 	for (Idx = 0; Idx < Num; Idx++)
! 	{
! 		if (m_RoutingTable.GetItemText(Idx, 0) == DestStr)
! 		{
! 			m_RoutingTable.DeleteItem(Idx);
! 			break;
! 		}
! 	}
! }
! 
! void MyDialog4::ClearRoutes(void)
! {
! 	m_RoutingTable.DeleteAllItems();
! }

Index: MyDialog1.h
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/MyDialog1.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** MyDialog1.h	21 Nov 2004 01:21:10 -0000	1.5
--- MyDialog1.h	27 Mar 2007 03:01:06 -0000	1.6
***************
*** 1,102 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined(AFX_MYDIALOG1_H__1A381668_A36B_4C51_9B79_643BC2A59D88__INCLUDED_)
! #define AFX_MYDIALOG1_H__1A381668_A36B_4C51_9B79_643BC2A59D88__INCLUDED_
! 
! #if _MSC_VER > 1000
! #pragma once
! #endif
! 
! class MyDialog1 : public CDialog
! {
! public:
! 	MyDialog1(CWnd* pParent = NULL);
! 
! 	BOOL Create(CWnd *Parent);
! 
! 	void AddOutputLine(CString);
! 	void SetFrozen(int);
! 	void HandleStart(void);
! 	void HandleStop(void);
! 
! 	//{{AFX_DATA(MyDialog1)
! 	enum { IDD = IDD_DIALOG1 };
! 	CButton	m_SaveButton;
! 	CButton	m_FreezeButton;
! 	CButton	m_ContinueButton;
! 	CButton	m_ClearButton;
! 	CEdit	m_OutputWindow;
! 	//}}AFX_DATA
! 
! 
! 	//{{AFX_VIRTUAL(MyDialog1)
! 	protected:
! 	virtual void DoDataExchange(CDataExchange* pDX);
! 	//}}AFX_VIRTUAL
! 
! protected:
! 
! 	//{{AFX_MSG(MyDialog1)
! 	afx_msg void OnOK();
! 	afx_msg void OnCancel();
! 	virtual BOOL OnInitDialog();
! 	afx_msg void OnClearButton();
! 	afx_msg void OnContinueButton();
! 	afx_msg void OnFreezeButton();
! 	afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
! 	afx_msg void OnSaveButton();
! 	//}}AFX_MSG
! 	DECLARE_MESSAGE_MAP()
! 
! 	CCriticalSection CritSect;
! 	CString Output;
! 	int NumLines;
! 
! 	int Frozen;
! 
! 	CFont EditFont;
! 	CBrush WhiteBrush;
! };
! 
! //{{AFX_INSERT_LOCATION}}
! 
! #endif
--- 1,102 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined(AFX_MYDIALOG1_H__1A381668_A36B_4C51_9B79_643BC2A59D88__INCLUDED_)
! #define AFX_MYDIALOG1_H__1A381668_A36B_4C51_9B79_643BC2A59D88__INCLUDED_
! 
! #if _MSC_VER > 1000
! #pragma once
! #endif
! 
! class MyDialog1 : public CDialog
! {
! public:
! 	MyDialog1(CWnd* pParent = NULL);
! 
! 	BOOL Create(CWnd *Parent);
! 
! 	void AddOutputLine(CString);
! 	void SetFrozen(int);
! 	void HandleStart(void);
! 	void HandleStop(void);
! 
! 	//{{AFX_DATA(MyDialog1)
! 	enum { IDD = IDD_DIALOG1 };
! 	CButton	m_SaveButton;
! 	CButton	m_FreezeButton;
! 	CButton	m_ContinueButton;
! 	CButton	m_ClearButton;
! 	CEdit	m_OutputWindow;
! 	//}}AFX_DATA
! 
! 
! 	//{{AFX_VIRTUAL(MyDialog1)
! 	protected:
! 	virtual void DoDataExchange(CDataExchange* pDX);
! 	//}}AFX_VIRTUAL
! 
! protected:
! 
! 	//{{AFX_MSG(MyDialog1)
! 	afx_msg void OnOK();
! 	afx_msg void OnCancel();
! 	virtual BOOL OnInitDialog();
! 	afx_msg void OnClearButton();
! 	afx_msg void OnContinueButton();
! 	afx_msg void OnFreezeButton();
! 	afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
! 	afx_msg void OnSaveButton();
! 	//}}AFX_MSG
! 	DECLARE_MESSAGE_MAP()
! 
! 	CCriticalSection CritSect;
! 	CString Output;
! 	int NumLines;
! 
! 	int Frozen;
! 
! 	CFont EditFont;
! 	CBrush WhiteBrush;
! };
! 
! //{{AFX_INSERT_LOCATION}}
! 
! #endif

Index: MprEntry.h
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/MprEntry.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** MprEntry.h	21 Nov 2004 01:21:10 -0000	1.3
--- MprEntry.h	27 Mar 2007 03:01:06 -0000	1.4
***************
*** 1,55 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined TL_MPRENTRY_H
! #define TL_MPRENTRY_H
! 
! class MprEntry
! {
! public:
! 	unsigned int Addr;
! 	unsigned __int64 Timeout;
! 
! 	class MprEntry &MprEntry::operator=(class MprEntry &);
! 	BOOL MprEntry::operator==(const class MprEntry &) const;
! };
! 
! #endif
--- 1,55 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined TL_MPRENTRY_H
! #define TL_MPRENTRY_H
! 
! class MprEntry
! {
! public:
! 	unsigned int Addr;
! 	unsigned __int64 Timeout;
! 
! 	class MprEntry &MprEntry::operator=(class MprEntry &);
! 	BOOL MprEntry::operator==(const class MprEntry &) const;
! };
! 
! #endif

Index: MidEntry.h
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/MidEntry.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** MidEntry.h	21 Nov 2004 01:21:10 -0000	1.3
--- MidEntry.h	27 Mar 2007 03:01:06 -0000	1.4
***************
*** 1,55 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined TL_MIDENTRY_H
! #define TL_MIDENTRY_H
! 
! class MidEntry
! {
! public:
! 	unsigned int Addr;
! 	unsigned __int64 Timeout;
! 
! 	class MidEntry &MidEntry::operator=(class MidEntry &);
! 	BOOL MidEntry::operator==(const class MidEntry &) const;
! };
! 
! #endif
--- 1,55 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined TL_MIDENTRY_H
! #define TL_MIDENTRY_H
! 
! class MidEntry
! {
! public:
! 	unsigned int Addr;
! 	unsigned __int64 Timeout;
! 
! 	class MidEntry &MidEntry::operator=(class MidEntry &);
! 	BOOL MidEntry::operator==(const class MidEntry &) const;
! };
! 
! #endif

Index: MprEntry.cpp
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/MprEntry.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** MprEntry.cpp	21 Nov 2004 01:21:10 -0000	1.3
--- MprEntry.cpp	27 Mar 2007 03:01:06 -0000	1.4
***************
*** 1,56 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "MprEntry.h"
! 
! class MprEntry &MprEntry::operator=(class MprEntry &Src)
! {
! 	Addr = Src.Addr;
! 	Timeout = Src.Timeout;
! 
! 	return *this;
! }
! 
! BOOL MprEntry::operator==(const class MprEntry &Comp) const
! {
! 	return Addr == Comp.Addr;
! }
--- 1,56 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "MprEntry.h"
! 
! class MprEntry &MprEntry::operator=(class MprEntry &Src)
! {
! 	Addr = Src.Addr;
! 	Timeout = Src.Timeout;
! 
! 	return *this;
! }
! 
! BOOL MprEntry::operator==(const class MprEntry &Comp) const
! {
! 	return Addr == Comp.Addr;
! }

Index: NodeEntry.h
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/NodeEntry.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** NodeEntry.h	21 Nov 2004 01:21:10 -0000	1.3
--- NodeEntry.h	27 Mar 2007 03:01:07 -0000	1.4
***************
*** 1,67 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined TL_NODEENTRY_H
! #define TL_NODEENTRY_H
! 
! #include "MprEntry.h"
! #include "MidEntry.h"
! #include "HnaEntry.h"
! 
! class NodeEntry
! {
! public:
! 	unsigned int Addr;
! 	unsigned __int64 Timeout;
! 
! 	CList<class MprEntry, class MprEntry &> MprList;
! 	CList<class MidEntry, class MidEntry &> MidList;
! 	CList<class HnaEntry, class HnaEntry &> HnaList;
! 
! 	void AddMpr(unsigned int, unsigned __int64);
! 	void AddMid(unsigned int, unsigned __int64);
! 	void AddHna(unsigned int, unsigned int, unsigned __int64);
! 
! 	class NodeEntry &NodeEntry::operator=(class NodeEntry &);
! 	BOOL NodeEntry::operator==(const class NodeEntry &) const;
! };
! 
! #endif
--- 1,67 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined TL_NODEENTRY_H
! #define TL_NODEENTRY_H
! 
! #include "MprEntry.h"
! #include "MidEntry.h"
! #include "HnaEntry.h"
! 
! class NodeEntry
! {
! public:
! 	unsigned int Addr;
! 	unsigned __int64 Timeout;
! 
! 	CList<class MprEntry, class MprEntry &> MprList;
! 	CList<class MidEntry, class MidEntry &> MidList;
! 	CList<class HnaEntry, class HnaEntry &> HnaList;
! 
! 	void AddMpr(unsigned int, unsigned __int64);
! 	void AddMid(unsigned int, unsigned __int64);
! 	void AddHna(unsigned int, unsigned int, unsigned __int64);
! 
! 	class NodeEntry &NodeEntry::operator=(class NodeEntry &);
! 	BOOL NodeEntry::operator==(const class NodeEntry &) const;
! };
! 
! #endif

Index: TrayIcon.cpp
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/TrayIcon.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** TrayIcon.cpp	2 Mar 2005 00:40:51 -0000	1.3
--- TrayIcon.cpp	27 Mar 2007 03:01:07 -0000	1.4
***************
*** 1,185 ****
! #include "stdafx.h"
! #include "TrayIcon.h"
! 
! #include <windows.h>
! #include <shellapi.h>
! 
! #include "Frontend.h"
! #include "FrontendDlg.h"
! #include "Resource.h"
! 
! #define TRAYICONID 987435
! 
! HWND s_hWnd;
! TrayIcon* TrayIcon::instance = NULL;
! 
! LRESULT CALLBACK TrayIconProc( HWND, UINT, WPARAM, LPARAM lParam )
! {
! 	switch (lParam)
! 	{
! 	case WM_LBUTTONDOWN:
! 	case WM_RBUTTONDOWN:
! 		TrayIcon::instance->displayPopup();
! 		break;
! 	}
! 	
! 	return 1;
! }
! 
! void TrayIcon::displayPopup()
! {
! 	HMENU hMenu = LoadMenu(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_TRAYMENU));
! 	HMENU hSubMenu = GetSubMenu(hMenu, 0);
! 
! 	EnableMenuItem(hSubMenu, IDM_STOP,
! 		MF_BYCOMMAND | (main_dlg.m_StopButton.IsWindowEnabled() ? MF_ENABLED : MF_GRAYED));
! 	
! 	EnableMenuItem(hSubMenu, IDM_START,
! 		MF_BYCOMMAND | (main_dlg.m_StartButton.IsWindowEnabled() ? MF_ENABLED : MF_GRAYED));
! 
! 	POINT pt;
! 	
! 	GetCursorPos(&pt);
! 	
! 	SetForegroundWindow( s_hWnd );
! 	
! 	int cmd = TrackPopupMenu(hSubMenu,
! 		TPM_RIGHTBUTTON | TPM_RETURNCMD, 
! 		pt.x, 
! 		pt.y, 
! 		0, 
! 		s_hWnd, 
! 		NULL);
! 	
! 	PostMessage(s_hWnd, WM_NULL, 0, 0); 
! 	
! 	switch(cmd)
! 	{
! 	case IDM_EXIT:
! 		main_dlg.OnExitButton();
! 		break;
! 		
! 	case IDM_WINDOW:
! 		main_dlg.OpenIcon();
! 		main_dlg.SetWindowPos(&CWnd::wndTop, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
! 		break;
! 
! 	case IDM_SETTINGS:
! 		main_dlg.m_TabCtrl.SetCurSel(0);
! 		main_dlg.m_TabCtrl.DisplayTabDialog();
! 		main_dlg.OpenIcon();
! 		main_dlg.SetWindowPos(&CWnd::wndTop, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
! 		break;
! 		
! 	case IDM_OUTPUT:
! 		main_dlg.m_TabCtrl.SetCurSel(1);
! 		main_dlg.m_TabCtrl.DisplayTabDialog();
! 		main_dlg.OpenIcon();
! 		main_dlg.SetWindowPos(&CWnd::wndTop, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
! 		break;
! 		
! 	case IDM_STOP:
! 		main_dlg.OnStopButton();
! 		break;
! 		
! 	case IDM_START:
! 		main_dlg.OnStartButton();
! 		break;
! 	}
! 	
! 	DestroyMenu(hMenu);
! }
! 
! void TrayIcon::setStatus( status con_stat, const char* message )
! {
! 	switch( con_stat )
! 	{
! 	case CONNECTED:
! 		setTrayAppearance( false, IDI_ICON2, message );
! 		break;
! 		
! 	case OFF:
! 		setTrayAppearance( false, IDI_ICON3, message );
! 		break;
! 		
! 	case ON:
! 		setTrayAppearance( false, IDI_ICON1, message );
! 		break;
! 	}
! }
! 
! void TrayIcon::setTrayAppearance( bool start, unsigned int res_id, const char* message )
! {
! 	NOTIFYICONDATA notifyIconData;
! 	
! 	notifyIconData.cbSize = sizeof(notifyIconData);
! 	notifyIconData.hWnd = s_hWnd;
! 	
! 	notifyIconData.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
! 	notifyIconData.uCallbackMessage = 123456;
! 	notifyIconData.uID = TRAYICONID; 
! 	notifyIconData.hIcon = (HICON)LoadIcon( hInst, MAKEINTRESOURCE( res_id ) );  
! 	strcpy( notifyIconData.szTip, message ); 
! 	
! 	if( start )
! 		Shell_NotifyIcon( NIM_ADD, &notifyIconData );
! 	else
! 		Shell_NotifyIcon( NIM_MODIFY, &notifyIconData );
! }
! 
! TrayIcon::TrayIcon( CFrontendDlg& dlg, HINSTANCE hInst ) : main_dlg( dlg ), hInst( hInst )
! {
! 	instance = this;
! 	WNDCLASS wndClass;
! 	
! 	wndClass.style = 0; 
! 	wndClass.lpfnWndProc = TrayIconProc;
! 	wndClass.cbClsExtra = 0;
! 	wndClass.cbWndExtra = 0;
! 	wndClass.hInstance = hInst;
! 	wndClass.hIcon = NULL;
! 	wndClass.hCursor = NULL;
! 	wndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
! 	wndClass.lpszMenuName = NULL;
! 	wndClass.lpszClassName = "OLSRdTrayIcon";
! 	
! 	if (0 != RegisterClass(&wndClass))
! 	{
! 		s_hWnd = CreateWindow( 
! 			"OLSRdTrayIcon", 
! 			"Invisible Message Window", 
! 			WS_OVERLAPPEDWINDOW,
! 			CW_USEDEFAULT,
! 			CW_USEDEFAULT,
! 			CW_USEDEFAULT,
! 			CW_USEDEFAULT,
! 			NULL,
! 			NULL,
! 			hInst,
! 			NULL);
! 		
! 		if (s_hWnd)
! 		{
! 			ShowWindow(s_hWnd, SW_HIDE);
! 			
! 			UpdateWindow(s_hWnd);
! 		}
! 	}
! 	
! 	setTrayAppearance( true, IDI_ICON3, "Starting..." );
! }
! 
! TrayIcon::~TrayIcon()
! {
! 	NOTIFYICONDATA notifyIconData;
! 	
! 	notifyIconData.cbSize = sizeof(notifyIconData);
! 	notifyIconData.hWnd = s_hWnd;
! 	
! 	notifyIconData.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
! 	notifyIconData.uCallbackMessage = 123456;
! 	notifyIconData.uID = TRAYICONID; 
! 	notifyIconData.hIcon = NULL;
! 	
! 	Shell_NotifyIcon( NIM_DELETE, &notifyIconData );
! }
--- 1,185 ----
! #include "stdafx.h"
! #include "TrayIcon.h"
! 
! #include <windows.h>
! #include <shellapi.h>
! 
! #include "Frontend.h"
! #include "FrontendDlg.h"
! #include "Resource.h"
! 
! #define TRAYICONID 987435
! 
! HWND s_hWnd;
! TrayIcon* TrayIcon::instance = NULL;
! 
! LRESULT CALLBACK TrayIconProc( HWND, UINT, WPARAM, LPARAM lParam )
! {
! 	switch (lParam)
! 	{
! 	case WM_LBUTTONDOWN:
! 	case WM_RBUTTONDOWN:
! 		TrayIcon::instance->displayPopup();
! 		break;
! 	}
! 	
! 	return 1;
! }
! 
! void TrayIcon::displayPopup()
! {
! 	HMENU hMenu = LoadMenu(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_TRAYMENU));
! 	HMENU hSubMenu = GetSubMenu(hMenu, 0);
! 
! 	EnableMenuItem(hSubMenu, IDM_STOP,
! 		MF_BYCOMMAND | (main_dlg.m_StopButton.IsWindowEnabled() ? MF_ENABLED : MF_GRAYED));
! 	
! 	EnableMenuItem(hSubMenu, IDM_START,
! 		MF_BYCOMMAND | (main_dlg.m_StartButton.IsWindowEnabled() ? MF_ENABLED : MF_GRAYED));
! 
! 	POINT pt;
! 	
! 	GetCursorPos(&pt);
! 	
! 	SetForegroundWindow( s_hWnd );
! 	
! 	int cmd = TrackPopupMenu(hSubMenu,
! 		TPM_RIGHTBUTTON | TPM_RETURNCMD, 
! 		pt.x, 
! 		pt.y, 
! 		0, 
! 		s_hWnd, 
! 		NULL);
! 	
! 	PostMessage(s_hWnd, WM_NULL, 0, 0); 
! 	
! 	switch(cmd)
! 	{
! 	case IDM_EXIT:
! 		main_dlg.OnExitButton();
! 		break;
! 		
! 	case IDM_WINDOW:
! 		main_dlg.OpenIcon();
! 		main_dlg.SetWindowPos(&CWnd::wndTop, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
! 		break;
! 
! 	case IDM_SETTINGS:
! 		main_dlg.m_TabCtrl.SetCurSel(0);
! 		main_dlg.m_TabCtrl.DisplayTabDialog();
! 		main_dlg.OpenIcon();
! 		main_dlg.SetWindowPos(&CWnd::wndTop, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
! 		break;
! 		
! 	case IDM_OUTPUT:
! 		main_dlg.m_TabCtrl.SetCurSel(1);
! 		main_dlg.m_TabCtrl.DisplayTabDialog();
! 		main_dlg.OpenIcon();
! 		main_dlg.SetWindowPos(&CWnd::wndTop, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
! 		break;
! 		
! 	case IDM_STOP:
! 		main_dlg.OnStopButton();
! 		break;
! 		
! 	case IDM_START:
! 		main_dlg.OnStartButton();
! 		break;
! 	}
! 	
! 	DestroyMenu(hMenu);
! }
! 
! void TrayIcon::setStatus( status con_stat, const char* message )
! {
! 	switch( con_stat )
! 	{
! 	case CONNECTED:
! 		setTrayAppearance( false, IDI_ICON2, message );
! 		break;
! 		
! 	case OFF:
! 		setTrayAppearance( false, IDI_ICON3, message );
! 		break;
! 		
! 	case ON:
! 		setTrayAppearance( false, IDI_ICON1, message );
! 		break;
! 	}
! }
! 
! void TrayIcon::setTrayAppearance( bool start, unsigned int res_id, const char* message )
! {
! 	NOTIFYICONDATA notifyIconData;
! 	
! 	notifyIconData.cbSize = sizeof(notifyIconData);
! 	notifyIconData.hWnd = s_hWnd;
! 	
! 	notifyIconData.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
! 	notifyIconData.uCallbackMessage = 123456;
! 	notifyIconData.uID = TRAYICONID; 
! 	notifyIconData.hIcon = (HICON)LoadIcon( hInst, MAKEINTRESOURCE( res_id ) );  
! 	strcpy_s( notifyIconData.szTip, sizeof (notifyIconData.szTip), message ); 
! 	
! 	if( start )
! 		Shell_NotifyIcon( NIM_ADD, &notifyIconData );
! 	else
! 		Shell_NotifyIcon( NIM_MODIFY, &notifyIconData );
! }
! 
! TrayIcon::TrayIcon( CFrontendDlg& dlg, HINSTANCE hInst ) : main_dlg( dlg ), hInst( hInst )
! {
! 	instance = this;
! 	WNDCLASS wndClass;
! 	
! 	wndClass.style = 0; 
! 	wndClass.lpfnWndProc = TrayIconProc;
! 	wndClass.cbClsExtra = 0;
! 	wndClass.cbWndExtra = 0;
! 	wndClass.hInstance = hInst;
! 	wndClass.hIcon = NULL;
! 	wndClass.hCursor = NULL;
! 	wndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
! 	wndClass.lpszMenuName = NULL;
! 	wndClass.lpszClassName = "OLSRdTrayIcon";
! 	
! 	if (0 != RegisterClass(&wndClass))
! 	{
! 		s_hWnd = CreateWindow( 
! 			"OLSRdTrayIcon", 
! 			"Invisible Message Window", 
! 			WS_OVERLAPPEDWINDOW,
! 			CW_USEDEFAULT,
! 			CW_USEDEFAULT,
! 			CW_USEDEFAULT,
! 			CW_USEDEFAULT,
! 			NULL,
! 			NULL,
! 			hInst,
! 			NULL);
! 		
! 		if (s_hWnd)
! 		{
! 			ShowWindow(s_hWnd, SW_HIDE);
! 			
! 			UpdateWindow(s_hWnd);
! 		}
! 	}
! 	
! 	setTrayAppearance( true, IDI_ICON3, "Starting..." );
! }
! 
! TrayIcon::~TrayIcon()
! {
! 	NOTIFYICONDATA notifyIconData;
! 	
! 	notifyIconData.cbSize = sizeof(notifyIconData);
! 	notifyIconData.hWnd = s_hWnd;
! 	
! 	notifyIconData.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
! 	notifyIconData.uCallbackMessage = 123456;
! 	notifyIconData.uID = TRAYICONID; 
! 	notifyIconData.hIcon = NULL;
! 	
! 	Shell_NotifyIcon( NIM_DELETE, &notifyIconData );
! }

Index: FrontendDlg.h
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/FrontendDlg.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** FrontendDlg.h	17 Jan 2005 11:52:36 -0000	1.6
--- FrontendDlg.h	27 Mar 2007 03:01:06 -0000	1.7
***************
*** 1,138 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined(AFX_FRONTENDDLG_H__7D68FBC0_7448_479B_81F0_3FBBDE291395__INCLUDED_)
! #define AFX_FRONTENDDLG_H__7D68FBC0_7448_479B_81F0_3FBBDE291395__INCLUDED_
! 
! #if _MSC_VER > 1000
! #pragma once
! #endif
! 
! #include "MyTabCtrl.h"
! #include "NodeEntry.h"
! 
! #define PIPE_MODE_RUN 0
! #define PIPE_MODE_INT 1
! 
! class CFrontendDlg : public CDialog
! {
! public:
! 	CFrontendDlg(CWnd* pParent = NULL);
! 
! 	//{{AFX_DATA(CFrontendDlg)
! 	enum { IDD = IDD_FRONTEND_DIALOG };
! 	CButton m_StopButton;
! 	CButton m_StartButton;
! 	MyTabCtrl m_TabCtrl;
! 	//}}AFX_DATA
! 
! 	unsigned int LogThreadFunc(void);
! 	unsigned int NetThreadFunc(void);
! 
! 	CString ConfigFile;
! protected:
! 
! 	//{{AFX_VIRTUAL(CFrontendDlg)
! 	virtual void DoDataExchange(CDataExchange* pDX);
! 	//}}AFX_VIRTUAL
! 
! public:
! 	//{{AFX_MSG(CFrontendDlg)
! 	virtual BOOL OnInitDialog();
! 	afx_msg void OnOK();
! 	afx_msg void OnCancel();
! 	afx_msg void OnStartButton();
! 	afx_msg void OnStopButton();
! 	afx_msg void OnExitButton();
! 	//}}AFX_MSG
! 
! protected:
! 	DECLARE_MESSAGE_MAP()
! 
! 	int StartOlsrd(void);
! 	int StopOlsrd(void);
! 
! 	int GetInterfaces(void);
! 
! 	HANDLE Event;
! 
! 	CString StoredTempFile;
! 
! 	SOCKET SockHand;
! 
! 	int PipeMode;
! 	int ExecutePipe(const char *, HANDLE *, HANDLE *, HANDLE *);
! 
! 	CWinThread *LogThread;
! 	CWinThread *NetThread;
! 
! 	CStringArray Interfaces;
! 	CStringArray Addresses;
! 	CStringArray IsWlan;
! 
! 	HANDLE OutRead, InWrite;
! 	HANDLE ShimProc;
! 
! 	void HandleIpcRoute(struct IpcRoute *);
! 	void HandleIpcConfig(struct IpcConfig *);
! 	void HandleOlsrHello(struct OlsrHello *, int);
! 	void HandleOlsrTc(struct OlsrTc *, int);
! 	void HandleOlsrMid(struct OlsrHeader *);
! 	void HandleOlsrHna(struct OlsrHeader *);
! 
! 	void AddNode(unsigned int, unsigned int);
! 	void AddMpr(unsigned int, unsigned int, unsigned int);
! 	void AddMid(unsigned int, unsigned int, unsigned int);
! 	void AddHna(unsigned int, unsigned int, unsigned int, unsigned int);
! 
! 	CList<class NodeEntry, class NodeEntry &> NodeList;
! 
! 	void Timeout(void);
! 
! 	unsigned __int64 Now;
! 
! 	unsigned int LocalHost;
! };
! 
! //{{AFX_INSERT_LOCATION}}
! 
! #endif
! 
--- 1,138 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined(AFX_FRONTENDDLG_H__7D68FBC0_7448_479B_81F0_3FBBDE291395__INCLUDED_)
! #define AFX_FRONTENDDLG_H__7D68FBC0_7448_479B_81F0_3FBBDE291395__INCLUDED_
! 
! #if _MSC_VER > 1000
! #pragma once
! #endif
! 
! #include "MyTabCtrl.h"
! #include "NodeEntry.h"
! 
! #define PIPE_MODE_RUN 0
! #define PIPE_MODE_INT 1
! 
! class CFrontendDlg : public CDialog
! {
! public:
! 	CFrontendDlg(CWnd* pParent = NULL);
! 
! 	//{{AFX_DATA(CFrontendDlg)
! 	enum { IDD = IDD_FRONTEND_DIALOG };
! 	CButton m_StopButton;
! 	CButton m_StartButton;
! 	MyTabCtrl m_TabCtrl;
! 	//}}AFX_DATA
! 
! 	unsigned int LogThreadFunc(void);
! 	unsigned int NetThreadFunc(void);
! 
! 	CString ConfigFile;
! protected:
! 
! 	//{{AFX_VIRTUAL(CFrontendDlg)
! 	virtual void DoDataExchange(CDataExchange* pDX);
! 	//}}AFX_VIRTUAL
! 
! public:
! 	//{{AFX_MSG(CFrontendDlg)
! 	virtual BOOL OnInitDialog();
! 	afx_msg void OnOK();
! 	afx_msg void OnCancel();
! 	afx_msg void OnStartButton();
! 	afx_msg void OnStopButton();
! 	afx_msg void OnExitButton();
! 	//}}AFX_MSG
! 
! protected:
! 	DECLARE_MESSAGE_MAP()
! 
! 	int StartOlsrd(void);
! 	int StopOlsrd(void);
! 
! 	int GetInterfaces(void);
! 
! 	HANDLE Event;
! 
! 	CString StoredTempFile;
! 
! 	SOCKET SockHand;
! 
! 	int PipeMode;
! 	int ExecutePipe(const char *, HANDLE *, HANDLE *, HANDLE *);
! 
! 	CWinThread *LogThread;
! 	CWinThread *NetThread;
! 
! 	CStringArray Interfaces;
! 	CStringArray Addresses;
! 	CStringArray IsWlan;
! 
! 	HANDLE OutRead, InWrite;
! 	HANDLE ShimProc;
! 
! 	void HandleIpcRoute(struct IpcRoute *);
! 	void HandleIpcConfig(struct IpcConfig *);
! 	void HandleOlsrHello(struct OlsrHello *, int);
! 	void HandleOlsrTc(struct OlsrTc *, int);
! 	void HandleOlsrMid(struct OlsrHeader *);
! 	void HandleOlsrHna(struct OlsrHeader *);
! 
! 	void AddNode(unsigned int, unsigned int);
! 	void AddMpr(unsigned int, unsigned int, unsigned int);
! 	void AddMid(unsigned int, unsigned int, unsigned int);
! 	void AddHna(unsigned int, unsigned int, unsigned int, unsigned int);
! 
! 	CList<class NodeEntry, class NodeEntry &> NodeList;
! 
! 	void Timeout(void);
! 
! 	unsigned __int64 Now;
! 
! 	unsigned int LocalHost;
! };
! 
! //{{AFX_INSERT_LOCATION}}
! 
! #endif
! 

Index: HnaEntry.h
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/HnaEntry.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** HnaEntry.h	21 Nov 2004 01:21:10 -0000	1.3
--- HnaEntry.h	27 Mar 2007 03:01:06 -0000	1.4
***************
*** 1,56 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined TL_HNAENTRY_H
! #define TL_HNAENTRY_H
! 
! class HnaEntry
! {
! public:
! 	unsigned int Addr;
! 	unsigned int Mask;
! 	unsigned __int64 Timeout;
! 
! 	class HnaEntry &HnaEntry::operator=(class HnaEntry &);
! 	BOOL HnaEntry::operator==(const class HnaEntry &) const;
! };
! 
! #endif
--- 1,56 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined TL_HNAENTRY_H
! #define TL_HNAENTRY_H
! 
! class HnaEntry
! {
! public:
! 	unsigned int Addr;
! 	unsigned int Mask;
! 	unsigned __int64 Timeout;
! 
! 	class HnaEntry &HnaEntry::operator=(class HnaEntry &);
! 	BOOL HnaEntry::operator==(const class HnaEntry &) const;
! };
! 
! #endif

--- Switch.exe.manifest DELETED ---

Index: MyDialog4.h
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/MyDialog4.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** MyDialog4.h	21 Nov 2004 01:21:10 -0000	1.3
--- MyDialog4.h	27 Mar 2007 03:01:06 -0000	1.4
***************
*** 1,83 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined(AFX_MYDIALOG4_H__1A381668_A36B_4C51_9B79_643BC2A59D88__INCLUDED_)
! #define AFX_MYDIALOG4_H__1A381668_A36B_4C51_9B79_643BC2A59D88__INCLUDED_
! 
! #if _MSC_VER > 1000
! #pragma once
! #endif
! 
! class MyDialog4 : public CDialog
! {
! public:
! 	MyDialog4(CWnd* pParent = NULL);
! 
! 	BOOL Create(CWnd *Parent);
! 
! 	void AddRoute(unsigned int, unsigned int, int, char *);
! 	void DeleteRoute(unsigned int);
! 	void ClearRoutes(void);
! 
! 	//{{AFX_DATA(MyDialog4)
! 	enum { IDD = IDD_DIALOG4 };
! 	CListCtrl	m_RoutingTable;
! 	//}}AFX_DATA
! 
! 
! 	//{{AFX_VIRTUAL(MyDialog4)
! 	protected:
! 	virtual void DoDataExchange(CDataExchange* pDX);
! 	//}}AFX_VIRTUAL
! 
! protected:
! 
! 	//{{AFX_MSG(MyDialog4)
! 	afx_msg void OnOK();
! 	afx_msg void OnCancel();
! 	virtual BOOL OnInitDialog();
! 	//}}AFX_MSG
! 	DECLARE_MESSAGE_MAP()
! };
! 
! //{{AFX_INSERT_LOCATION}}
! 
! #endif
--- 1,83 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined(AFX_MYDIALOG4_H__1A381668_A36B_4C51_9B79_643BC2A59D88__INCLUDED_)
! #define AFX_MYDIALOG4_H__1A381668_A36B_4C51_9B79_643BC2A59D88__INCLUDED_
! 
! #if _MSC_VER > 1000
! #pragma once
! #endif
! 
! class MyDialog4 : public CDialog
! {
! public:
! 	MyDialog4(CWnd* pParent = NULL);
! 
! 	BOOL Create(CWnd *Parent);
! 
! 	void AddRoute(unsigned int, unsigned int, int, char *);
! 	void DeleteRoute(unsigned int);
! 	void ClearRoutes(void);
! 
! 	//{{AFX_DATA(MyDialog4)
! 	enum { IDD = IDD_DIALOG4 };
! 	CListCtrl	m_RoutingTable;
! 	//}}AFX_DATA
! 
! 
! 	//{{AFX_VIRTUAL(MyDialog4)
! 	protected:
! 	virtual void DoDataExchange(CDataExchange* pDX);
! 	//}}AFX_VIRTUAL
! 
! protected:
! 
! 	//{{AFX_MSG(MyDialog4)
! 	afx_msg void OnOK();
! 	afx_msg void OnCancel();
! 	virtual BOOL OnInitDialog();
! 	//}}AFX_MSG
! 	DECLARE_MESSAGE_MAP()
! };
! 
! //{{AFX_INSERT_LOCATION}}
! 
! #endif

Index: MyTabCtrl.h
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/MyTabCtrl.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** MyTabCtrl.h	14 Feb 2005 20:39:30 -0000	1.5
--- MyTabCtrl.h	27 Mar 2007 03:01:06 -0000	1.6
***************
*** 1,86 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined(AFX_MYTABCTRL_H__D443FF52_C52D_4C89_AB4B_19B09687EBAE__INCLUDED_)
! #define AFX_MYTABCTRL_H__D443FF52_C52D_4C89_AB4B_19B09687EBAE__INCLUDED_
! 
! #if _MSC_VER > 1000
! #pragma once
! #endif
! 
! #include "MyDialog1.h"
! #include "MyDialog2.h"
! #include "MyDialog3.h"
! #include "MyDialog4.h"
! 
! class MyTabCtrl : public CTabCtrl
! {
! public:
! 	MyTabCtrl();
! 
! 	class MyDialog1 m_Dialog1;
! 	class MyDialog2 m_Dialog2;
! 	class MyDialog3 m_Dialog3;
! 	class MyDialog4 m_Dialog4;
! 
! 	void InitTabDialogs(CStringArray *, CStringArray *, CStringArray *);
! 	void DisplayTabDialog(void);
! 
! 	//{{AFX_VIRTUAL(MyTabCtrl)
! 	//}}AFX_VIRTUAL
! 
! 	virtual ~MyTabCtrl();
! 
! protected:
! 	CDialog *Dialogs[4];
! 
! 	int Sel;
! 
! 	//{{AFX_MSG(MyTabCtrl)
! 	afx_msg void OnSelchange(NMHDR* pNMHDR, LRESULT* pResult);
! 	//}}AFX_MSG
! 
! 	DECLARE_MESSAGE_MAP()
! };
! 
! //{{AFX_INSERT_LOCATION}}
! 
! #endif
--- 1,86 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined(AFX_MYTABCTRL_H__D443FF52_C52D_4C89_AB4B_19B09687EBAE__INCLUDED_)
! #define AFX_MYTABCTRL_H__D443FF52_C52D_4C89_AB4B_19B09687EBAE__INCLUDED_
! 
! #if _MSC_VER > 1000
! #pragma once
! #endif
! 
! #include "MyDialog1.h"
! #include "MyDialog2.h"
! #include "MyDialog3.h"
! #include "MyDialog4.h"
! 
! class MyTabCtrl : public CTabCtrl
! {
! public:
! 	MyTabCtrl();
! 
! 	class MyDialog1 m_Dialog1;
! 	class MyDialog2 m_Dialog2;
! 	class MyDialog3 m_Dialog3;
! 	class MyDialog4 m_Dialog4;
! 
! 	void InitTabDialogs(CStringArray *, CStringArray *, CStringArray *);
! 	void DisplayTabDialog(void);
! 
! 	//{{AFX_VIRTUAL(MyTabCtrl)
! 	//}}AFX_VIRTUAL
! 
! 	virtual ~MyTabCtrl();
! 
! protected:
! 	CDialog *Dialogs[4];
! 
! 	int Sel;
! 
! 	//{{AFX_MSG(MyTabCtrl)
! 	afx_msg void OnSelchange(NMHDR* pNMHDR, LRESULT* pResult);
! 	//}}AFX_MSG
! 
! 	DECLARE_MESSAGE_MAP()
! };
! 
! //{{AFX_INSERT_LOCATION}}
! 
! #endif

Index: HnaEntry.cpp
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/HnaEntry.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** HnaEntry.cpp	21 Nov 2004 01:21:10 -0000	1.3
--- HnaEntry.cpp	27 Mar 2007 03:01:06 -0000	1.4
***************
*** 1,57 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "HnaEntry.h"
! 
! class HnaEntry &HnaEntry::operator=(class HnaEntry &Src)
! {
! 	Addr = Src.Addr;
! 	Mask = Src.Mask;
! 	Timeout = Src.Timeout;
! 
! 	return *this;
! }
! 
! BOOL HnaEntry::operator==(const class HnaEntry &Comp) const
! {
! 	return Addr == Comp.Addr && Mask == Comp.Mask;
! }
--- 1,57 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "HnaEntry.h"
! 
! class HnaEntry &HnaEntry::operator=(class HnaEntry &Src)
! {
! 	Addr = Src.Addr;
! 	Mask = Src.Mask;
! 	Timeout = Src.Timeout;
! 
! 	return *this;
! }
! 
! BOOL HnaEntry::operator==(const class HnaEntry &Comp) const
! {
! 	return Addr == Comp.Addr && Mask == Comp.Mask;
! }

Index: Frontend.rc
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/Frontend.rc,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** Frontend.rc	2 Mar 2005 00:13:23 -0000	1.7
--- Frontend.rc	27 Mar 2007 03:01:06 -0000	1.8
***************
*** 1,320 ****
! //Microsoft Developer Studio generated resource script.
! //
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // English (U.S.) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
! #ifdef _WIN32
! LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
! #pragma code_page(1252)
! #endif //_WIN32
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE MOVEABLE PURE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE MOVEABLE PURE 
! BEGIN
!     "#include ""afxres.h""\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE MOVEABLE PURE 
! BEGIN
!     "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
!     "#define _AFX_NO_OLE_RESOURCES\r\n"
!     "#define _AFX_NO_TRACKER_RESOURCES\r\n"
!     "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
!     "\r\n"
!     "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
!     "#ifdef _WIN32\r\n"
!     "LANGUAGE 9, 1\r\n"
!     "#pragma code_page(1252)\r\n"
!     "#endif //_WIN32\r\n"
!     "#include ""res\\Frontend.rc2""  // non-Microsoft Visual C++ edited resources\r\n"
!     "#include ""afxres.rc""         // Standard components\r\n"
!     "#endif\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_FRONTEND_DIALOG DIALOGEX 0, 0, 399, 289
! STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
!     WS_SYSMENU
! EXSTYLE WS_EX_APPWINDOW
! CAPTION "olsr.org Switch 0.4.9"
! FONT 8, "MS Sans Serif", 0, 0, 0x1
! BEGIN
!     CONTROL         "Tab1",IDC_TAB1,"SysTabControl32",0x0,7,7,383,256
!     PUSHBUTTON      "Start",IDC_BUTTON1,228,268,50,14
!     PUSHBUTTON      "Stop",IDC_BUTTON2,284,268,50,14
!     PUSHBUTTON      "Exit",IDC_BUTTON3,340,268,50,14
! END
! 
! IDD_DIALOG1 DIALOG DISCARDABLE  0, 0, 377, 240
! STYLE WS_CHILD | WS_VISIBLE
! FONT 8, "MS Sans Serif"
! BEGIN
!     EDITTEXT        IDC_EDIT1,7,25,363,208,ES_MULTILINE | ES_READONLY | 
!                     ES_WANTRETURN | WS_VSCROLL | WS_HSCROLL
!     PUSHBUTTON      "Freeze",IDC_BUTTON3,152,7,50,14
!     PUSHBUTTON      "Continue",IDC_BUTTON2,208,7,50,14
!     PUSHBUTTON      "Save",IDC_BUTTON4,264,7,50,14
!     PUSHBUTTON      "Clear",IDC_BUTTON1,320,7,50,14
! END
! 
! IDD_DIALOG2 DIALOG DISCARDABLE  0, 0, 377, 240
! STYLE WS_CHILD | WS_VISIBLE
! FONT 8, "MS Sans Serif"
! BEGIN
!     CONTROL         "List1",IDC_LIST1,"SysListView32",LVS_LIST | WS_BORDER | 
!                     WS_TABSTOP,7,19,103,76
!     CONTROL         "Slider2",IDC_SLIDER2,"msctls_trackbar32",TBS_AUTOTICKS | 
!                     TBS_BOTH | WS_TABSTOP,8,116,87,26
!     EDITTEXT        IDC_EDIT7,55,153,26,12,ES_RIGHT
!     CONTROL         "Enable IP version 6",IDC_CHECK3,"Button",
!                     BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,7,171,93,10
!     CONTROL         "Offer Internet connection",IDC_CHECK2,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,7,187,93,10
!     EDITTEXT        IDC_EDIT1,189,7,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT2,305,7,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT3,189,23,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT9,305,23,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT4,189,39,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT10,305,39,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT5,189,55,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT6,305,55,26,12,ES_RIGHT
!     COMBOBOX        IDC_COMBO1,189,76,26,41,CBS_DROPDOWNLIST | CBS_SORT | 
!                     WS_VSCROLL | WS_TABSTOP
!     EDITTEXT        IDC_EDIT15,305,77,26,12,ES_RIGHT | ES_NUMBER
!     CONTROL         "Enable hysteresis",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | 
!                     WS_TABSTOP,134,101,74,10
!     EDITTEXT        IDC_EDIT12,189,115,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT13,305,115,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT11,189,131,26,12,ES_RIGHT
!     CONTROL         "Enable ETX link quality",IDC_CHECK4,"Button",
!                     BS_AUTOCHECKBOX | WS_TABSTOP,132,155,92,10
!     CONTROL         "for MPR selection only",IDC_RADIO1,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,132,171,87,10
!     CONTROL         "for MPR selection and routing",IDC_RADIO2,"Button",
!                     BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,132,187,109,
!                     10
!     EDITTEXT        IDC_EDIT14,305,169,26,12,ES_RIGHT | ES_NUMBER
!     PUSHBUTTON      "Open",IDC_BUTTON4,210,219,50,14
!     PUSHBUTTON      "Save",IDC_BUTTON5,265,219,50,14
!     PUSHBUTTON      "Reset",IDC_BUTTON1,320,219,50,14
!     LTEXT           "Interface list",IDC_STATIC,7,8,39,8
!     LTEXT           "Debug level",IDC_STATIC,7,105,39,8
!     RTEXT           "HELLO interval:",IDC_STATIC,132,9,51,8
!     RTEXT           "HELLO hold:",IDC_STATIC,247,9,42,8
!     RTEXT           "MID interval:",IDC_STATIC,132,25,41,8
!     RTEXT           "MID hold:",IDC_STATIC,247,25,32,8
!     RTEXT           "HNA interval:",IDC_STATIC,132,41,43,8
!     RTEXT           "HNA hold:",IDC_STATIC,247,41,34,8
!     RTEXT           "TC interval:",IDC_STATIC,132,57,37,8
!     RTEXT           "TC hold:",IDC_STATIC,247,57,28,8
!     RTEXT           "TC redundancy:",IDC_STATIC,132,79,52,8
!     RTEXT           "MPR coverage:",IDC_STATIC,247,79,51,8
!     LTEXT           "sec",IDC_STATIC,219,9,12,8
!     LTEXT           "sec",IDC_STATIC,335,9,12,8
!     LTEXT           "sec",IDC_STATIC,219,25,12,8
!     LTEXT           "sec",IDC_STATIC,335,25,12,8
!     LTEXT           "sec",IDC_STATIC,219,41,12,8
!     LTEXT           "sec",IDC_STATIC,335,41,12,8
!     LTEXT           "sec",IDC_STATIC,219,57,12,8
!     LTEXT           "sec",IDC_STATIC,335,57,12,8
!     RTEXT           "Poll interval:",IDC_STATIC,7,155,39,8
!     LTEXT           "sec",IDC_STATIC,85,155,12,8
!     CTEXT           "0",IDC_TEXT1,96,123,11,8
!     RTEXT           "Low mark:",IDC_STATIC,132,117,34,8
!     RTEXT           "Scaling:",IDC_STATIC,132,133,26,8
!     RTEXT           "High mark:",IDC_STATIC,247,117,35,8
!     RTEXT           "Window size:",IDC_STATIC,247,171,43,8
! END
! 
! IDD_DIALOG3 DIALOG DISCARDABLE  0, 0, 377, 240
! STYLE WS_CHILD | WS_VISIBLE
! FONT 8, "MS Sans Serif"
! BEGIN
!     CONTROL         "List1",IDC_LIST1,"SysListView32",LVS_REPORT | 
!                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP,7,18,239,215
!     CONTROL         "List4",IDC_LIST4,"SysListView32",LVS_REPORT | 
!                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP,255,18,115,66
!     CONTROL         "List4",IDC_LIST5,"SysListView32",LVS_REPORT | 
!                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP,255,92,115,66
!     CONTROL         "List4",IDC_LIST6,"SysListView32",LVS_REPORT | 
!                     LVS_SINGLESEL | WS_BORDER | WS_TABSTOP,255,167,115,66
!     LTEXT           "Node list",IDC_STATIC,7,7,32,8
!     LTEXT           "Node information",IDC_STATIC,257,7,59,8
! END
! 
! IDD_DIALOG4 DIALOG DISCARDABLE  0, 0, 377, 240
! STYLE WS_CHILD | WS_VISIBLE
! FONT 8, "MS Sans Serif"
! BEGIN
!     CONTROL         "List1",IDC_LIST1,"SysListView32",LVS_REPORT | WS_BORDER | 
!                     WS_TABSTOP,7,18,363,215
!     LTEXT           "Routing table",IDC_STATIC,7,7,48,8
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO MOVEABLE PURE 
! BEGIN
!     IDD_FRONTEND_DIALOG, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 390
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 282
!     END
! 
!     IDD_DIALOG1, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 370
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 233
!     END
! 
!     IDD_DIALOG2, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 370
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 233
!     END
! 
!     IDD_DIALOG3, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 370
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 233
!     END
! 
!     IDD_DIALOG4, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 370
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 233
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_ICON1               ICON    DISCARDABLE     "res\\Frontend.ico"
! IDI_ICON3               ICON    DISCARDABLE     "res\\Tray2.ico"
! IDI_ICON2               ICON    DISCARDABLE     "res\\Tray1.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // RT_MANIFEST
! //
! 
! IDR_241                 RT_MANIFEST MOVEABLE PURE "Switch.exe.manifest"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Menu
! //
! 
! IDR_TRAYMENU MENU DISCARDABLE 
! BEGIN
!     POPUP "IDR_TRAYMENU"
!     BEGIN
!         MENUITEM "Start",                       IDM_START
!         MENUITEM "Stop",                        IDM_STOP
!         POPUP "Show"
!         BEGIN
!             MENUITEM "Window",                      IDM_WINDOW
!             MENUITEM "Settings",                    IDM_SETTINGS
!             MENUITEM "Output",                      IDM_OUTPUT
!         END
!         MENUITEM "Exit",                        IDM_EXIT
!     END
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog Info
! //
! 
! IDD_DIALOG2 DLGINIT
! BEGIN
!     IDC_COMBO1, 0x403, 2, 0
! 0x0030, 
!     IDC_COMBO1, 0x403, 2, 0
! 0x0031, 
!     IDC_COMBO1, 0x403, 2, 0
! 0x0032, 
!     0
! END
! 
! #endif    // English (U.S.) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! #define _AFX_NO_SPLITTER_RESOURCES
! #define _AFX_NO_OLE_RESOURCES
! #define _AFX_NO_TRACKER_RESOURCES
! #define _AFX_NO_PROPERTY_RESOURCES
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
! #ifdef _WIN32
! LANGUAGE 9, 1
! #pragma code_page(1252)
! #endif //_WIN32
! #include "res\Frontend.rc2"  // non-Microsoft Visual C++ edited resources
! #include "afxres.rc"         // Standard components
! #endif
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 
--- 1,297 ----
! // Microsoft Visual C++ generated resource script.
! //
! #include "resource.h"
! 
! #define APSTUDIO_READONLY_SYMBOLS
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 2 resource.
! //
! #include "afxres.h"
! 
! /////////////////////////////////////////////////////////////////////////////
! #undef APSTUDIO_READONLY_SYMBOLS
! 
! /////////////////////////////////////////////////////////////////////////////
! // English (U.S.) resources
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
! #ifdef _WIN32
! LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
! #pragma code_page(1252)
! #endif //_WIN32
! 
! #ifdef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // TEXTINCLUDE
! //
! 
! 1 TEXTINCLUDE 
! BEGIN
!     "resource.h\0"
! END
! 
! 2 TEXTINCLUDE 
! BEGIN
!     "#include ""afxres.h""\r\n"
!     "\0"
! END
! 
! 3 TEXTINCLUDE 
! BEGIN
!     "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
!     "#define _AFX_NO_OLE_RESOURCES\r\n"
!     "#define _AFX_NO_TRACKER_RESOURCES\r\n"
!     "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
!     "\r\n"
!     "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
!     "#ifdef _WIN32\r\n"
!     "LANGUAGE 9, 1\r\n"
!     "#pragma code_page(1252)\r\n"
!     "#endif //_WIN32\r\n"
!     "#include ""res\\Frontend.rc2""  // non-Microsoft Visual C++ edited resources\r\n"
!     "#include ""afxres.rc""         // Standard components\r\n"
!     "#endif\r\n"
!     "\0"
! END
! 
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog
! //
! 
! IDD_FRONTEND_DIALOG DIALOGEX 0, 0, 399, 289
! STYLE DS_SETFONT | DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
! EXSTYLE WS_EX_APPWINDOW
! CAPTION "olsr.org Switch 0.5.0"
! FONT 8, "MS Sans Serif", 0, 0, 0x1
! BEGIN
!     CONTROL         "Tab1",IDC_TAB1,"SysTabControl32",0x0,7,7,383,256
!     PUSHBUTTON      "Start",IDC_BUTTON1,228,268,50,14
!     PUSHBUTTON      "Stop",IDC_BUTTON2,284,268,50,14
!     PUSHBUTTON      "Exit",IDC_BUTTON3,340,268,50,14
! END
! 
! IDD_DIALOG1 DIALOG  0, 0, 377, 240
! STYLE DS_SETFONT | WS_CHILD | WS_VISIBLE
! FONT 8, "MS Sans Serif"
! BEGIN
!     EDITTEXT        IDC_EDIT1,7,25,363,208,ES_MULTILINE | ES_READONLY | ES_WANTRETURN | WS_VSCROLL | WS_HSCROLL
!     PUSHBUTTON      "Freeze",IDC_BUTTON3,152,7,50,14
!     PUSHBUTTON      "Continue",IDC_BUTTON2,208,7,50,14
!     PUSHBUTTON      "Save",IDC_BUTTON4,264,7,50,14
!     PUSHBUTTON      "Clear",IDC_BUTTON1,320,7,50,14
! END
! 
! IDD_DIALOG2 DIALOGEX 0, 0, 377, 240
! STYLE DS_SETFONT | WS_CHILD | WS_VISIBLE
! FONT 8, "MS Sans Serif", 0, 0, 0x0
! BEGIN
!     CONTROL         "List1",IDC_LIST1,"SysListView32",LVS_LIST | WS_BORDER | WS_TABSTOP,7,19,103,76
!     CONTROL         "Slider2",IDC_SLIDER2,"msctls_trackbar32",TBS_AUTOTICKS | TBS_BOTH | WS_TABSTOP,8,116,87,26
!     EDITTEXT        IDC_EDIT7,55,153,26,12,ES_RIGHT
!     CONTROL         "Enable IP version 6",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP,7,171,93,10
!     CONTROL         "Offer Internet connection",IDC_CHECK2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,187,93,10
!     EDITTEXT        IDC_EDIT1,189,7,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT2,305,7,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT3,189,23,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT9,305,23,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT4,189,39,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT10,305,39,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT5,189,55,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT6,305,55,26,12,ES_RIGHT
!     COMBOBOX        IDC_COMBO1,189,76,26,41,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
!     EDITTEXT        IDC_EDIT15,305,77,26,12,ES_RIGHT | ES_NUMBER
!     CONTROL         "Enable hysteresis",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,134,101,74,10
!     EDITTEXT        IDC_EDIT12,189,115,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT13,305,115,26,12,ES_RIGHT
!     EDITTEXT        IDC_EDIT11,189,131,26,12,ES_RIGHT
!     CONTROL         "Enable ETX link quality",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,132,155,92,10
!     CONTROL         "for MPR selection only",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,132,171,87,10
!     CONTROL         "for MPR selection and routing",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,132,187,109,10
!     EDITTEXT        IDC_EDIT14,305,169,26,12,ES_RIGHT | ES_NUMBER
!     PUSHBUTTON      "Open",IDC_BUTTON4,210,219,50,14
!     PUSHBUTTON      "Save",IDC_BUTTON5,265,219,50,14
!     PUSHBUTTON      "Reset",IDC_BUTTON1,320,219,50,14
!     LTEXT           "Interface list",IDC_STATIC,7,8,39,8
!     LTEXT           "Debug level",IDC_STATIC,7,105,39,8
!     RTEXT           "HELLO interval:",IDC_STATIC,132,9,51,8
!     RTEXT           "HELLO hold:",IDC_STATIC,247,9,42,8
!     RTEXT           "MID interval:",IDC_STATIC,132,25,41,8
!     RTEXT           "MID hold:",IDC_STATIC,247,25,32,8
!     RTEXT           "HNA interval:",IDC_STATIC,132,41,43,8
!     RTEXT           "HNA hold:",IDC_STATIC,247,41,34,8
!     RTEXT           "TC interval:",IDC_STATIC,132,57,37,8
!     RTEXT           "TC hold:",IDC_STATIC,247,57,28,8
!     RTEXT           "TC redundancy:",IDC_STATIC,132,79,52,8
!     RTEXT           "MPR coverage:",IDC_STATIC,247,79,51,8
!     LTEXT           "sec",IDC_STATIC,219,9,12,8
!     LTEXT           "sec",IDC_STATIC,335,9,12,8
!     LTEXT           "sec",IDC_STATIC,219,25,12,8
!     LTEXT           "sec",IDC_STATIC,335,25,12,8
!     LTEXT           "sec",IDC_STATIC,219,41,12,8
!     LTEXT           "sec",IDC_STATIC,335,41,12,8
!     LTEXT           "sec",IDC_STATIC,219,57,12,8
!     LTEXT           "sec",IDC_STATIC,335,57,12,8
!     RTEXT           "Poll interval:",IDC_STATIC,7,155,39,8
!     LTEXT           "sec",IDC_STATIC,85,155,12,8
!     CTEXT           "0",IDC_TEXT1,96,123,11,8
!     RTEXT           "Low mark:",IDC_STATIC,132,117,34,8
!     RTEXT           "Scaling:",IDC_STATIC,132,133,26,8
!     RTEXT           "High mark:",IDC_STATIC,247,117,35,8
!     RTEXT           "Window size:",IDC_STATIC,247,171,43,8
!     CONTROL         "Enable Fish Eye",IDC_CHECK5,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,249,187,92,10
! END
! 
! IDD_DIALOG3 DIALOG  0, 0, 377, 240
! STYLE DS_SETFONT | WS_CHILD | WS_VISIBLE
! FONT 8, "MS Sans Serif"
! BEGIN
!     CONTROL         "List1",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP,7,18,239,215
!     CONTROL         "List4",IDC_LIST4,"SysListView32",LVS_REPORT | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP,255,18,115,66
!     CONTROL         "List4",IDC_LIST5,"SysListView32",LVS_REPORT | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP,255,92,115,66
!     CONTROL         "List4",IDC_LIST6,"SysListView32",LVS_REPORT | LVS_SINGLESEL | WS_BORDER | WS_TABSTOP,255,167,115,66
!     LTEXT           "Node list",IDC_STATIC,7,7,32,8
!     LTEXT           "Node information",IDC_STATIC,257,7,59,8
! END
! 
! IDD_DIALOG4 DIALOG  0, 0, 377, 240
! STYLE DS_SETFONT | WS_CHILD | WS_VISIBLE
! FONT 8, "MS Sans Serif"
! BEGIN
!     CONTROL         "List1",IDC_LIST1,"SysListView32",LVS_REPORT | WS_BORDER | WS_TABSTOP,7,18,363,215
!     LTEXT           "Routing table",IDC_STATIC,7,7,48,8
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // DESIGNINFO
! //
! 
! #ifdef APSTUDIO_INVOKED
! GUIDELINES DESIGNINFO 
! BEGIN
!     IDD_FRONTEND_DIALOG, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 390
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 282
!     END
! 
!     IDD_DIALOG1, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 370
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 233
!     END
! 
!     IDD_DIALOG2, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 370
!         TOPMARGIN, 6
!         BOTTOMMARGIN, 233
!     END
! 
!     IDD_DIALOG3, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 370
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 233
!     END
! 
!     IDD_DIALOG4, DIALOG
!     BEGIN
!         LEFTMARGIN, 7
!         RIGHTMARGIN, 370
!         TOPMARGIN, 7
!         BOTTOMMARGIN, 233
!     END
! END
! #endif    // APSTUDIO_INVOKED
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Icon
! //
! 
! // Icon with lowest ID value placed first to ensure application icon
! // remains consistent on all systems.
! IDI_ICON1               ICON                    "res\\Frontend.ico"
! IDI_ICON3               ICON                    "res\\Tray2.ico"
! IDI_ICON2               ICON                    "res\\Tray1.ico"
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Menu
! //
! 
! IDR_TRAYMENU MENU 
! BEGIN
!     POPUP "IDR_TRAYMENU"
!     BEGIN
!         MENUITEM "Start",                       IDM_START
!         MENUITEM "Stop",                        IDM_STOP
!         POPUP "Show"
!         BEGIN
!             MENUITEM "Window",                      IDM_WINDOW
!             MENUITEM "Settings",                    IDM_SETTINGS
!             MENUITEM "Output",                      IDM_OUTPUT
!         END
!         MENUITEM "Exit",                        IDM_EXIT
!     END
! END
! 
! 
! /////////////////////////////////////////////////////////////////////////////
! //
! // Dialog Info
! //
! 
! IDD_DIALOG2 DLGINIT
! BEGIN
!     IDC_COMBO1, 0x403, 2, 0
! 0x0030, 
!     IDC_COMBO1, 0x403, 2, 0
! 0x0031, 
!     IDC_COMBO1, 0x403, 2, 0
! 0x0032, 
!     0
! END
! 
! #endif    // English (U.S.) resources
! /////////////////////////////////////////////////////////////////////////////
! 
! 
! 
! #ifndef APSTUDIO_INVOKED
! /////////////////////////////////////////////////////////////////////////////
! //
! // Generated from the TEXTINCLUDE 3 resource.
! //
! #define _AFX_NO_SPLITTER_RESOURCES
! #define _AFX_NO_OLE_RESOURCES
! #define _AFX_NO_TRACKER_RESOURCES
! #define _AFX_NO_PROPERTY_RESOURCES
! 
! #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
! #ifdef _WIN32
! LANGUAGE 9, 1
! #pragma code_page(1252)
! #endif //_WIN32
! #include "res\Frontend.rc2"  // non-Microsoft Visual C++ edited resources
! #include "afxres.rc"         // Standard components
! #endif
! 
! /////////////////////////////////////////////////////////////////////////////
! #endif    // not APSTUDIO_INVOKED
! 

--- Frontend.dsp DELETED ---

Index: MyDialog3.h
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/MyDialog3.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** MyDialog3.h	21 Nov 2004 01:21:10 -0000	1.3
--- MyDialog3.h	27 Mar 2007 03:01:06 -0000	1.4
***************
*** 1,98 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined(AFX_MYDIALOG3_H__1A381668_A36B_4C51_9B79_643BC2A59D88__INCLUDED_)
! #define AFX_MYDIALOG3_H__1A381668_A36B_4C51_9B79_643BC2A59D88__INCLUDED_
! 
! #if _MSC_VER > 1000
! #pragma once
! #endif
! 
! #include "NodeEntry.h"
! 
! class NodeInfo
! {
! public:
! 	CStringArray MprList;
! 	CStringArray MidList;
! 	CStringArray HnaList;
! };
! 
! class MyDialog3 : public CDialog
! {
! public:
! 	MyDialog3(CWnd* pParent = NULL);
! 
! 	BOOL Create(CWnd *Parent);
! 
! 	void UpdateNodeInfo(CList<class NodeEntry, class NodeEntry &> &);
! 	void ClearNodeInfo(void);
! 
! 	//{{AFX_DATA(MyDialog3)
! 	enum { IDD = IDD_DIALOG3 };
! 	CListCtrl	m_HnaList;
! 	CListCtrl	m_MidList;
! 	CListCtrl	m_MprList;
! 	CListCtrl	m_NodeList;
! 	//}}AFX_DATA
! 
! 
! 	//{{AFX_VIRTUAL(MyDialog3)
! 	protected:
! 	virtual void DoDataExchange(CDataExchange* pDX);
! 	//}}AFX_VIRTUAL
! 
! protected:
! 	unsigned __int64 LastUpdate;
! 	class NodeInfo *Info;
! 
! 	//{{AFX_MSG(MyDialog3)
! 	afx_msg void OnOK();
! 	afx_msg void OnCancel();
! 	virtual BOOL OnInitDialog();
! 	afx_msg void OnItemchangedNodeList(NMHDR* pNMHDR, LRESULT* pResult);
! 	//}}AFX_MSG
! 	DECLARE_MESSAGE_MAP()
! };
! 
! //{{AFX_INSERT_LOCATION}}
! 
! #endif
--- 1,98 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined(AFX_MYDIALOG3_H__1A381668_A36B_4C51_9B79_643BC2A59D88__INCLUDED_)
! #define AFX_MYDIALOG3_H__1A381668_A36B_4C51_9B79_643BC2A59D88__INCLUDED_
! 
! #if _MSC_VER > 1000
! #pragma once
! #endif
! 
! #include "NodeEntry.h"
! 
! class NodeInfo
! {
! public:
! 	CStringArray MprList;
! 	CStringArray MidList;
! 	CStringArray HnaList;
! };
! 
! class MyDialog3 : public CDialog
! {
! public:
! 	MyDialog3(CWnd* pParent = NULL);
! 
! 	BOOL Create(CWnd *Parent);
! 
! 	void UpdateNodeInfo(CList<class NodeEntry, class NodeEntry &> &);
! 	void ClearNodeInfo(void);
! 
! 	//{{AFX_DATA(MyDialog3)
! 	enum { IDD = IDD_DIALOG3 };
! 	CListCtrl	m_HnaList;
! 	CListCtrl	m_MidList;
! 	CListCtrl	m_MprList;
! 	CListCtrl	m_NodeList;
! 	//}}AFX_DATA
! 
! 
! 	//{{AFX_VIRTUAL(MyDialog3)
! 	protected:
! 	virtual void DoDataExchange(CDataExchange* pDX);
! 	//}}AFX_VIRTUAL
! 
! protected:
! 	unsigned __int64 LastUpdate;
! 	class NodeInfo *Info;
! 
! 	//{{AFX_MSG(MyDialog3)
! 	afx_msg void OnOK();
! 	afx_msg void OnCancel();
! 	virtual BOOL OnInitDialog();
! 	afx_msg void OnItemchangedNodeList(NMHDR* pNMHDR, LRESULT* pResult);
! 	//}}AFX_MSG
! 	DECLARE_MESSAGE_MAP()
! };
! 
! //{{AFX_INSERT_LOCATION}}
! 
! #endif

Index: FrontendDlg.cpp
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/FrontendDlg.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** FrontendDlg.cpp	30 Mar 2005 21:29:05 -0000	1.10
--- FrontendDlg.cpp	27 Mar 2007 03:01:06 -0000	1.11
***************
*** 1,1009 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
[...1989 lines suppressed...]
! 		return;
! 
! 	m_TabCtrl.m_Dialog1.HandleStop();
! 
! 	m_StopButton.EnableWindow(FALSE);
! 	m_StartButton.EnableWindow(TRUE);
! }
! 
! void CFrontendDlg::OnExitButton()
! {
! 	delete TrayIcon::getInstance();
! 
! 	if (StopOlsrd() < 0)
! 		return;
! 
! 	m_TabCtrl.m_Dialog3.ClearNodeInfo();
! 	m_TabCtrl.m_Dialog4.ClearRoutes();
! 
! 	DestroyWindow();
! }

Index: MyDialog2.h
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/MyDialog2.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** MyDialog2.h	2 Mar 2005 00:13:23 -0000	1.8
--- MyDialog2.h	27 Mar 2007 03:01:06 -0000	1.9
***************
*** 1,134 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined(AFX_MYDIALOG2_H__1A381668_A36B_4C51_9B79_643BC2A59D88__INCLUDED_)
! #define AFX_MYDIALOG2_H__1A381668_A36B_4C51_9B79_643BC2A59D88__INCLUDED_
! 
! #if _MSC_VER > 1000
! #pragma once
! #endif
! 
! #include "MyEdit.h"
! 
! #define MAKELIB
! #define OLSR_PLUGIN
! #include <olsr_cfg.h>
! 
! class MyDialog2 : public CDialog
! {
! public:
! 	MyDialog2(CWnd* pParent = NULL);
! 
! 	BOOL Create(CWnd *Parent);
! 
! 	int OpenConfigFile(CString);
! 	int SaveConfigFile(CString, int);
! 
! 	CStringArray *Interfaces;
! 	CStringArray *Addresses;
! 	CStringArray *IsWlan;
! 
! 	struct olsrd_config *Conf;
! 
! 	//{{AFX_DATA(MyDialog2)
! 	enum { IDD = IDD_DIALOG2 };
! 	CComboBox	m_TcRed;
! 	CEdit	m_MprCov;
! 	CButton	m_EtxRadio2;
! 	CButton	m_EtxRadio1;
! 	CEdit	m_EtxWindowSize;
! 	CButton	m_EtxCheck;
! 	CButton	m_Ipv6Check;
! 	CButton	m_InternetCheck;
! 	CButton	m_HystCheck;
! 	MyEdit	m_HystThresholdHigh;
! 	MyEdit	m_HystThresholdLow;
! 	MyEdit	m_HystScaling;
! 	MyEdit	m_HnaHold;
! 	MyEdit	m_MidHold;
! 	MyEdit	m_PollInt;
! 	MyEdit	m_TcHold;
! 	MyEdit	m_TcInt;
! 	MyEdit	m_HnaInt;
! 	MyEdit	m_MidInt;
! 	MyEdit	m_HelloHold;
! 	MyEdit	m_HelloInt;
! 	CListCtrl	m_InterfaceList;
! 	CStatic	m_DebugLevelText;
! 	CSliderCtrl	m_DebugLevel;
! 	//}}AFX_DATA
! 
! 	//{{AFX_VIRTUAL(MyDialog2)
! 	protected:
! 	virtual void DoDataExchange(CDataExchange* pDX);
! 	//}}AFX_VIRTUAL
! 
! protected:
! 
! 	//{{AFX_MSG(MyDialog2)
! 	afx_msg void OnOK();
! 	afx_msg void OnCancel();
! 	afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
! 	virtual BOOL OnInitDialog();
! 	afx_msg void OnHystCheck();
! 	afx_msg void OnOpenButton();
! 	afx_msg void OnSaveButton();
! 	afx_msg void OnResetButton();
! 	afx_msg void OnEtxCheck();
! 	afx_msg void OnEtxRadio1();
! 	afx_msg void OnEtxRadio2();
! 	afx_msg void OnKillfocusEtxWinSize();
! 	//}}AFX_MSG
! 	DECLARE_MESSAGE_MAP()
! 
! 	CFont EditFont;
! 
! 	int DebugLevel;
! 	void SetDebugLevel(int);
! 
! 	void Reset(void);
! 
! 	void OnEtxCheckWorker(void);
! };
! 
! //{{AFX_INSERT_LOCATION}}
! 
! #endif
--- 1,136 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined(AFX_MYDIALOG2_H__1A381668_A36B_4C51_9B79_643BC2A59D88__INCLUDED_)
! #define AFX_MYDIALOG2_H__1A381668_A36B_4C51_9B79_643BC2A59D88__INCLUDED_
! 
! #if _MSC_VER > 1000
! #pragma once
! #endif
! 
! #include "MyEdit.h"
! 
! #define MAKELIB
! #define OLSR_PLUGIN
! #include <olsr_cfg.h>
! #include "afxwin.h"
! 
! class MyDialog2 : public CDialog
! {
! public:
! 	MyDialog2(CWnd* pParent = NULL);
! 
! 	BOOL Create(CWnd *Parent);
! 
! 	int OpenConfigFile(CString);
! 	int SaveConfigFile(CString, int);
! 
! 	CStringArray *Interfaces;
! 	CStringArray *Addresses;
! 	CStringArray *IsWlan;
! 
! 	struct olsrd_config *Conf;
! 
! 	//{{AFX_DATA(MyDialog2)
! 	enum { IDD = IDD_DIALOG2 };
! 	CComboBox	m_TcRed;
! 	CEdit	m_MprCov;
! 	CButton	m_EtxRadio2;
! 	CButton	m_EtxRadio1;
! 	CEdit	m_EtxWindowSize;
! 	CButton	m_EtxCheck;
! 	CButton	m_Ipv6Check;
! 	CButton	m_InternetCheck;
! 	CButton	m_HystCheck;
! 	CButton m_FishEyeCheck;
! 	MyEdit	m_HystThresholdHigh;
! 	MyEdit	m_HystThresholdLow;
! 	MyEdit	m_HystScaling;
! 	MyEdit	m_HnaHold;
! 	MyEdit	m_MidHold;
! 	MyEdit	m_PollInt;
! 	MyEdit	m_TcHold;
! 	MyEdit	m_TcInt;
! 	MyEdit	m_HnaInt;
! 	MyEdit	m_MidInt;
! 	MyEdit	m_HelloHold;
! 	MyEdit	m_HelloInt;
! 	CListCtrl	m_InterfaceList;
! 	CStatic	m_DebugLevelText;
! 	CSliderCtrl	m_DebugLevel;
! 	//}}AFX_DATA
! 
! 	//{{AFX_VIRTUAL(MyDialog2)
! 	protected:
! 	virtual void DoDataExchange(CDataExchange* pDX);
! 	//}}AFX_VIRTUAL
! 
! protected:
! 
! 	//{{AFX_MSG(MyDialog2)
! 	afx_msg void OnOK();
! 	afx_msg void OnCancel();
! 	afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
! 	virtual BOOL OnInitDialog();
! 	afx_msg void OnHystCheck();
! 	afx_msg void OnOpenButton();
! 	afx_msg void OnSaveButton();
! 	afx_msg void OnResetButton();
! 	afx_msg void OnEtxCheck();
! 	afx_msg void OnEtxRadio1();
! 	afx_msg void OnEtxRadio2();
! 	afx_msg void OnKillfocusEtxWinSize();
! 	//}}AFX_MSG
! 	DECLARE_MESSAGE_MAP()
! 
! 	CFont EditFont;
! 
! 	int DebugLevel;
! 	void SetDebugLevel(int);
! 
! 	void Reset(void);
! 
! 	void OnEtxCheckWorker(void);
! };
! 
! //{{AFX_INSERT_LOCATION}}
! 
! #endif

Index: TrayIcon.h
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/TrayIcon.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** TrayIcon.h	17 Jan 2005 11:52:36 -0000	1.1
--- TrayIcon.h	27 Mar 2007 03:01:07 -0000	1.2
***************
*** 1,31 ****
! #ifndef TRAYICON_H_171149531
! #define TRAYICON_H_171149531
! 
! class CFrontendDlg;
! 
! class TrayIcon
! {
! public:
! 	TrayIcon( CFrontendDlg&, HINSTANCE );
! 	~TrayIcon();
! 
! 	void displayPopup();	
! 
! 	static TrayIcon* getInstance()	{ return instance; }
! 
! 	enum status { CONNECTED, ON, OFF };
! 
! 	void setStatus( status con_status, const char* message );
! 
! private:
! 	void setTrayAppearance( bool, unsigned int, const char* message );
! 
! 	HINSTANCE hInst;
! 
! 	CFrontendDlg& main_dlg;
! 
! 	friend LRESULT CALLBACK TrayIconProc( HWND, UINT, WPARAM, LPARAM );
! 	static TrayIcon* instance;
! };
! 
! #endif // TRAYICON_H_171149531
--- 1,31 ----
! #ifndef TRAYICON_H_171149531
! #define TRAYICON_H_171149531
! 
! class CFrontendDlg;
! 
! class TrayIcon
! {
! public:
! 	TrayIcon( CFrontendDlg&, HINSTANCE );
! 	~TrayIcon();
! 
! 	void displayPopup();	
! 
! 	static TrayIcon* getInstance()	{ return instance; }
! 
! 	enum status { CONNECTED, ON, OFF };
! 
! 	void setStatus( status con_status, const char* message );
! 
! private:
! 	void setTrayAppearance( bool, unsigned int, const char* message );
! 
! 	HINSTANCE hInst;
! 
! 	CFrontendDlg& main_dlg;
! 
! 	friend LRESULT CALLBACK TrayIconProc( HWND, UINT, WPARAM, LPARAM );
! 	static TrayIcon* instance;
! };
! 
! #endif // TRAYICON_H_171149531

Index: StdAfx.h
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/StdAfx.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** StdAfx.h	21 Nov 2004 01:21:10 -0000	1.3
--- StdAfx.h	27 Mar 2007 03:01:07 -0000	1.4
***************
*** 1,63 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined(AFX_STDAFX_H__6D907246_27D7_4991_B71E_C1105DD65FBC__INCLUDED_)
! #define AFX_STDAFX_H__6D907246_27D7_4991_B71E_C1105DD65FBC__INCLUDED_
! 
! #if _MSC_VER > 1000
! #pragma once
! #endif
! 
! #define VC_EXTRALEAN
! 
! #include <afxwin.h>
! #include <afxext.h>
! #include <afxdtctl.h>
! #include <afxcmn.h>
! #include <afxmt.h>
! #include <afxtempl.h>
! 
! #include <winsock2.h>
! #include <iphlpapi.h>
! 
! //{{AFX_INSERT_LOCATION}}
! 
! #endif
--- 1,55 ----
! #pragma once
! 
! #ifndef _SECURE_ATL
! #define _SECURE_ATL 1
! #endif
! 
! #ifndef VC_EXTRALEAN
! #define VC_EXTRALEAN
! #endif
! 
! #ifndef WINVER
! #define WINVER 0x0501
! #endif
! 
! #ifndef _WIN32_WINNT
! #define _WIN32_WINNT 0x0501
! #endif						
! 
! #ifndef _WIN32_WINDOWS
! #define _WIN32_WINDOWS 0x0410
! #endif
! 
! #ifndef _WIN32_IE
! #define _WIN32_IE 0x0600
! #endif
! 
! #define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS
! 
! #define _AFX_ALL_WARNINGS
! 
! #include <afxwin.h>
! #include <afxext.h>
! #include <afxdisp.h>
! #include <afxmt.h>
! #include <iphlpapi.h>
! #include <winsock2.h>
! 
! #ifndef _AFX_NO_OLE_SUPPORT
! #include <afxdtctl.h>
! #endif
! #ifndef _AFX_NO_AFXCMN_SUPPORT
! #include <afxcmn.h>
! #endif
! 
! #ifdef _UNICODE
! #if defined _M_IX86
! #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
! #elif defined _M_IA64
! #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
! #elif defined _M_X64
! #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
! #else
! #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
! #endif
! #endif

Index: StdAfx.cpp
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/StdAfx.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** StdAfx.cpp	21 Nov 2004 01:21:10 -0000	1.3
--- StdAfx.cpp	27 Mar 2007 03:01:07 -0000	1.4
***************
*** 1,45 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! 
! 
! 
--- 1 ----
! #include "stdafx.h"

Index: LQ-Default.olsr
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/LQ-Default.olsr,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** LQ-Default.olsr	31 Mar 2005 18:20:02 -0000	1.1
--- LQ-Default.olsr	27 Mar 2007 03:01:06 -0000	1.2
***************
*** 1,122 ****
! #
! # Default configuration for the GUI
! #
! # $Id$
! #
! 
! #
! # By default don't print anything to save CPU cycles
! #
! 
! DebugLevel		0
! 
! #
! # Enable the link quality extensions?
! #
! # 0 - no
! # 1 - yes, use link quality for MPR selection
! # 2 - yes, use link quality for MPR selection and routing
! #
! 
! LinkQualityLevel	2
! 
! #
! # Windows size for packet loss calculation
! #
! 
! LinkQualityWinSize	10
! 
! #
! # Do not use hysteresis
! #
! 
! UseHysteresis		no
! 
! #
! # If using hysteresis, use "smooth" parameters
! #
! 
! HystScaling		0.1
! HystThrHigh		0.8
! HystThrLow		0.3
! 
! #
! # The pollrate used by the scheduler
! #
! 
! Pollrate		0.1
! 
! #
! # Which neighbours should be advertised via TC messages?
! #
! # 0 - only advertise our MPR selectors
! # 1 - advertise our MPR selectors and our MPRs
! # 2 - advertise all neighbors
! #
! 
! TcRedundancy		2
! 
! #
! # Specifies by how many MPRs each two-hop neighbour should be covered
! #
! 
! MprCoverage		3
! 
! #
! # Load the HTTP info plugin
! #
! 
! LoadPlugin		"olsrd_httpinfo.dll"
! {
! 	PlParam	"Net"	"0.0.0.0 0.0.0.0"
! }
! 
! #
! # This default gateway HNA will only be considered by the GUI if the
! # computer actually has a default route.
! #
! 
! Hna4
! {
! 	0.0.0.0 0.0.0.0
! }
! 
! #
! # Pseudo interface used by the GUI. If we do not select any interface
! # in the GUI, we still have to store the per-interface settings of the
! # GUI somewhere. We then simply create a pseudo interfaced named GUI"
! # for storing this information. When parsing the configuration file,
! # the settings will be read and will be used to populate the GUI, but
! # after that the "GUI" interface will be discarded.
! #
! 
! Interface "GUI"
! {
! 	#
! 	# HELLO interval and validity time in seconds (float)
! 	#
! 
! 	HelloInterval		2.0
! 	HelloValidityTime	20.0
! 
! 	#
! 	# TC interval and validity time in seconds (float)
! 	#
! 
! 	TcInterval		5.0
! 	TcValidityTime		30.0
! 
! 	#
! 	# MID interval and validity time in seconds (float)
! 	#
! 
! 	MidInterval		5.0
! 	MidValidityTime		30.0
! 
! 	#
! 	# HNA interval and validity time in seconds (float)
! 	#
! 
! 	HnaInterval		5.0
! 	HnaValidityTime		30.0
! }
--- 1,131 ----
! #
! # Default configuration for the GUI
! #
! # $Id$
! #
! 
! #
! # By default don't print anything to save CPU cycles
! #
! 
! DebugLevel		0
! 
! #
! # Enable the link quality extensions?
! #
! # 0 - no
! # 1 - yes, use link quality for MPR selection
! # 2 - yes, use link quality for MPR selection and routing
! #
! 
! LinkQualityLevel	2
! 
! #
! # Enable the fish eye algorithm
! #
! # 0 - no
! # 1 - yes
! #
! 
! LinkQualityFishEye	1
! 
! #
! # Windows size for packet loss calculation
! #
! 
! LinkQualityWinSize	10
! 
! #
! # Do not use hysteresis
! #
! 
! UseHysteresis		no
! 
! #
! # If using hysteresis, use "smooth" parameters
! #
! 
! HystScaling		0.1
! HystThrHigh		0.8
! HystThrLow		0.3
! 
! #
! # The pollrate used by the scheduler
! #
! 
! Pollrate		0.1
! 
! #
! # Which neighbours should be advertised via TC messages?
! #
! # 0 - only advertise our MPR selectors
! # 1 - advertise our MPR selectors and our MPRs
! # 2 - advertise all neighbors
! #
! 
! TcRedundancy		2
! 
! #
! # Specifies by how many MPRs each two-hop neighbour should be covered
! #
! 
! MprCoverage		3
! 
! #
! # Load the HTTP info plugin
! #
! 
! LoadPlugin		"olsrd_httpinfo.dll"
! {
! 	PlParam	"Net"	"0.0.0.0 0.0.0.0"
! }
! 
! #
! # This default gateway HNA will only be considered by the GUI if the
! # computer actually has a default route.
! #
! 
! Hna4
! {
! 	0.0.0.0 0.0.0.0
! }
! 
! #
! # Pseudo interface used by the GUI. If we do not select any interface
! # in the GUI, we still have to store the per-interface settings of the
! # GUI somewhere. We then simply create a pseudo interfaced named GUI"
! # for storing this information. When parsing the configuration file,
! # the settings will be read and will be used to populate the GUI, but
! # after that the "GUI" interface will be discarded.
! #
! 
! Interface "GUI"
! {
! 	#
! 	# HELLO interval and validity time in seconds (float)
! 	#
! 
! 	HelloInterval		2.0
! 	HelloValidityTime	20.0
! 
! 	#
! 	# TC interval and validity time in seconds (float)
! 	#
! 
! 	TcInterval		5.0
! 	TcValidityTime		30.0
! 
! 	#
! 	# MID interval and validity time in seconds (float)
! 	#
! 
! 	MidInterval		5.0
! 	MidValidityTime		30.0
! 
! 	#
! 	# HNA interval and validity time in seconds (float)
! 	#
! 
! 	HnaInterval		5.0
! 	HnaValidityTime		30.0
! }

Index: NodeEntry.cpp
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/NodeEntry.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** NodeEntry.cpp	21 Nov 2004 01:21:10 -0000	1.3
--- NodeEntry.cpp	27 Mar 2007 03:01:06 -0000	1.4
***************
*** 1,133 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "NodeEntry.h"
! 
! class NodeEntry &NodeEntry::operator=(class NodeEntry &Src)
! {
! 	Addr = Src.Addr;
! 	Timeout = Src.Timeout;
! 
! 	MprList.RemoveAll();
! 	MprList.AddHead(&Src.MprList);
! 
! 	HnaList.RemoveAll();
! 	HnaList.AddHead(&Src.HnaList);
! 
! 	MidList.RemoveAll();
! 	MidList.AddHead(&Src.MidList);
! 
! 	return *this;
! }
! 
! BOOL NodeEntry::operator==(const class NodeEntry &Comp) const
! {
! 	return Addr == Comp.Addr;
! }
! 
! void NodeEntry::AddMpr(unsigned int MprAddr, unsigned __int64 Timeout)
! {
! 	class MprEntry NewEntry;
! 	POSITION Pos;
! 
! 	NewEntry.Addr = MprAddr;
! 
! 	Pos = MprList.Find(NewEntry);
! 
! 	if (Pos != NULL)
! 	{
! 		class MprEntry &OldEntry = MprList.GetAt(Pos);
! 		OldEntry.Timeout = Timeout;
! 	}
! 
! 	else
! 	{
! 		NewEntry.Timeout = Timeout;
! 		MprList.AddTail(NewEntry);
! 	}
! }
! 
! void NodeEntry::AddMid(unsigned int IntAddr, unsigned __int64 Timeout)
! {
! 	class MidEntry NewEntry;
! 	POSITION Pos;
! 
! 	NewEntry.Addr = IntAddr;
! 
! 	Pos = MidList.Find(NewEntry);
! 
! 	if (Pos != NULL)
! 	{
! 		class MidEntry &OldEntry = MidList.GetAt(Pos);
! 		OldEntry.Timeout = Timeout;
! 	}
! 
! 	else
! 	{
! 		NewEntry.Timeout = Timeout;
! 		MidList.AddTail(NewEntry);
! 	}
! }
! 
! void NodeEntry::AddHna(unsigned int NetAddr, unsigned int NetMask,
! 					   unsigned __int64 Timeout)
! {
! 	class HnaEntry NewEntry;
! 	POSITION Pos;
! 
! 	NewEntry.Addr = NetAddr;
! 	NewEntry.Mask = NetMask;
! 
! 	Pos = HnaList.Find(NewEntry);
! 
! 	if (Pos != NULL)
! 	{
! 		class HnaEntry &OldEntry = HnaList.GetAt(Pos);
! 		OldEntry.Timeout = Timeout;
! 	}
! 
! 	else
! 	{
! 		NewEntry.Timeout = Timeout;
! 		HnaList.AddTail(NewEntry);
! 	}
! }
--- 1,133 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "NodeEntry.h"
! 
! class NodeEntry &NodeEntry::operator=(class NodeEntry &Src)
! {
! 	Addr = Src.Addr;
! 	Timeout = Src.Timeout;
! 
! 	MprList.RemoveAll();
! 	MprList.AddHead(&Src.MprList);
! 
! 	HnaList.RemoveAll();
! 	HnaList.AddHead(&Src.HnaList);
! 
! 	MidList.RemoveAll();
! 	MidList.AddHead(&Src.MidList);
! 
! 	return *this;
! }
! 
! BOOL NodeEntry::operator==(const class NodeEntry &Comp) const
! {
! 	return Addr == Comp.Addr;
! }
! 
! void NodeEntry::AddMpr(unsigned int MprAddr, unsigned __int64 Timeout)
! {
! 	class MprEntry NewEntry;
! 	POSITION Pos;
! 
! 	NewEntry.Addr = MprAddr;
! 
! 	Pos = MprList.Find(NewEntry);
! 
! 	if (Pos != NULL)
! 	{
! 		class MprEntry &OldEntry = MprList.GetAt(Pos);
! 		OldEntry.Timeout = Timeout;
! 	}
! 
! 	else
! 	{
! 		NewEntry.Timeout = Timeout;
! 		MprList.AddTail(NewEntry);
! 	}
! }
! 
! void NodeEntry::AddMid(unsigned int IntAddr, unsigned __int64 Timeout)
! {
! 	class MidEntry NewEntry;
! 	POSITION Pos;
! 
! 	NewEntry.Addr = IntAddr;
! 
! 	Pos = MidList.Find(NewEntry);
! 
! 	if (Pos != NULL)
! 	{
! 		class MidEntry &OldEntry = MidList.GetAt(Pos);
! 		OldEntry.Timeout = Timeout;
! 	}
! 
! 	else
! 	{
! 		NewEntry.Timeout = Timeout;
! 		MidList.AddTail(NewEntry);
! 	}
! }
! 
! void NodeEntry::AddHna(unsigned int NetAddr, unsigned int NetMask,
! 					   unsigned __int64 Timeout)
! {
! 	class HnaEntry NewEntry;
! 	POSITION Pos;
! 
! 	NewEntry.Addr = NetAddr;
! 	NewEntry.Mask = NetMask;
! 
! 	Pos = HnaList.Find(NewEntry);
! 
! 	if (Pos != NULL)
! 	{
! 		class HnaEntry &OldEntry = HnaList.GetAt(Pos);
! 		OldEntry.Timeout = Timeout;
! 	}
! 
! 	else
! 	{
! 		NewEntry.Timeout = Timeout;
! 		HnaList.AddTail(NewEntry);
! 	}
! }

Index: MyTabCtrl.cpp
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/MyTabCtrl.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** MyTabCtrl.cpp	21 Nov 2004 01:21:10 -0000	1.4
--- MyTabCtrl.cpp	27 Mar 2007 03:01:06 -0000	1.5
***************
*** 1,124 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "Frontend.h"
! #include "MyTabCtrl.h"
! 
! #ifdef _DEBUG
! #define new DEBUG_NEW
! #undef THIS_FILE
! static char THIS_FILE[] = __FILE__;
! #endif
! 
! MyTabCtrl::MyTabCtrl()
! {
! }
! 
! MyTabCtrl::~MyTabCtrl()
! {
! }
! 
! BEGIN_MESSAGE_MAP(MyTabCtrl, CTabCtrl)
! 	//{{AFX_MSG_MAP(MyTabCtrl)
! 	ON_NOTIFY_REFLECT(TCN_SELCHANGE, OnSelchange)
! 	//}}AFX_MSG_MAP
! END_MESSAGE_MAP()
! 
! void MyTabCtrl::InitTabDialogs(CStringArray *Interfaces,
! 							   CStringArray *Addresses,
! 							   CStringArray *IsWlan)
! {
! 	int i;
! 	CRect Client;
! 	CRect Win;
! 
! 	m_Dialog2.Interfaces = Interfaces;
! 	m_Dialog2.Addresses = Addresses;
! 	m_Dialog2.IsWlan = IsWlan;
! 
! 	m_Dialog1.Create(GetParent());
! 	m_Dialog2.Create(GetParent());
! 	m_Dialog3.Create(GetParent());
! 	m_Dialog4.Create(GetParent());
! 
! 	Dialogs[0] = &m_Dialog2;
! 	Dialogs[1] = &m_Dialog1;
! 	Dialogs[2] = &m_Dialog3;
! 	Dialogs[3] = &m_Dialog4;
! 
! 	Sel = -1;
! 
! 	for (i = 0; i < 4; i++)
! 	{
! 		GetClientRect(Client);
! 		AdjustRect(FALSE, Client);
! 
! 		GetWindowRect(Win);
! 		GetParent()->ScreenToClient(Win);
! 
! 		Client.OffsetRect(Win.left, Win.top);
! 
! 		Dialogs[i]->SetWindowPos(&wndTop, Client.left, Client.top,
! 			Client.Width(), Client.Height(), SWP_HIDEWINDOW);
! 	}
! 
! 	DisplayTabDialog();
! }
! 
! void MyTabCtrl::DisplayTabDialog()
! {
! 	if (Sel != -1)
! 		Dialogs[Sel]->ShowWindow(SW_HIDE);
! 
! 	Sel = GetCurSel();
! 
! 	Dialogs[Sel]->ShowWindow(SW_SHOW);
! }
! 
! void MyTabCtrl::OnSelchange(NMHDR* pNMHDR, LRESULT* pResult) 
! {
! 	pNMHDR = pNMHDR;
! 
! 	DisplayTabDialog();
! 
! 	*pResult = 0;
! }
--- 1,124 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "Frontend.h"
! #include "MyTabCtrl.h"
! 
! #ifdef _DEBUG
! #define new DEBUG_NEW
! #undef THIS_FILE
! static char THIS_FILE[] = __FILE__;
! #endif
! 
! MyTabCtrl::MyTabCtrl()
! {
! }
! 
! MyTabCtrl::~MyTabCtrl()
! {
! }
! 
! BEGIN_MESSAGE_MAP(MyTabCtrl, CTabCtrl)
! 	//{{AFX_MSG_MAP(MyTabCtrl)
! 	ON_NOTIFY_REFLECT(TCN_SELCHANGE, OnSelchange)
! 	//}}AFX_MSG_MAP
! END_MESSAGE_MAP()
! 
! void MyTabCtrl::InitTabDialogs(CStringArray *Interfaces,
! 							   CStringArray *Addresses,
! 							   CStringArray *IsWlan)
! {
! 	int i;
! 	CRect Client;
! 	CRect Win;
! 
! 	m_Dialog2.Interfaces = Interfaces;
! 	m_Dialog2.Addresses = Addresses;
! 	m_Dialog2.IsWlan = IsWlan;
! 
! 	m_Dialog1.Create(GetParent());
! 	m_Dialog2.Create(GetParent());
! 	m_Dialog3.Create(GetParent());
! 	m_Dialog4.Create(GetParent());
! 
! 	Dialogs[0] = &m_Dialog2;
! 	Dialogs[1] = &m_Dialog1;
! 	Dialogs[2] = &m_Dialog3;
! 	Dialogs[3] = &m_Dialog4;
! 
! 	Sel = -1;
! 
! 	for (i = 0; i < 4; i++)
! 	{
! 		GetClientRect(Client);
! 		AdjustRect(FALSE, Client);
! 
! 		GetWindowRect(Win);
! 		GetParent()->ScreenToClient(Win);
! 
! 		Client.OffsetRect(Win.left, Win.top);
! 
! 		Dialogs[i]->SetWindowPos(&wndTop, Client.left, Client.top,
! 			Client.Width(), Client.Height(), SWP_HIDEWINDOW);
! 	}
! 
! 	DisplayTabDialog();
! }
! 
! void MyTabCtrl::DisplayTabDialog()
! {
! 	if (Sel != -1)
! 		Dialogs[Sel]->ShowWindow(SW_HIDE);
! 
! 	Sel = GetCurSel();
! 
! 	Dialogs[Sel]->ShowWindow(SW_SHOW);
! }
! 
! void MyTabCtrl::OnSelchange(NMHDR* pNMHDR, LRESULT* pResult) 
! {
! 	pNMHDR = pNMHDR;
! 
! 	DisplayTabDialog();
! 
! 	*pResult = 0;
! }

Index: Frontend.h
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/Frontend.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** Frontend.h	17 Jan 2005 11:52:36 -0000	1.5
--- Frontend.h	27 Mar 2007 03:01:06 -0000	1.6
***************
*** 1,81 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined(AFX_FRONTEND_H__8033A41F_6FDC_4054_A582_AB7B6AC5EEAE__INCLUDED_)
! #define AFX_FRONTEND_H__8033A41F_6FDC_4054_A582_AB7B6AC5EEAE__INCLUDED_
! 
! #if _MSC_VER > 1000
! #pragma once
! #endif
! 
! #ifndef __AFXWIN_H__
! 	#error include 'stdafx.h' before including this file for PCH
! #endif
! 
! #include "resource.h"
! 
! class TrayIcon;
! 
! class CFrontendApp : public CWinApp
! {
! public:
! 	CFrontendApp();
! 
! 	int RedirectStdHandles(void);
! 	unsigned int RedirectThreadFunc(void);
! 
! 	HANDLE OutRead;
! 	TrayIcon* tray_icon;
! 
! 	//{{AFX_VIRTUAL(CFrontendApp)
! 	public:
! 	virtual BOOL InitInstance();
! 	//}}AFX_VIRTUAL
! 
! 	//{{AFX_MSG(CFrontendApp)
! 	//}}AFX_MSG
! 	DECLARE_MESSAGE_MAP()
! };
! 
! 
! //{{AFX_INSERT_LOCATION}}
! 
! #endif
--- 1,81 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined(AFX_FRONTEND_H__8033A41F_6FDC_4054_A582_AB7B6AC5EEAE__INCLUDED_)
! #define AFX_FRONTEND_H__8033A41F_6FDC_4054_A582_AB7B6AC5EEAE__INCLUDED_
! 
! #if _MSC_VER > 1000
! #pragma once
! #endif
! 
! #ifndef __AFXWIN_H__
! 	#error include 'stdafx.h' before including this file for PCH
! #endif
! 
! #include "resource.h"
! 
! class TrayIcon;
! 
! class CFrontendApp : public CWinApp
! {
! public:
! 	CFrontendApp();
! 
! 	int RedirectStdHandles(void);
! 	unsigned int RedirectThreadFunc(void);
! 
! 	HANDLE OutRead;
! 	TrayIcon* tray_icon;
! 
! 	//{{AFX_VIRTUAL(CFrontendApp)
! 	public:
! 	virtual BOOL InitInstance();
! 	//}}AFX_VIRTUAL
! 
! 	//{{AFX_MSG(CFrontendApp)
! 	//}}AFX_MSG
! 	DECLARE_MESSAGE_MAP()
! };
! 
! 
! //{{AFX_INSERT_LOCATION}}
! 
! #endif

Index: MidEntry.cpp
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/MidEntry.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** MidEntry.cpp	21 Nov 2004 01:21:10 -0000	1.3
--- MidEntry.cpp	27 Mar 2007 03:01:06 -0000	1.4
***************
*** 1,56 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "MidEntry.h"
! 
! class MidEntry &MidEntry::operator=(class MidEntry &Src)
! {
! 	Addr = Src.Addr;
! 	Timeout = Src.Timeout;
! 
! 	return *this;
! }
! 
! BOOL MidEntry::operator==(const class MidEntry &Comp) const
! {
! 	return Addr == Comp.Addr;
! }
--- 1,56 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #include "stdafx.h"
! #include "MidEntry.h"
! 
! class MidEntry &MidEntry::operator=(class MidEntry &Src)
! {
! 	Addr = Src.Addr;
! 	Timeout = Src.Timeout;
! 
! 	return *this;
! }
! 
! BOOL MidEntry::operator==(const class MidEntry &Comp) const
! {
! 	return Addr == Comp.Addr;
! }

Index: MyDialog2.cpp
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/MyDialog2.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** MyDialog2.cpp	2 Mar 2005 00:13:23 -0000	1.8
--- MyDialog2.cpp	27 Mar 2007 03:01:06 -0000	1.9
***************
*** 1,692 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
[...1365 lines suppressed...]
! 	m_EtxRadio1.SetCheck(FALSE);
! }
! 
! void MyDialog2::OnKillfocusEtxWinSize() 
! {
! 	CString Conv;
! 	int WinSize;
! 
! 	m_EtxWindowSize.GetWindowText(Conv);
! 	WinSize = atoi(Conv);
! 
! 	if (WinSize < 3)
! 		WinSize = 3;
! 
! 	else if (WinSize > 128)
! 		WinSize = 128;
! 
! 	Conv.Format("%d", WinSize);
! 	m_EtxWindowSize.SetWindowText(Conv);
! }

Index: Ipc.h
===================================================================
RCS file: /cvsroot/olsrd/olsrd-current/gui/win32/Main/Ipc.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** Ipc.h	5 Dec 2004 20:37:18 -0000	1.5
--- Ipc.h	27 Mar 2007 03:01:06 -0000	1.6
***************
*** 1,136 ****
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined TL_IPC_H
! #define TL_IPC_H
! 
! #define MSG_TYPE_OLSR_HELLO 1
! #define MSG_TYPE_OLSR_TC 2
! #define MSG_TYPE_OLSR_MID 3
! #define MSG_TYPE_OLSR_HNA 4
! #define MSG_TYPE_OLSR_LQ_HELLO 201
! #define MSG_TYPE_OLSR_LQ_TC 202
! 
! #define MSG_TYPE_IPC_ROUTE 11
! #define MSG_TYPE_IPC_CONFIG 12
! 
! #pragma pack(push, BeforeIpcMessages, 1)
! 
! struct OlsrHeader
! {
! 	unsigned char Type;
! 	unsigned char VTime;
! 	unsigned short Size;
! 	unsigned int Orig;
! 	unsigned char Ttl;
! 	unsigned char Hops;
! 	unsigned short SeqNo;
! };
! 
! struct OlsrHello
! {
! 	struct OlsrHeader Header;
! 
! 	unsigned short Reserved;
! 	unsigned char HTime;
! 	unsigned char Will;
! };
! 
! struct OlsrHelloLink
! {
! 	unsigned char LinkCode;
! 	unsigned char Reserved;
! 	unsigned short Size;
! };
! 
! struct OlsrTc
! {
! 	struct OlsrHeader Header;
! 
! 	unsigned short Ansn;
! 	unsigned short Reserved;
! };
! 
! union IpcIpAddr
! {
! 	unsigned int v4;
! 	unsigned char v6[16];
! };
! 
! struct IpcHeader
! {
! 	unsigned char Type;
! 	unsigned char Reserved;
! 	unsigned short Size;
! };
! 
! struct IpcRoute
! {
! 	struct IpcHeader Header;
! 	
! 	unsigned char Metric;
! 	unsigned char Add;
! 	unsigned char Reserved[2];
! 	union IpcIpAddr Dest;
! 	union IpcIpAddr Gate;
! 	char Int[4];
! };
! 
! struct IpcConfig
! {
! 	struct IpcHeader Header;
! 
! 	unsigned char NumMid;
! 	unsigned char NumHna;
! 	unsigned char Reserved1[2];
! 	unsigned short HelloInt;
! 	unsigned short WiredHelloInt;
! 	unsigned short TcInt;
! 	unsigned short HelloHold;
! 	unsigned short TcHold;
! 	unsigned char Ipv6;
! 	unsigned char Reserved2;
! 	IpcIpAddr MainAddr;
! };
! 
! #pragma pack (pop, BeforeIpcMessages)
! 
! #endif
--- 1,136 ----
! /*
!  * The olsr.org Optimized Link-State Routing daemon (olsrd)
!  * Copyright (c) 2004, Thomas Lopatic ((spam-protected))
!  * All rights reserved.
!  *
!  * Redistribution and use in source and binary forms, with or without 
!  * modification, are permitted provided that the following conditions 
!  * are met:
!  *
!  * * Redistributions of source code must retain the above copyright 
!  *   notice, this list of conditions and the following disclaimer.
!  * * Redistributions in binary form must reproduce the above copyright 
!  *   notice, this list of conditions and the following disclaimer in 
!  *   the documentation and/or other materials provided with the 
!  *   distribution.
!  * * Neither the name of olsr.org, olsrd nor the names of its 
!  *   contributors may be used to endorse or promote products derived 
!  *   from this software without specific prior written permission.
!  *
!  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
!  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
!  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
!  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
!  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
!  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
!  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
!  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
!  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
!  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
!  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
!  * POSSIBILITY OF SUCH DAMAGE.
!  *
!  * Visit http://www.olsr.org for more information.
!  *
!  * If you find this software useful feel free to make a donation
!  * to the project. For more information see the website or contact
!  * the copyright holders.
!  *
!  * $Id$
!  */
! 
! #if !defined TL_IPC_H
! #define TL_IPC_H
! 
! #define MSG_TYPE_OLSR_HELLO 1
! #define MSG_TYPE_OLSR_TC 2
! #define MSG_TYPE_OLSR_MID 3
! #define MSG_TYPE_OLSR_HNA 4
! #define MSG_TYPE_OLSR_LQ_HELLO 201
! #define MSG_TYPE_OLSR_LQ_TC 202
! 
! #define MSG_TYPE_IPC_ROUTE 11
! #define MSG_TYPE_IPC_CONFIG 12
! 
! #pragma pack(push, BeforeIpcMessages, 1)
! 
! struct OlsrHeader
! {
! 	unsigned char Type;
! 	unsigned char VTime;
! 	unsigned short Size;
! 	unsigned int Orig;
! 	unsigned char Ttl;
! 	unsigned char Hops;
! 	unsigned short SeqNo;
! };
! 
! struct OlsrHello
! {
! 	struct OlsrHeader Header;
! 
! 	unsigned short Reserved;
! 	unsigned char HTime;
! 	unsigned char Will;
! };
! 
! struct OlsrHelloLink
! {
! 	unsigned char LinkCode;
! 	unsigned char Reserved;
! 	unsigned short Size;
! };
! 
! struct OlsrTc
! {
! 	struct OlsrHeader Header;
! 
! 	unsigned short Ansn;
! 	unsigned short Reserved;
! };
! 
! union IpcIpAddr
! {
! 	unsigned int v4;
! 	unsigned char v6[16];
! };
! 
! struct IpcHeader
! {
! 	unsigned char Type;
! 	unsigned char Reserved;
! 	unsigned short Size;
! };
! 
! struct IpcRoute
! {
! 	struct IpcHeader Header;
! 	
! 	unsigned char Metric;
! 	unsigned char Add;
! 	unsigned char Reserved[2];
! 	union IpcIpAddr Dest;
! 	union IpcIpAddr Gate;
! 	char Int[4];
! };
! 
! struct IpcConfig
! {
! 	struct IpcHeader Header;
! 
! 	unsigned char NumMid;
! 	unsigned char NumHna;
! 	unsigned char Reserved1[2];
! 	unsigned short HelloInt;
! 	unsigned short WiredHelloInt;
! 	unsigned short TcInt;
! 	unsigned short HelloHold;
! 	unsigned short TcHold;
! 	unsigned char Ipv6;
! 	unsigned char Reserved2;
! 	IpcIpAddr MainAddr;
! };
! 
! #pragma pack (pop, BeforeIpcMessages)
! 
! #endif





More information about the Olsr-cvs mailing list