Shim now knows about whitespace in quoted path names. The default
authorThomas Lopatic <thomas@lopatic.de>
Tue, 14 Sep 2004 16:02:42 +0000 (16:02 +0000)
committerThomas Lopatic <thomas@lopatic.de>
Tue, 14 Sep 2004 16:02:42 +0000 (16:02 +0000)
configuration file can now be parsed by the GUI. The GUI now knows about
XP themes. Initial NSIS installer added.

files/olsrd.conf.default.win32
gui/win32/Frontend.ncb
gui/win32/Frontend.opt
gui/win32/Inst/installer.nsi [new file with mode: 0644]
gui/win32/Inst/linux-manual.txt [new file with mode: 0755]
gui/win32/Main/Frontend.clw
gui/win32/Main/Frontend.dsp
gui/win32/Main/Frontend.rc
gui/win32/Main/Switch.exe.manifest [new file with mode: 0755]
gui/win32/Main/resource.h
gui/win32/Shim/shim.c

index 5af9b44..625e56b 100644 (file)
@@ -9,11 +9,11 @@
 # Debug level(0-9)
 # If set to 0 the daemon runs in the background
 
-DEBUG          1
+DEBUG 1
 
 # IP version to use (4 or 6)
 
-IPVERSION      4
+IPVERSION 4
 
 # HNA IPv4 routes
 # syntax: netaddr netmask
@@ -31,15 +31,14 @@ IPVERSION   4
 
 # A list of whitespace separated interface names
 
-#INTERFACES    if02
+#INTERFACES if02
 
 # Should olsrd keep on running even if there are
 # no interfaces available? This is a good idea
 # for a PCMCIA/USB hotswap environment.
 # "yes" OR "no"
 
-ALLOW_NO_INT   yes
-
+ALLOW_NO_INT yes
 
 # Olsrd plugins to load
 # This must be the absolute path to the file
@@ -51,120 +50,119 @@ ALLOW_NO_INT      yes
 #
 # ONE PLUGIN PR. LINE
 
-#LOAD_PLUGIN   olsrd_secure.so.0.3
-#LOAD_PLUGIN   olsrd_dyn_gw.so.0.1
-#LOAD_PLUGIN   olsrd_power.so.0.1
+#LOAD_PLUGIN olsrd_secure.so.0.3
+#LOAD_PLUGIN olsrd_dyn_gw.so.0.1
+#LOAD_PLUGIN olsrd_power.so.0.1
 
 # IPv4 broadcast address to use. The
 # one usefull example would be 255.255.255.255
 # 'auto' uses the broadcastaddress
 # every card is configured with
 
-IP4BROAD       auto
+IP4BROAD auto
 
 # IPv6 address scope to use.
 # Must be 'site-local' or 'global'
 
-IP6ADDRTYPE    site-local
+IP6ADDRTYPE site-local
 
 # IPv6 multicast address to use when
 # using site-local addresses.
 # 'auto' uses the default ff05::15
 
-IP6MULTI-SITE  auto
+IP6MULTI-SITE auto
 
 # IPv6 multicast address to use when
 # using global addresses
 # 'auto' uses the default ff0e::1
 
-IP6MULTI-GLOBAL        auto
+IP6MULTI-GLOBAL auto
 
 # Polling rate in seconds(float). 
 # Auto uses default value 0.1 sec
 
-POLLRATE       auto
+POLLRATE 0.1
 
 # Hello interval in seconds(float)
 # auto uses RFC proposed value
 
-HELLOINT       auto
+HELLOINT 2.0
 
 # HELLO hold time as a multiplier
 # of the HELLOINT. Auto is the
 # RFC proposed interval
 
-HELLOMULTI     auto
+HELLOMULTI 3.0
 
 # TC interval in seconds(float)
 # auto uses RFC proposed value
 
-TCINT          auto
+TCINT 5.0
 
 # TC hold time as a multiplier
 # of the TCINT. Auto is the
 # RFC proposed interval
 
-TCMULTI                auto
+TCMULTI 3.0
 
 # HELLO interval for sending
 # interval/holding time for wired
 # links. This is a multiplier of
 # the HELLOINT value. Auto is 2
 
-NWHELLOINT     auto
+NWHELLOINT 2.0
 
 # HELLO hold time for wired links,
 # as a multiplier of the NWHELLOINT. 
 # Auto is NWHELLOINT * 3.
 
-NWHELLOMULTI   auto
+NWHELLOMULTI 3.0
 
 # MID interval in seconds(float)
 # auto uses RFC proposed value
 
-MIDINT         auto
+MIDINT 5.0
 
 # MID hold time as a multiplier
 # of the MIDINT. Auto is the
 # RFC proposed interval
 
-MIDMULTI       auto
+MIDMULTI 3.0
 
 # HNA interval in seconds(float)
 # auto uses 3*TCINT
 
-HNAINT         auto
+HNAINT 10.0
 
 # HNA hold time as a multiplier
 # of the HNAINT. Auto is the
 # RFC proposed interval
 
-HNAMULTI       auto
+HNAMULTI 3.0
 
 # TOS(type of service) value for
 # the IP header of control traffic.
 # auto is 16
 
-TOSVALUE       auto
+TOSVALUE auto
 
 # The fixed willingness to use(0-7)
 # or "auto" to set willingness dynammically
 # based on battery/power status
 
-WILLINGNESS            auto
+WILLINGNESS auto
 
 # Allow processes like the GUI front-end
 # to connect to the daemon. 'yes' or 'no'
 
-IPC-CONNECT            no
-
+IPC-CONNECT yes
 
 # Wether to use hysteresis or not
 # Hysteresis adds more robustness to the
 # link sensing but delays neighbor registration.
 # Used by default. 'yes' or 'no'
 
-USE_HYSTERESIS yes
+USE_HYSTERESIS yes
 
 # Hysteresis parameters
 # Do not alter these unless you know 
@@ -175,10 +173,9 @@ USE_HYSTERESIS     yes
 # THR_LOW must always be lower than
 # THR_HIGH!!
 
-HYST_SCALING   auto
-HYST_THR_HIGH  auto
-HYST_THR_LOW   auto
-
+HYST_SCALING 0.5
+HYST_THR_HIGH 0.8
+HYST_THR_LOW 0.3
 
 # TC redundancy
 # Specifies how much neighbor info should
@@ -190,8 +187,7 @@ HYST_THR_LOW        auto
 #
 # auto - defaults to 0
 
-TC_REDUNDANCY  auto
-
+TC_REDUNDANCY auto
 
 #
 # MPR redundancy
@@ -202,4 +198,4 @@ TC_REDUNDANCY       auto
 #
 # auto - defaults to 1
 
-MPR_COVERAGE   auto
+MPR_COVERAGE auto
index ef9b7f9..ebe15c6 100644 (file)
Binary files a/gui/win32/Frontend.ncb and b/gui/win32/Frontend.ncb differ
index 0005955..1c5aeb6 100644 (file)
Binary files a/gui/win32/Frontend.opt and b/gui/win32/Frontend.opt differ
diff --git a/gui/win32/Inst/installer.nsi b/gui/win32/Inst/installer.nsi
new file mode 100644 (file)
index 0000000..37f1e43
--- /dev/null
@@ -0,0 +1,92 @@
+Name olsr.org
+OutFile olsr-setup.exe
+
+InstallDir $PROGRAMFILES\olsr.org
+
+LicenseData ..\..\..\gpl.txt
+
+Page license
+Page components
+Page directory
+Page instfiles
+
+UninstPage uninstConfirm
+UninstPage instfiles
+
+Section "Program Files"
+
+        SectionIn RO
+
+        SetOutPath $INSTDIR
+
+        File ..\Main\Release\Switch.exe
+        File ..\Shim\Release\Shim.exe
+        File ..\..\..\olsrd.exe
+        File ..\..\..\README-WIN32.txt
+        File linux-manual.txt
+        File /oname=Default.olsr ..\..\..\files\olsrd.conf.default.win32
+
+        WriteRegStr HKLM Software\Microsoft\Windows\CurrentVersion\Uninstall\olsr.org DisplayName olsr.org
+        WriteRegStr HKLM Software\Microsoft\Windows\CurrentVersion\Uninstall\olsr.org UninstallString $INSTDIR\uninstall.exe
+
+        WriteRegDWORD HKLM Software\Microsoft\Windows\CurrentVersion\Uninstall\olsr.org NoModify 1
+        WriteRegDWORD HKLM Software\Microsoft\Windows\CurrentVersion\Uninstall\olsr.org NoRepair 1
+
+        WriteUninstaller $INSTDIR\uninstall.exe
+
+SectionEnd
+
+Section "Start Menu Shortcuts"
+
+        CreateDirectory $SMPROGRAMS\olsr.org
+
+        CreateShortCut "$SMPROGRAMS\olsr.org\OLSR Switch.lnk" $INSTDIR\Switch.exe "" $INSTDIR\Switch.exe 0
+        CreateShortCut $SMPROGRAMS\olsr.org\README-WIN32.lnk $INSTDIR\README-WIN32.txt
+        CreateShortCut $SMPROGRAMS\olsr.org\Uninstall.lnk $INSTDIR\uninstall.exe "" $INSTDIR\uninstall.exe 0
+
+SectionEnd
+
+Section "Desktop Shortcut"
+
+        CreateShortCut "$DESKTOP\OLSR Switch.lnk" $INSTDIR\Switch.exe "" $INSTDIR\Switch.exe 0
+
+SectionEnd
+
+Section "File Association (*.olsr)"
+
+        WriteRegStr HKCR .olsr "" OlsrOrgConfigFile
+
+        WriteRegStr HKCR OlsrOrgConfigFile "" "olsr.org Configuration File"
+
+        WriteRegStr HKCR OlsrOrgConfigFile\shell "" open
+        WriteRegStr HKCR OlsrOrgConfigFile\DefaultIcon "" $INSTDIR\Switch.exe,0
+        WriteRegStr HKCR OlsrOrgConfigFile\shell\open\command "" '$INSTDIR\Switch.exe "%1"'
+
+SectionEnd
+
+Section "Uninstall"
+
+        DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Uninstall\olsr.org
+
+        DeleteRegKey HKCR .olsr
+        DeleteRegKey HKCR OlsrOrgConfigFile
+
+        Delete $INSTDIR\Switch.exe
+        Delete $INSTDIR\Shim.exe
+        Delete $INSTDIR\olsrd.exe
+        Delete $INSTDIR\README-WIN32.txt
+        Delete $INSTDIR\linux-manual.txt
+        Delete $INSTDIR\Default.olsr
+        Delete $INSTDIR\uninstall.exe
+
+        RMDir $INSTDIR
+
+        Delete "$SMPROGRAMS\olsr.org\OLSR Switch.lnk"
+        Delete $SMPROGRAMS\olsr.org\README-WIN32.lnk
+        Delete $SMPROGRAMS\olsr.org\Uninstall.lnk
+
+        RMDir $SMPROGRAMS\olsr.org
+
+        Delete "$DESKTOP\OLSR Switch.lnk"
+
+SectionEnd
diff --git a/gui/win32/Inst/linux-manual.txt b/gui/win32/Inst/linux-manual.txt
new file mode 100755 (executable)
index 0000000..39408a7
--- /dev/null
@@ -0,0 +1,134 @@
+olsrd(8)                                                              olsrd(8)\r
+\r
+\r
+\r
+NAME\r
+       olsrd - Optimized Link State Routing protocol daemon\r
+\r
+SYNOPSIS\r
+       olsrd  [  -i   interface1  [interface2  ...]  ] [ -f  configfile ] [ -d\r
+       debuglevel ] [ -ipv6 ] [ -ipc ] [ -dispin ] [ -dispout ]  [  -tnl  ]  [\r
+       -bcast  broadcastaddress ] [ -delgw ] [ -hint  HELLO interval for wire-\r
+       less interfaces ] [ -tcint  TC interval ] [ -midint  MID interval  ]  [\r
+       -hnaint   HNA  interval  ] [ -hhold  HELLO validity time ] [ -thold  TC\r
+       validity time ] [ -tos  TOS value ] [ -nhint  HELLO interval non WLAN ]\r
+       [ -nhhold  HELLO validity time non WLAN ] [ -T  scheduler poll rate ]\r
+\r
+\r
+\r
+DESCRIPTION\r
+       olsrd is an implementation of the Optimized Link State Routing protocol\r
+       for  Mobile  Ad-Hoc  networks(MANET).  The  protocol  is  described  in\r
+       RFC3626.  It is designed to be run as a standalone server process - but\r
+       as it is still in an experimental stage most users will prefer  running\r
+       it with some debug output which is directed to STDOUT.\r
+\r
+\r
+       This  manual page only lists the command line arguments. For details of\r
+       the configuration file see the comments  included  in  /etc/olsrd.conf.\r
+       Note  that  none  of these options need to be set at the command line -\r
+       all these options and others can be set in the configuration file.\r
+\r
+\r
+       The homepage of olsrd is http://www.olsr.org\r
+\r
+\r
+OPTIONS\r
+       -i interface1 ... interfaceN\r
+                   This option specifies  on  what  network  interfaces  olsrd\r
+                   should  run.  These interfaces cannot be aliased interfaces\r
+                   such as eth0:1.\r
+\r
+       -f configfile\r
+                   This option overrides the default configuration  file  path\r
+                   used by olsrd - /etc/olsrd.conf\r
+\r
+       -d debuglevel\r
+                   This option specifies the amount of debug information olsrd\r
+                   should write to STDOUT. If set to 0 olsrd will run  in  the\r
+                   background.\r
+\r
+       -ipv6       This  option  instructs  olsrd to use the Internet Protocol\r
+                   version 6. The default is version 4.\r
+\r
+       -ipc        This option allows the GUI front-end created fro  olsrd  to\r
+                   connect to olsrd at runtime.\r
+\r
+       -dispin     This option, when set, causes olsrd to display all incoming\r
+                   packet data on STDOUT. When using IPv4  the  data  is  dis-\r
+                   played  in decimal format, when using IPv6 the data is dis-\r
+                   played in hexadecimal format.\r
+\r
+       -dispout    This option, when set, causes olsrd to display all outgoing\r
+                   packet  data  on  STDOUT.  When using IPv4 the data is dis-\r
+                   played in decimal format, when using IPv6 the data is  dis-\r
+                   played in hexadecimal format.\r
+\r
+       -tnl        When  this  option is set olsrd will use IP-in-IP tunneling\r
+                   to Internet gateways. This is very experimental code and it\r
+                   should not be used as of yet.\r
+\r
+       -delgw      If  this option is set olsrd will remove any default routes\r
+                   set prior to adding an Internet route based on  OLSR  rout-\r
+                   ing.\r
+\r
+       -bcast broadcastaddress\r
+                   This option specifies what IPv4 broadcastaddress to use for\r
+                   OLSR control traffic. The only value that  currently  makes\r
+                   sense   when   setting   broadcast   address  mannually  is\r
+                   255.255.255.255.  The default action is to use  the  broad-\r
+                   castaddres  that  the  network  interface  is preconfigured\r
+                   with(per interface).\r
+\r
+       -hint seconds\r
+                   This value sets the interval on which HELLO messages should\r
+                   be  generated.  The value is a floating point number repre-\r
+                   senting seconds.\r
+\r
+       -nhint seconds\r
+                   This value sets the interval on which HELLO messages should\r
+                   be  generated  on  interfaces  that  are not detected to be\r
+                   wireless.  The value is a floating point number  represent-\r
+                   ing seconds.\r
+\r
+       -tcint seconds\r
+                   This value sets the interval on which TC messages should be\r
+                   generated. The value is a floating point number  represent-\r
+                   ing seconds.\r
+\r
+       -midint seconds\r
+                   This  value  sets the interval on which MID messages should\r
+                   be generated. The value is a floating point  number  repre-\r
+                   senting seconds.\r
+\r
+       -hnaint seconds\r
+                   This  value  sets the interval on which HNA messages should\r
+                   be generated. The value is a floating point  number  repre-\r
+                   senting seconds.\r
+\r
+       -hhold multiplier\r
+                   This  option  sets  the  announced HELLO validity time as a\r
+                   multiplier of the HELLO interval.\r
+\r
+       -nhhold multiplier\r
+                   This option sets the announced HELLO validity time on  non-\r
+                   WLAN interfaces, as a multiplier of the HELLO interval.\r
+\r
+       -thold multiplier\r
+                   This option sets the announced TC validity time as a multi-\r
+                   plier of the TC interval.\r
+\r
+       -tos TOS-value\r
+                   This option sets the type of service value that  should  be\r
+                   set in the OLSR control traffic packet IP headers.\r
+\r
+       -T seconds  This  option  sets  the polling intervall of the scheduler.\r
+                   The default is 0.1 seconds. This option should only be con-\r
+                   sidered if running with really low emission intervals.\r
+\r
+\r
+\r
+       FILES  /etc/olsrd.conf\r
+\r
+SEE ALSO\r
+       iwconfig(8) route(8).\r
index a63dea3..720fa52 100644 (file)
@@ -2,7 +2,7 @@
 \r
 [General Info]\r
 Version=1\r
-LastClass=CFrontendDlg\r
+LastClass=CFrontendApp\r
 LastTemplate=CDialog\r
 NewFileInclude1=#include "stdafx.h"\r
 NewFileInclude2=#include "frontend.h"\r
@@ -19,11 +19,11 @@ Class7=MyEdit
 Class8=MyTabCtrl\r
 \r
 ResourceCount=5\r
-Resource1=IDD_DIALOG3\r
-Resource2=IDD_DIALOG4\r
-Resource3=IDD_DIALOG1\r
-Resource4=IDD_DIALOG2\r
-Resource5=IDD_FRONTEND_DIALOG\r
+Resource1=IDD_DIALOG1\r
+Resource2=IDD_DIALOG2\r
+Resource3=IDD_DIALOG3\r
+Resource4=IDD_FRONTEND_DIALOG\r
+Resource5=IDD_DIALOG4\r
 \r
 [CLS:CFrontendApp]\r
 Type=0\r
index 3ae9003..33b7210 100644 (file)
@@ -54,7 +54,6 @@ BSC32=bscmake.exe
 LINK32=link.exe\r
 # ADD BASE LINK32 /nologo /subsystem:windows /machine:I386\r
 # ADD LINK32 ws2_32.lib iphlpapi.lib /nologo /subsystem:windows /debug /machine:I386 /out:"Release/Switch.exe" /libpath:"C:\Program Files\Microsoft SDK\lib"\r
-# SUBTRACT LINK32 /pdbtype:<none>\r
 \r
 !ELSEIF  "$(CFG)" == "Frontend - Win32 Debug"\r
 \r
@@ -229,5 +228,9 @@ SOURCE=.\res\Frontend.ico
 SOURCE=.\res\Frontend.rc2\r
 # End Source File\r
 # End Group\r
+# Begin Source File\r
+\r
+SOURCE=.\Switch.exe.manifest\r
+# End Source File\r
 # End Target\r
 # End Project\r
index 1fe7792..dada414 100644 (file)
@@ -67,8 +67,8 @@ END
 IDD_FRONTEND_DIALOG DIALOGEX 0, 0, 399, 289\r
 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\r
 EXSTYLE WS_EX_APPWINDOW\r
-CAPTION "olsr.org Switch 0.4.6"\r
-FONT 8, "MS Sans Serif"\r
+CAPTION "olsr.org Switch 0.4.7"\r
+FONT 8, "MS Sans Serif", 0, 0, 0x1\r
 BEGIN\r
     CONTROL         "Tab1",IDC_TAB1,"SysTabControl32",0x0,7,7,383,256\r
     PUSHBUTTON      "Start",IDC_BUTTON1,228,268,50,14\r
@@ -233,6 +233,13 @@ END
 // Icon with lowest ID value placed first to ensure application icon\r
 // remains consistent on all systems.\r
 IDI_ICON1               ICON    DISCARDABLE     "res\\Frontend.ico"\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+//\r
+// 24\r
+//\r
+\r
+IDR_241                 24      DISCARDABLE     "Switch.exe.manifest"\r
 #endif    // English (U.S.) resources\r
 /////////////////////////////////////////////////////////////////////////////\r
 \r
diff --git a/gui/win32/Main/Switch.exe.manifest b/gui/win32/Main/Switch.exe.manifest
new file mode 100755 (executable)
index 0000000..26774e0
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?> \r
+\r
+<assembly \r
+       xmlns="urn:schemas-microsoft-com:asm.v1" \r
+       manifestVersion="1.0"\r
+>\r
+       <assemblyIdentity \r
+               processorArchitecture="x86" \r
+               version="1.0.0.0"\r
+               type="win32"\r
+               name="olsr.org.gui.Switch.exe"\r
+       />\r
+\r
+       <description>\r
+               olsr.org Windows GUI\r
+       </description>\r
+\r
+       <dependency>\r
+               <dependentAssembly>\r
+                       <assemblyIdentity\r
+                               type="win32"\r
+                               name="Microsoft.Windows.Common-Controls"\r
+                               version="6.0.0.0"\r
+                               publicKeyToken="6595b64144ccf1df"\r
+                               language="*"\r
+                               processorArchitecture="x86"\r
+                       />\r
+               </dependentAssembly>\r
+       </dependency>\r
+</assembly>\r
index a911b46..c33fa69 100644 (file)
@@ -10,6 +10,7 @@
 #define IDD_DIALOG3                     131\r
 #define IDD_DIALOG4                     132\r
 #define IDI_ICON1                       132\r
+#define IDR_241                         138\r
 #define IDC_TAB1                        1000\r
 #define IDC_BUTTON1                     1001\r
 #define IDC_EDIT1                       1003\r
@@ -44,7 +45,7 @@
 // \r
 #ifdef APSTUDIO_INVOKED\r
 #ifndef APSTUDIO_READONLY_SYMBOLS\r
-#define _APS_NEXT_RESOURCE_VALUE        137\r
+#define _APS_NEXT_RESOURCE_VALUE        139\r
 #define _APS_NEXT_COMMAND_VALUE         32771\r
 #define _APS_NEXT_CONTROL_VALUE         1027\r
 #define _APS_NEXT_SYMED_VALUE           101\r
index 0bf487c..996c38a 100644 (file)
@@ -32,6 +32,7 @@ void EntryPoint(void)
        char NewCmdLine[MAX_PATH + 500];\r
        HANDLE Handles[2];\r
        unsigned long Res;\r
+       int Quotes;\r
 \r
        Handles[0] = OpenEvent(EVENT_ALL_ACCESS, FALSE, "TheOlsrdShimEvent");\r
 \r
@@ -43,8 +44,18 @@ void EntryPoint(void)
 \r
        CmdLine = GetCommandLine();\r
 \r
-       while (*CmdLine != 0 && *CmdLine != 32)\r
+       Quotes = 0;\r
+       \r
+       while (*CmdLine != 0)\r
+       {\r
+               if (*CmdLine == '"')\r
+                       Quotes = !Quotes;\r
+\r
+               else if (*CmdLine == ' ' && !Quotes)\r
+                       break;\r
+\r
                CmdLine++;\r
+       }\r
 \r
        if (*CmdLine == 0)\r
        {\r