gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r664 - in GNUnet: contrib/win src/conf src/include src/util


From: durner
Subject: [GNUnet-SVN] r664 - in GNUnet: contrib/win src/conf src/include src/util/win
Date: Mon, 18 Apr 2005 13:11:32 -0700 (PDT)

Author: durner
Date: 2005-04-18 13:11:12 -0700 (Mon, 18 Apr 2005)
New Revision: 664

Removed:
   GNUnet/contrib/win/config_de_step1.ini
   GNUnet/contrib/win/config_de_step2.ini
   GNUnet/contrib/win/config_en_step1.ini
   GNUnet/contrib/win/config_en_step2.ini
Modified:
   GNUnet/contrib/win/Installer.nsi
   GNUnet/src/conf/gnunet-win-tool.c
   GNUnet/src/conf/wizard.c
   GNUnet/src/conf/wizard_callbacks.c
   GNUnet/src/include/gnunet_util.h
   GNUnet/src/util/win/win.cc
Log:
Towards the new Windows installer

Modified: GNUnet/contrib/win/Installer.nsi
===================================================================
--- GNUnet/contrib/win/Installer.nsi    2005-04-18 19:10:54 UTC (rev 663)
+++ GNUnet/contrib/win/Installer.nsi    2005-04-18 20:11:12 UTC (rev 664)
@@ -5,10 +5,9 @@
 
 ; HM NIS Edit Wizard helper defines
 !define PRODUCT_NAME "GNUnet"
-!define PRODUCT_VERSION "0.6.6-2"
+!define PRODUCT_VERSION "0.7"
 !define PRODUCT_PUBLISHER "GNU"
-!define PRODUCT_WEB_SITE "http://www.ovmj.org/GNUnet/";
-;!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App 
Paths\gnunet-gtk.exe"
+!define PRODUCT_WEB_SITE "http://www.gnunet.org/";
 !define PRODUCT_UNINST_KEY 
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
 !define PRODUCT_UNINST_ROOT_KEY "HKLM"
 !define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir"
@@ -41,9 +40,6 @@
 !insertmacro MUI_PAGE_STARTMENU Application $ICONS_GROUP
 ; Instfiles page
 !insertmacro MUI_PAGE_INSTFILES
-; Configuration file
-Page custom InitStep1
-Page custom InitStep2 DoneStep2
 ; Finish page
 !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README"
 !define MUI_FINISHPAGE_SHOWREADME_FUNCTION "ShowReadme"
@@ -68,187 +64,24 @@
 ShowInstDetails show
 ShowUnInstDetails show
 
-Var LANGCODE
-Var STEP2_INI
-Var GNUNET_INI
-
-Function InitStep1
-  Push $R0
-  Push $R1
-  Push $R2
-
-  InstallOptions::initDialog /NOUNLOAD "$PLUGINSDIR\config_$LANGCODE_step1.ini"
-  Pop $R0
-
-  GetDlgItem $R1 $R0 1200 ;1200 + Field number - 1
-
-  ;$R1 contains the HWND of the first field
-  CreateFont $R2 "Tahoma" 14 700
-  SendMessage $R1 ${WM_SETFONT} $R2 0
-
-  GetDlgItem $R1 $R0 1203
-  SetCtlColors $R1 0xFF0000 transparent
-  
-  InstallOptions::show
-  Pop $R0
-
-  Pop $R2
-  Pop $R1
-  Pop $R0
-FunctionEnd
-
-Function InitStep2
-  StrCpy $STEP2_INI "$PLUGINSDIR\config_$LANGCODE_step2.ini"
-  StrCpy $GNUNET_INI "$INSTDIR\etc\gnunet.conf"
-
-  ReadINIStr $R0 $GNUNET_INI "LOAD" "MAXNETUPBPSTOTAL"
-  WriteINIStr $STEP2_INI "Field 4" "State" $R0
-  ReadINIStr $R0 $GNUNET_INI "LOAD" "MAXNETDOWNBPSTOTAL"
-  WriteINIStr $STEP2_INI "Field 6" "State" $R0
-  ReadINIStr $R0 $GNUNET_INI "LOAD" "BASICLIMITING"
-  StrCmp $R0 "YES" 0 adv_limit
-  WriteINIStr $STEP2_INI "Field 8" "State" "1"
-  WriteINIStr $STEP2_INI "Field 9" "State" "0"
-  goto ip
- adv_limit:
-  WriteINIStr $STEP2_INI "Field 8" "State" "0"
-  WriteINIStr $STEP2_INI "Field 9" "State" "1"
- ip:
-  ReadINIStr $R0 $GNUNET_INI "NETWORK" "IP"
-  WriteINIStr $STEP2_INI "Field 11" "State" $R0
-  ReadINIStr $R0 $GNUNET_INI "LOAD" "MAXCPULOAD"
-  WriteINIStr $STEP2_INI "Field 14" "State" $R0
-  ReadINIStr $R0 $GNUNET_INI "AFS" "ACTIVEMIGRATION"
-  StrCmp $R0 "YES" 0 no_mig
-  WriteINIStr $STEP2_INI "Field 15" "State" "1"
-  goto dialog
- no_mig:
-  WriteINIStr $STEP2_INI "Field 15" "State" "0"
- dialog:
-  FlushINI $STEP2_INI
- 
-  Push $R0
-  Push $R1
-  Push $R2
-
-  InstallOptions::initDialog /NOUNLOAD $STEP2_INI
-  Pop $R0
-
-  GetDlgItem $R1 $R0 1215 ;1200 + Field number - 1
-
-  SetOutPath "$INSTDIR\bin"
-  ;  Initialize DLL
-  System::Get "$INSTDIR\bin\libgnunetutil-0.dll::InitWinEnv() ? c"
-  Pop $0
-  System::Call "$0"
-
-  ;$R1 contains the handle of the NIC combo
-  System::Get "$INSTDIR\bin\libgnunetutil-0.dll::PopulateNICCombo(i $R1) ? c"
-  Pop $0
-  System::Call "$0"
-
-  ;  Unitialize DLL
-  System::Get "$INSTDIR\bin\libgnunetutil-0.dll::ShutdownWinEnv() ? c"
-  Pop $0
-  System::Call "$0"
-
-  InstallOptions::show
-  Pop $R0
-
-  Pop $R2
-  Pop $R1
-  Pop $R0
-FunctionEnd
-
-Function DoneStep2
-  ReadINIStr $R0 $STEP2_INI "Field 4" "State"
-  WriteINIStr $GNUNET_INI "LOAD" "MAXNETUPBPSTOTAL" $R0
-  ReadINIStr $R0 $STEP2_INI "Field 6" "State"
-  WriteINIStr $GNUNET_INI "LOAD" "MAXNETDOWNBPSTOTAL" $R0
-  ReadINIStr $R0 $STEP2_INI "Field 8" "State"
-  StrCmp $R0 "1" 0 adv_limit
-  WriteINIStr $GNUNET_INI "LOAD" "BASICLIMITING" "YES"
-  goto nw
- adv_limit:
-  WriteINIStr $GNUNET_INI "LOAD" "BASICLIMITING" "NO"
- nw:
-  ReadINIStr $R0 $STEP2_INI "Field 11" "State"
-  WriteINIStr $GNUNET_INI "NETWORK" "IP" '"$R0"'
-  ReadINIStr $R0 $STEP2_INI "Field 14" "State"
-  WriteINIStr $GNUNET_INI "LOAD" "MAXCPULOAD" $R0
-  ReadINIStr $R0 $STEP2_INI "Field 15" "State"
-  StrCmp $R0 "1" 0 no_mig
-  WriteINIStr $GNUNET_INI "AFS" "ACTIVEMIGRATION" "YES"
-  goto startup
- no_mig:
-  WriteINIStr $GNUNET_INI "AFS" "ACTIVEMIGRATION" "NO"
- startup:
-  ReadINIStr $R0 $STEP2_INI "Field 1" "State"
-  SetOutPath "$INSTDIR\bin"
-  StrCmp $R0 "1" 0 no_start
-  ;Check for NT
-  ClearErrors
-  ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" 
CurrentVersion
-  IfErrors startup_win9
-  ExecShell "" "gnunet-win-tool.exe" "-i" SW_SHOWMINIMIZED
-  goto db
- startup_win9:
-  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Run" "GNUnet" 
"$INSTDIR\bin\gnunetd.exe"
-  goto db
- no_start:
-  ;Check for NT
-  ClearErrors
-  ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" 
CurrentVersion
-  IfErrors no_startup_win9
-  ExecShell "" "gnunet-win-tool.exe" "-u" SW_SHOWMINIMIZED
- no_startup_win9:
-  DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Run" "GNUnet"
- db:
-  WriteINIStr $GNUNET_INI "AFS" "DATABASETYPE" '"sqlite"'
-  ;Get NIC string
-  ReadINIStr $R0 $STEP2_INI "Field 16" "State"
-  ; load length into $R2
-  StrLen $R2 $R0
-  ; init counter $R1
-  StrCpy $R1 "0"
-  rd_idx:
-  ; inc counter $R1
-  IntOp $R1 $R1 + 1
-  ; we want to examine the last $R1 chars
-  IntOp $R4 $R2 - $R1
-  ; get the first char of the substring
-  StrCpy $R3 $R0 1 $R4
-  ; is it a space? yes: we have found the beginning of the NIC index
-  StrCmp $R3 " " 0 rd_idx
-  ; copy NIC index to $R3
-  IntOp $R4 $R4 + 1
-  IntOp $R1 $R1 - 1
-  StrCpy $R3 $R0 $R1 $R4
-
-  WriteINIStr $GNUNET_INI "NETWORK" "INTERFACE" '$R3'
-  WriteINIStr $GNUNET_INI "LOAD" "INTERFACES" '$R3'
-FunctionEnd
-
 Var USR_PROF
 Var DIRLEN
 
 Section "Core files" SEC01
   SetOutPath "$INSTDIR\bin"
   SetOverwrite ifnewer
-  File "C:\GNUnet\bin\gnunet-gtk.exe"
   File "gnu.ico"
   CreateDirectory "$SMPROGRAMS\$ICONS_GROUP"
-  CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\GNUnet.lnk" 
"$INSTDIR\bin\gnunet-gtk.exe" "" "$INSTDIR\bin\gnu.ico"
-  CreateShortCut "$DESKTOP\GNUnet.lnk" "$INSTDIR\bin\gnunet-gtk.exe" "" 
"$INSTDIR\bin\gnu.ico"
-; Microsoft C Runtime
-; Redistribution is permitted, see Microsoft Knowledge Base Article 326922
-  File "C:\GNUnet\bin\msvcr70.dll"
+;  CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\GNUnet.lnk" 
"$INSTDIR\bin\gnunet-gtk.exe" "" "$INSTDIR\bin\gnu.ico"
+;  CreateShortCut "$DESKTOP\GNUnet.lnk" "$INSTDIR\bin\gnunet-gtk.exe" "" 
"$INSTDIR\bin\gnu.ico"
+
+       ; 3rd party
   File "C:\GNUnet\bin\libsqlite3-0.dll"
   File "C:\GNUnet\bin\pthreadGC1.dll"
-  File "C:\GNUnet\bin\libz.dll"
   File "C:\GNUnet\bin\libpng12.dll"
   File "C:\GNUnet\bin\libpango-1.0-0.dll"
   File "C:\GNUnet\bin\libpangowin32-1.0-0.dll"
+  File "C:\GNUnet\bin\libmysql.dll"
   File "C:\GNUnet\bin\libltdl-3.dll"
   File "C:\GNUnet\bin\libintl.dll"
   File "C:\GNUnet\bin\libgtk-win32-2.0-0.dll"
@@ -256,48 +89,67 @@
   File "C:\GNUnet\bin\libgthread-2.0-0.dll"
   File "C:\GNUnet\bin\libgobject-2.0-0.dll"
   File "C:\GNUnet\bin\libgmp.dll"
-  File "C:\GNUnet\bin\libgnunetutil-0.dll"
-  File "C:\GNUnet\bin\libgnunettransport_udp.dll"
-  File "C:\GNUnet\bin\libgnunettransport_tcp.dll"
-  File "C:\GNUnet\bin\libgnunettransport_nat.dll"
-  File "C:\GNUnet\bin\libgnunettransport_http.dll"
-  File "C:\GNUnet\bin\libgnunettracekit_protocol.dll"
-  File "C:\GNUnet\bin\libgnunettbench_protocol.dll"
-  File "C:\GNUnet\bin\libgnunetchat_protocol.dll"
-  File "C:\GNUnet\bin\libgnunetafs_protocol.dll"
-  File "C:\GNUnet\bin\libgnunetafs_database_sqlite.dll"
-  File "C:\GNUnet\bin\libgnunetafs_database_directory.dll"
-  File "C:\GNUnet\bin\libgnunetafs_database_bdb.dll"
-  File "C:\GNUnet\bin\libgnunet_afs_esed2-0.dll"
   File "C:\GNUnet\bin\libgmodule-2.0-0.dll"
   File "C:\GNUnet\bin\libglib-2.0-0.dll"
   File "C:\GNUnet\bin\libgdk_pixbuf-2.0-0.dll"
   File "C:\GNUnet\bin\libgdk-win32-2.0-0.dll"
   File "C:\GNUnet\bin\libgdk-0.dll"
   File "C:\GNUnet\bin\libgcrypt.dll"
-  File "C:\GNUnet\bin\libdb.dll"  
   File "C:\GNUnet\bin\libatk-1.0-0.dll"
   File "C:\GNUnet\bin\intl.dll"
   File "C:\GNUnet\bin\iconv.dll"
   File "C:\GNUnet\bin\libiconv-2.dll"
-  File "C:\GNUnet\bin\gnunet-win-tool.exe"
-  File "C:\GNUnet\bin\gnunet-transport-check.exe"
-  File "C:\GNUnet\bin\gnunet-tracekit.exe"
-  File "C:\GNUnet\bin\gnunet-tbench.exe"
-  File "C:\GNUnet\bin\gnunet-update.exe"
-  File "C:\GNUnet\bin\gnunet-stats.exe"
-  File "C:\GNUnet\bin\gnunet-setup.exe"
-  File "C:\GNUnet\bin\gnunet-search.exe"
-  File "C:\GNUnet\bin\gnunet-pseudonym.exe"
-  File "C:\GNUnet\bin\gnunet-peer-info.exe"
-  File "C:\GNUnet\bin\gnunet-insert.exe"
-  File "C:\GNUnet\bin\gnunet-download.exe"
-  File "C:\GNUnet\bin\gnunet-directory.exe"
-  File "C:\GNUnet\bin\gnunet-delete.exe"
-  File "C:\GNUnet\bin\gnunetd.exe"
-  File "C:\GNUnet\bin\gnunet-convert.exe"
-  File "C:\GNUnet\bin\gnunet-check.exe"
-  File "C:\GNUnet\bin\gnunet-chat.exe"
+
+       ; GNUnet
+       File "C:\GNUnet\bin\gnunetd.exe"
+       File "C:\GNUnet\bin\gnunet-directory.exe"
+       File "C:\GNUnet\bin\gnunet-download.exe"
+       File "C:\GNUnet\bin\gnunet-insert.exe"
+       File "C:\GNUnet\bin\gnunet-peer-info.exe"
+       File "C:\GNUnet\bin\gnunet-pseudonym.exe"
+       File "C:\GNUnet\bin\gnunet-search.exe"
+       File "C:\GNUnet\bin\gnunet-setup.exe"
+       File "C:\GNUnet\bin\gnunet-stats.exe"
+       File "C:\GNUnet\bin\gnunet-tbench.exe"
+       File "C:\GNUnet\bin\gnunet-tracekit.exe"
+       File "C:\GNUnet\bin\gnunet-transport-check.exe"
+       File "C:\GNUnet\bin\gnunet-unindex.exe"
+       File "C:\GNUnet\bin\gnunet-update.exe"
+       File "C:\GNUnet\bin\gnunet-win-tool.exe"
+       
+       File "C:\GNUnet\bin\libgnunetcore-0.dll"
+       File "C:\GNUnet\bin\libgnunetdht_datastore_memory-0.dll"
+       File "C:\GNUnet\bin\libgnunetecrs-0.dll"
+       File "C:\GNUnet\bin\libgnunetfs-0.dll"
+       File "C:\GNUnet\bin\libgnunetfsui-0.dll"
+       File "C:\GNUnet\bin\libgnunetgetoption_api-0.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_advertising.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_bootstrap.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_datastore.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_fragmentation.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_fs.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_gap.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_getoption.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_identity.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_pingpong.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_rpc.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_rpc_util-0.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_session.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_sqstore_mysql.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_sqstore_sqlite.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_stats.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_tbench.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_topology_default.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_tracekit.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_traffic_api-0.dll"
+       File "C:\GNUnet\bin\libgnunetmodule_transport.dll"
+       File "C:\GNUnet\bin\libgnunetstats_api-0.dll"
+       File "C:\GNUnet\bin\libgnunettransport_http.dll"
+       File "C:\GNUnet\bin\libgnunettransport_nat.dll"
+       File "C:\GNUnet\bin\libgnunettransport_tcp.dll"
+       File "C:\GNUnet\bin\libgnunettransport_udp.dll"
+       File "C:\GNUnet\bin\libgnunetutil-1.dll"
+
   SetOutPath "$INSTDIR\"
   File "C:\GNUnet\README"
   File "C:\GNUnet\PLATFORMS"
@@ -345,62 +197,17 @@
   Rename "$USR_PROF\gnunet.user" "$USR_PROF\gnunet.conf"
 SectionEnd
 
-Section "Extractor" SEC03
-  SetOutPath "$INSTDIR\bin"
-  SetOverwrite ifnewer
-  File "c:\GNUnet\bin\extract.exe"
-  File "c:\GNUnet\bin\libextractor-1.dll"
-  File "c:\GNUnet\bin\libextractor_asf.dll"
-  File "c:\GNUnet\bin\libextractor_deb.dll"
-  File "c:\GNUnet\bin\libextractor_dvi.dll"
-  File "c:\GNUnet\bin\libextractor_elf.dll"
-  File "c:\GNUnet\bin\libextractor_filename.dll"
-  File "c:\GNUnet\bin\libextractor_gif.dll"
-  File "c:\GNUnet\bin\libextractor_hash_md5.dll"
-  File "c:\GNUnet\bin\libextractor_hash_rmd160.dll"
-  File "c:\GNUnet\bin\libextractor_hash_sha1.dll"
-  File "c:\GNUnet\bin\libextractor_html.dll"
-  File "c:\GNUnet\bin\libextractor_id3v2.dll"
-  File "c:\GNUnet\bin\libextractor_id3v23.dll"
-  File "c:\GNUnet\bin\libextractor_id3v24.dll"
-  File "c:\GNUnet\bin\libextractor_jpeg.dll"
-  File "c:\GNUnet\bin\libextractor_lower.dll"
-  File "c:\GNUnet\bin\libextractor_man.dll"
-  File "c:\GNUnet\bin\libextractor_mime.dll"
-  File "c:\GNUnet\bin\libextractor_mp3.dll"
-  File "c:\GNUnet\bin\libextractor_mpeg.dll"
-  File "c:\GNUnet\bin\libextractor_ole2.dll"
-  File "c:\GNUnet\bin\libextractor_oo.dll"
-  File "c:\GNUnet\bin\libextractor_pdf.dll"
-  File "c:\GNUnet\bin\libextractor_png.dll"
-  File "c:\GNUnet\bin\libextractor_printable_da.dll"
-  File "c:\GNUnet\bin\libextractor_printable_de.dll"
-  File "c:\GNUnet\bin\libextractor_printable_en.dll"
-  File "c:\GNUnet\bin\libextractor_printable_es.dll"
-  File "c:\GNUnet\bin\libextractor_printable_it.dll"
-  File "c:\GNUnet\bin\libextractor_printable_no.dll"
-  File "c:\GNUnet\bin\libextractor_ps.dll"
-  File "c:\GNUnet\bin\libextractor_qt.dll"
-  File "c:\GNUnet\bin\libextractor_real.dll"
-  File "c:\GNUnet\bin\libextractor_riff.dll"
-  File "c:\GNUnet\bin\libextractor_rpm.dll"
-  File "c:\GNUnet\bin\libextractor_split.dll"
-  File "c:\GNUnet\bin\libextractor_tar.dll"
-  File "c:\GNUnet\bin\libextractor_tiff.dll"
-  File "c:\GNUnet\bin\libextractor_wav.dll"
-  File "c:\GNUnet\bin\libextractor_zip.dll"
-SectionEnd
-
 Section "DHT" Sec04
   File "c:\GNUnet\bin\gnunet-dht-join.exe"
   File "c:\GNUnet\bin\gnunet-dht-query.exe"
-  File "c:\GNUnet\bin\libgnunetdht_api-0.dll"
-  File "c:\GNUnet\bin\libgnunetdht_datastore_memory-0.dll"
-  File "c:\GNUnet\bin\libgnunetdht_protocol.dll"
-  File "c:\GNUnet\bin\libgnunetrpc_protocol.dll"
-  File "c:\GNUnet\bin\libgnunetrpc_util-0.dll"
 SectionEnd
 
+Section "Chat" Sec05
+  SetOutPath "$INSTDIR\bin\"
+       File "c:\GNUnet\bin\gnunet-chat.exe"
+       File "C:\GNUnet\bin\libgnunetmodule_chat.dll"
+SectionEnd
+
 Section -AdditionalIcons
   WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" 
"${PRODUCT_WEB_SITE}"
   CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Website.lnk" 
"$INSTDIR\${PRODUCT_NAME}.url"
@@ -409,7 +216,6 @@
 
 Section -Post
   WriteUninstaller "$INSTDIR\uninst.exe"
-;  WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\bin\gnunet-gtk.exe"
   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" 
"$(^Name)"
   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" 
"UninstallString" "$INSTDIR\uninst.exe"
   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" 
"$INSTDIR\bin\gnu.ico"
@@ -418,32 +224,19 @@
   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" 
"URLInfoAbout" "${PRODUCT_WEB_SITE}"
   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" 
"${PRODUCT_PUBLISHER}"
   WriteRegStr HKLM "Software\GNU\GNUnet" "InstallDir" "$INSTDIR"
-  WriteRegStr HKLM "Software\GNU\libextractor" "InstallDir" "$INSTDIR"
 SectionEnd
 
 ; Section descriptions
 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
   !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} "Required by GNUnet"
   !insertmacro MUI_DESCRIPTION_TEXT ${SEC02} "GNUnet configuration files"
-  !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} "Component to extract meta-data 
from files"
   !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} "Distributed HashTables. 
Experimental."
+  !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} "Chat. Experimental."
 !insertmacro MUI_FUNCTION_DESCRIPTION_END
 
 
 Function .onInit
   InitPluginsDir
-  
-  StrCmp $LANGUAGE "1031" 0 english
-  StrCpy $LANGCODE "de"
-  goto cp
- english:
-  StrCpy $LANGCODE "en"
-
- cp:
-  File /oname=$PLUGINSDIR\config_en_step1.ini config_en_step1.ini
-  File /oname=$PLUGINSDIR\config_en_step2.ini config_en_step2.ini
-  File /oname=$PLUGINSDIR\config_de_step1.ini config_de_step1.ini
-  File /oname=$PLUGINSDIR\config_de_step2.ini config_de_step2.ini
 FunctionEnd
 
 
@@ -505,8 +298,6 @@
   Delete "$INSTDIR\bin\intl.dll"
   Delete "$INSTDIR\bin\libatk-1.0-0.dll"
   Delete "$INSTDIR\bin\libcharset.dll"
-  Delete "$INSTDIR\bin\libdb.dll"
-  Delete "$INSTDIR\bin\libeay32-0.dll"
   Delete "$INSTDIR\bin\libgcrypt.dll"
   Delete "$INSTDIR\bin\libgdbm-2.dll"
   Delete "$INSTDIR\bin\libgdk-0.dll"
@@ -536,6 +327,7 @@
   Delete "$INSTDIR\bin\libgtk-win32-2.0-0.dll"
   Delete "$INSTDIR\bin\libintl.dll"
   Delete "$INSTDIR\bin\libltdl-3.dll"
+  Delete "$INSTDIR\bin\libmysql.dll"
   Delete "$INSTDIR\bin\libpango-1.0-0.dll"
   Delete "$INSTDIR\bin\libpangowin32-1.0-0.dll"
   Delete "$INSTDIR\bin\libpng12.dll"
@@ -549,50 +341,6 @@
   Delete "$INSTDIR\bin\gnunet-gtk.exe"
   Delete "$INSTDIR\bin\gnu.ico"
   
-  Delete "$INSTDIR\bin\extract.exe"
-  Delete "$INSTDIR\bin\libextractor-0.dll"
-  Delete "$INSTDIR\bin\libextractor-1.dll"
-  Delete "$INSTDIR\bin\libextractor_asf.dll"
-  Delete "$INSTDIR\bin\libextractor_deb.dll"
-  Delete "$INSTDIR\bin\libextractor_dvi.dll"
-  Delete "$INSTDIR\bin\libextractor_elf.dll"
-  Delete "$INSTDIR\bin\libextractor_filename.dll"
-  Delete "$INSTDIR\bin\libextractor_gif.dll"
-  Delete "$INSTDIR\bin\libextractor_hash_md5.dll"
-  Delete "$INSTDIR\bin\libextractor_hash_rmd160.dll"
-  Delete "$INSTDIR\bin\libextractor_hash_sha1.dll"
-  Delete "$INSTDIR\bin\libextractor_html.dll"
-  Delete "$INSTDIR\bin\libextractor_id3v2.dll"
-  Delete "$INSTDIR\bin\libextractor_id3v23.dll"
-  Delete "$INSTDIR\bin\libextractor_id3v24.dll"
-  Delete "$INSTDIR\bin\libextractor_jpeg.dll"
-  Delete "$INSTDIR\bin\libextractor_lower.dll"
-  Delete "$INSTDIR\bin\libextractor_man.dll"
-  Delete "$INSTDIR\bin\libextractor_mime.dll"
-  Delete "$INSTDIR\bin\libextractor_mp3.dll"
-  Delete "$INSTDIR\bin\libextractor_mpeg.dll"
-  Delete "$INSTDIR\bin\libextractor_ole2.dll"
-  Delete "$INSTDIR\bin\libextractor_oo.dll"
-  Delete "$INSTDIR\bin\libextractor_pdf.dll"
-  Delete "$INSTDIR\bin\libextractor_png.dll"
-  Delete "$INSTDIR\bin\libextractor_printable_da.dll"
-  Delete "$INSTDIR\bin\libextractor_printable_de.dll"
-  Delete "$INSTDIR\bin\libextractor_printable_en.dll"
-  Delete "$INSTDIR\bin\libextractor_printable_es.dll"
-  Delete "$INSTDIR\bin\libextractor_printable_it.dll"
-  Delete "$INSTDIR\bin\libextractor_printable_no.dll"
-  Delete "$INSTDIR\bin\libextractor_ps.dll"
-  Delete "$INSTDIR\bin\libextractor_qt.dll"
-  Delete "$INSTDIR\bin\libextractor_real.dll"
-  Delete "$INSTDIR\bin\libextractor_riff.dll"
-  Delete "$INSTDIR\bin\libextractor_rpm.dll"
-  Delete "$INSTDIR\bin\libextractor_split.dll"
-  Delete "$INSTDIR\bin\libextractor_tar.dll"
-  Delete "$INSTDIR\bin\libextractor_tiff.dll"
-  Delete "$INSTDIR\bin\libextractor_util-0.dll"
-  Delete "$INSTDIR\bin\libextractor_wav.dll"
-  Delete "$INSTDIR\bin\libextractor_zip.dll"
-
   Delete "$INSTDIR\bin\dht-create.exe"
   Delete "$INSTDIR\bin\dht-fetch.exe"
   Delete "$INSTDIR\bin\dht-insert.exe"
@@ -659,6 +407,5 @@
   DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
 ;  DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
   DeleteRegKey HKLM "Software\GNU\GNUnet"
-  DeleteRegKey HKLM "Software\GNU\libextractor"
   SetAutoClose true
 SectionEnd

Deleted: GNUnet/contrib/win/config_de_step1.ini
===================================================================
--- GNUnet/contrib/win/config_de_step1.ini      2005-04-18 19:10:54 UTC (rev 
663)
+++ GNUnet/contrib/win/config_de_step1.ini      2005-04-18 20:11:12 UTC (rev 
664)
@@ -1,36 +0,0 @@
-; Ini file generated by the HM NIS Edit IO designer.
-[Settings]
-NumFields=4
-
-[Field 1]
-Type=Label
-Text=Willkommen bei GNUnet
-Left=0
-Right=300
-Top=1
-Bottom=14
-
-[Field 2]
-Type=Label
-Text=Dieser Assistent begleitet Sie durch die ersten Schritte\r\nder 
Einrichtung von GNUnet.
-Left=0
-Right=300
-Top=32
-Bottom=57
-
-[Field 3]
-Type=Label
-Text=Klicken Sie auf "Weiter", um fortzufahren.
-Left=0
-Right=298
-Top=98
-Bottom=106
-
-[Field 4]
-Type=Label
-Text=Wichtig: Sollten Sie gerade nicht mit dem Internet verbunden sein, so 
verbinden Sie sich jetzt, damit der Assistent nachfolgend die 
Internetverbindung erkennen kann.
-Left=0
-Right=302
-Top=64
-Bottom=90
-

Deleted: GNUnet/contrib/win/config_de_step2.ini
===================================================================
--- GNUnet/contrib/win/config_de_step2.ini      2005-04-18 19:10:54 UTC (rev 
663)
+++ GNUnet/contrib/win/config_de_step2.ini      2005-04-18 20:11:12 UTC (rev 
664)
@@ -1,136 +0,0 @@
-; Ini file generated by the HM NIS Edit IO designer.
-[Settings]
-NumFields=16
-
-[Field 1]
-Type=Checkbox
-Text=GNUnet Hintergrundproze� beim Start des Rechners starten
-State=1
-Left=1
-Right=298
-Top=115
-Bottom=126
-
-[Field 2]
-Type=Groupbox
-Text=Bandbreitenbeschr�nkung
-Left=0
-Right=152
-Top=0
-Bottom=44
-
-[Field 3]
-Type=Label
-Text=Upstream (Bytes/s):
-Left=8
-Right=70
-Top=12
-Bottom=20
-
-[Field 4]
-Type=Text
-State=128000
-Left=84
-Right=136
-Top=9
-Bottom=22
-
-[Field 5]
-Type=Label
-Text=Downstream (Bytes/s):
-Left=8
-Right=79
-Top=27
-Bottom=35
-
-[Field 6]
-Type=Text
-State=1000000
-Left=84
-Right=136
-Top=24
-Bottom=36
-
-[Field 7]
-Type=Groupbox
-Text=Bandbreitenaufteilung
-Left=0
-Right=152
-Top=48
-Bottom=97
-
-[Field 8]
-Type=RadioButton
-Text=Bandbreite f�r GNUnet verwenden
-State=0
-Left=8
-Right=144
-Top=59
-Bottom=68
-
-[Field 9]
-Type=RadioButton
-Text=Bandbreite mit anderen Anwendungen teilen
-State=1
-Left=8
-Right=150
-Top=73
-Bottom=89
-
-[Field 10]
-Type=Groupbox
-Text=IP-Adresse/Rechnername
-Left=158
-Right=298
-Top=0
-Bottom=30
-
-[Field 11]
-Type=Text
-Left=165
-Right=291
-Top=11
-Bottom=24
-
-[Field 12]
-Type=Groupbox
-Text=Netzwerk-Verbindung
-Left=158
-Right=298
-Top=33
-Bottom=64
-
-[Field 13]
-Type=Groupbox
-Text=Max. CPU Nutzung (%)
-Left=158
-Right=298
-Top=67
-Bottom=97
-
-[Field 14]
-Type=Text
-State=70
-Left=165
-Right=288
-Top=80
-Bottom=92
-
-[Field 15]
-Type=Checkbox
-Text=Migrierte Dateninhalte speichern
-State=1
-Left=1
-Right=296
-Top=102
-Bottom=112
-
-[Field 16]
-Type=Combobox
-Text=Combobox
-ListItems=
-Left=166
-Right=290
-Top=44
-Bottom=76
-

Deleted: GNUnet/contrib/win/config_en_step1.ini
===================================================================
--- GNUnet/contrib/win/config_en_step1.ini      2005-04-18 19:10:54 UTC (rev 
663)
+++ GNUnet/contrib/win/config_en_step1.ini      2005-04-18 20:11:12 UTC (rev 
664)
@@ -1,36 +0,0 @@
-; Ini file generated by the HM NIS Edit IO designer.
-[Settings]
-NumFields=4
-
-[Field 1]
-Type=Label
-Text=Welcome to GNUnet
-Left=0
-Right=300
-Top=1
-Bottom=14
-
-[Field 2]
-Type=Label
-Text=This assistant guides you through the first steps of\r\nconfiguring 
GNUnet.
-Left=0
-Right=300
-Top=32
-Bottom=57
-
-[Field 3]
-Type=Label
-Text=Click on "Next" to continue.
-Left=0
-Right=298
-Top=88
-Bottom=96
-
-[Field 4]
-Type=Label
-Text=Important: if you are not connected to the Internet at the moment, please 
connect now to enable this assistant to recognize your Internet connection.
-Left=0
-Right=302
-Top=64
-Bottom=83
-

Deleted: GNUnet/contrib/win/config_en_step2.ini
===================================================================
--- GNUnet/contrib/win/config_en_step2.ini      2005-04-18 19:10:54 UTC (rev 
663)
+++ GNUnet/contrib/win/config_en_step2.ini      2005-04-18 20:11:12 UTC (rev 
664)
@@ -1,135 +0,0 @@
-; Ini file generated by the HM NIS Edit IO designer.
-[Settings]
-NumFields=16
-
-[Field 1]
-Type=Checkbox
-Text=Start the GNUnet background process on computer startup
-State=1
-Left=1
-Right=298
-Top=115
-Bottom=126
-
-[Field 2]
-Type=Groupbox
-Text=Bandwidth limitation
-Left=0
-Right=152
-Top=0
-Bottom=44
-
-[Field 3]
-Type=Label
-Text=Upstream (Bytes/s):
-Left=8
-Right=70
-Top=12
-Bottom=20
-
-[Field 4]
-Type=Text
-State=128000
-Left=84
-Right=136
-Top=9
-Bottom=22
-
-[Field 5]
-Type=Label
-Text=Downstream (Bytes/s):
-Left=8
-Right=79
-Top=27
-Bottom=35
-
-[Field 6]
-Type=Text
-State=1000000
-Left=84
-Right=136
-Top=24
-Bottom=36
-
-[Field 7]
-Type=Groupbox
-Text=Bandwith sharing
-Left=0
-Right=152
-Top=48
-Bottom=97
-
-[Field 8]
-Type=RadioButton
-Text=Use denoted bandwidth for GNUnet
-State=0
-Left=8
-Right=144
-Top=59
-Bottom=68
-
-[Field 9]
-Type=RadioButton
-Text=Share bandwidth with other applications
-State=1
-Left=8
-Right=150
-Top=73
-Bottom=89
-
-[Field 10]
-Type=Groupbox
-Text=IP-Address/Hostname
-Left=158
-Right=298
-Top=0
-Bottom=30
-
-[Field 11]
-Type=Text
-Left=165
-Right=291
-Top=11
-Bottom=24
-
-[Field 12]
-Type=Groupbox
-Text=Network-Connection
-Left=158
-Right=298
-Top=33
-Bottom=64
-
-[Field 13]
-Type=Groupbox
-Text=Max. CPU Usage (%)
-Left=158
-Right=298
-Top=67
-Bottom=97
-
-[Field 14]
-Type=Text
-State=70
-Left=165
-Right=288
-Top=80
-Bottom=92
-
-[Field 15]
-Type=Checkbox
-Text=Store migrated content
-State=1
-Left=1
-Right=296
-Top=102
-Bottom=112
-
-[Field 16]
-Type=Combobox
-Text=Combobox
-ListItems=
-Left=166
-Right=290
-Top=44
-Bottom=76

Modified: GNUnet/src/conf/gnunet-win-tool.c
===================================================================
--- GNUnet/src/conf/gnunet-win-tool.c   2005-04-18 19:10:54 UTC (rev 663)
+++ GNUnet/src/conf/gnunet-win-tool.c   2005-04-18 20:11:12 UTC (rev 664)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2001 - 2004 Christian Grothoff (and other contributing authors)
+     (C) 2001, 2002, 2003, 2004, 2005 Christian Grothoff (and other 
contributing authors)
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -101,39 +101,26 @@
  */
 void Install()
 {
-  HANDLE hManager, hService;
-  char szEXE[_MAX_PATH + 17] = "\"";
-
-  if (! GNOpenSCManager)
-  {
-    printf("This version of Windows doesn't support services.\n");
-    return;
-  }
-
-  conv_to_win_path("/bin/gnunetd.exe", szEXE + 1);
-  strcat(szEXE, "\" --win-service");
-  hManager = GNOpenSCManager(NULL, NULL, SC_MANAGER_CREATE_SERVICE);
-  if (! hManager)
-  {
-    SetErrnoFromWinError(GetLastError());
-    printf("Error: can't open Service Control Manager: %s\n", 
_win_strerror(errno));
-    return;
-  }
-
-  hService = GNCreateService(hManager, "GNUnet", "GNUnet", 0,
-    SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_NORMAL, szEXE,
-    NULL, NULL, NULL, NULL, NULL);
-
-  if (! hService)
-  {
-    SetErrnoFromWinError(GetLastError());
-    printf("Error: can't create service: %s\n", _win_strerror(errno));
-    return;
-  }
-
-  GNCloseServiceHandle(hService);
-
-  printf("GNUnet service installed successfully.\n");
+       switch(InstallAsService())
+       {
+               case 0:
+                       printf(_("GNUnet service installed successfully.\n"));
+                       break;
+               case 1:
+                       printf(_("This version of Windows doesn't support 
services.\n"));
+                       break;
+               case 2:
+           SetErrnoFromWinError(GetLastError());
+           printf(_("Error: can't open Service Control Manager: %s\n"),
+               _win_strerror(errno));
+                       break;
+               case 3:
+           SetErrnoFromWinError(GetLastError());
+           printf(_("Error: can't create service: %s\n"), 
_win_strerror(errno));
+                       break;
+               default:
+                       printf(_("Unknown error.\n"));                  
+       }
 }
 
 /**
@@ -141,39 +128,30 @@
  */
 void Uninstall()
 {
-  HANDLE hManager, hService;
-
-  if (! GNOpenSCManager)
-  {
-    printf("This version of Windows doesn't support services.\n");
-    return;
-  }
-
-  hManager = GNOpenSCManager(NULL, NULL, SC_MANAGER_CONNECT);
-  if (! hManager)
-  {
-    SetErrnoFromWinError(GetLastError());
-    printf("Error: can't open Service Control Manager: %s\n", 
_win_strerror(errno));
-    return;
-  }
-
-  if (! (hService = GNOpenService(hManager, "GNUnet", DELETE)))
-  {
-    SetErrnoFromWinError(GetLastError());
-    printf("Error: can't access service: %s\n", _win_strerror(errno));
-    return;
-  }
-
-  if (! GNDeleteService(hService))
-  {
-    SetErrnoFromWinError(GetLastError());
-    printf("Error: can't delete service: %s\n", _win_strerror(errno));
-    return;
-  }
-
-  GNCloseServiceHandle(hService);
-
-  printf("Service deleted.\n");
+       switch(UninstallService())
+       {
+               case 0:
+                 printf(_("Service deleted.\n"));
+                       break;
+               case 1:
+                       printf(_("This version of Windows doesn't support 
services.\n"));
+                       break;
+               case 2:
+           SetErrnoFromWinError(GetLastError());
+           printf(_("Error: can't open Service Control Manager: %s\n"),
+               _win_strerror(errno));
+                       break;
+               case 3:
+           SetErrnoFromWinError(GetLastError());
+           printf(_("Error: can't access service: %s\n"), 
_win_strerror(errno));
+                       break;
+               case 4:
+           SetErrnoFromWinError(GetLastError());
+           printf(_("Error: can't delete service: %s\n"), 
_win_strerror(errno));
+                       break;
+               default:
+                       printf(_("Unknown error.\n"));
+       }
 }
 
 /**

Modified: GNUnet/src/conf/wizard.c
===================================================================
--- GNUnet/src/conf/wizard.c    2005-04-18 19:10:54 UTC (rev 663)
+++ GNUnet/src/conf/wizard.c    2005-04-18 20:11:12 UTC (rev 664)
@@ -253,7 +253,6 @@
        chkStart = lookup_widget(vbox14, "chkStart");
        chkEnh = lookup_widget(vbox14, "chkEnh");
        
-       
        sym = sym_find("DISKQUOTA", "FS");
        if (sym)
        {

Modified: GNUnet/src/conf/wizard_callbacks.c
===================================================================
--- GNUnet/src/conf/wizard_callbacks.c  2005-04-18 19:10:54 UTC (rev 663)
+++ GNUnet/src/conf/wizard_callbacks.c  2005-04-18 20:11:12 UTC (rev 664)
@@ -148,6 +148,104 @@
 void
 on_finish_clicked (GtkButton * button, gpointer user_data)
 {
+#ifdef WINDOWS
+       if (doAutoStart)
+       {
+               if (IsWinNT())
+               {
+                       char szErr[250];
+                       
+                       switch(InstallAsService())
+                       {
+                               case 0:
+                               case 1:
+                                       break;
+                               case 2:
+                           SetErrnoFromWinError(GetLastError());
+                           sprintf(szErr, _("Error: can't open Service Control 
Manager: %s\n"),
+                               _win_strerror(errno));
+
+                                       MessageBox(GetActiveWindow(), szErr, 
_("Error"), MB_ICONSTOP | MB_OK);
+                                       return;
+                               case 3:
+                           SetErrnoFromWinError(GetLastError());
+                           sprintf(szErr, _("Error: can't create service: 
%s\n"),
+                               _win_strerror(errno));
+
+                                       MessageBox(GetActiveWindow(), szErr, 
_("Error"), MB_ICONSTOP | MB_OK);
+                                       return;
+                               default:
+                                       MessageBox(GetActiveWindow(), 
_("Unknown error"), _("Error"),
+                                               MB_ICONSTOP | MB_OK);
+                       }
+               }
+               else
+               {
+                       char szPath[_MAX_PATH + 1];
+                       conv_to_win_path("/bin/gnunetd.exe", szPath);
+                       
+                       if (RegSetValue(HKEY_LOCAL_MACHINE,
+                               
"Software\\Microsoft\\Windows\\CurrentVersion\\Run", REG_SZ, szPath, 
+                               strlen(szPath)) != ERROR_SUCCESS)
+                       {
+                       MessageBox(GetActiveWindow(), _("Cannot write to the 
regisitry"),
+                               _("Error"), MB_ICONSTOP | MB_OK);               
                        
+                       }
+               }
+       }
+       else
+       {
+               if (IsWinNT())
+               {
+                       char szErr[250];
+                       
+                       switch (UninstallService())
+                       {
+                               case 0:
+                               case 1:
+                                       break;
+                               case 2:
+                           SetErrnoFromWinError(GetLastError());
+                           sprintf(szErr, _("Error: can't open Service Control 
Manager: %s\n"),
+                               _win_strerror(errno));
+
+                                       MessageBox(GetActiveWindow(), szErr, 
_("Error"), MB_ICONSTOP | MB_OK);
+                                       return;
+                               case 3:
+                           SetErrnoFromWinError(GetLastError());
+                           sprintf(szErr, _("Error: can't access the service: 
%s\n"),
+                               _win_strerror(errno));
+
+                                       MessageBox(GetActiveWindow(), szErr, 
_("Error"), MB_ICONSTOP | MB_OK);
+                                       return;
+                               case 4:
+                           SetErrnoFromWinError(GetLastError());
+                           sprintf(szErr, _("Error: can't delete the service: 
%s\n"),
+                               _win_strerror(errno));
+
+                                       MessageBox(GetActiveWindow(), szErr, 
_("Error"), MB_ICONSTOP | MB_OK);
+                                       break;
+                               default:
+                                       MessageBox(GetActiveWindow(), 
_("Unknown error"), _("Error"),
+                                               MB_ICONSTOP | MB_OK);           
                                                
+                       }
+               }
+               else
+               {
+                       HKEY hKey;
+                       
+                 if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+                       "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, 
KEY_SET_VALUE,
+                       &hKey) == ERROR_SUCCESS)
+                 {
+                   RegDeleteValue(hKey, "GNUnet");
+               
+                   RegCloseKey(hKey);
+                 }
+               }
+       }
+#endif
+       
        if (save_conf())
                gtk_widget_destroy(curwnd);
 }

Modified: GNUnet/src/include/gnunet_util.h
===================================================================
--- GNUnet/src/include/gnunet_util.h    2005-04-18 19:10:54 UTC (rev 663)
+++ GNUnet/src/include/gnunet_util.h    2005-04-18 20:11:12 UTC (rev 664)
@@ -2296,7 +2296,9 @@
  */
 #ifdef WINDOWS
 void EnumNICs(PMIB_IFTABLE *pIfTable, PMIB_IPADDRTABLE *pAddrTable);
-int PopulateNICCombo(HWND hCombo);
+int ListNICs(void (*callback) (char *, int));
+int InstallAsService();
+int UninstallService();
 #endif
 
 /* ifndef GNUNET_UTIL_H */

Modified: GNUnet/src/util/win/win.cc
===================================================================
--- GNUnet/src/util/win/win.cc  2005-04-18 19:10:54 UTC (rev 663)
+++ GNUnet/src/util/win/win.cc  2005-04-18 20:11:12 UTC (rev 664)
@@ -415,6 +415,69 @@
   return YES;
 }
 
+/**
+ * @brief Installs the Windows service
+ * @returns 0 on success
+ *          1 if the Windows version doesn't support services
+ *          2 if the SCM could not be opened
+ *          3 if the service could not be created
+ */
+int InstallAsService()
+{
+  SC_HANDLE hManager, hService;
+  char szEXE[_MAX_PATH + 17] = "\"";
+
+  if (! GNOpenSCManager)
+    return 1;
+
+  conv_to_win_path("/bin/gnunetd.exe", szEXE + 1);
+  strcat(szEXE, "\" --win-service");
+  hManager = GNOpenSCManager(NULL, NULL, SC_MANAGER_CREATE_SERVICE);
+  if (! hManager)
+    return 2;
+
+  hService = GNCreateService(hManager, "GNUnet", "GNUnet", 0,
+    SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_NORMAL, szEXE,
+    NULL, NULL, NULL, NULL, NULL);
+
+  if (! hService)
+    return 3;
+
+  GNCloseServiceHandle(hService);
+
+  return 0;
 }
 
+/**
+ * @brief Uninstall Windows service
+ * @returns 0 on success
+ *          1 if the Windows version doesn't support services
+ *          2 if the SCM could not be openend
+ *          3 if the service cannot be accessed
+ *          4 if the service cannot be deleted
+ */
+int UninstallService()
+{
+  SC_HANDLE hManager, hService;
+
+  if (! GNOpenSCManager)
+    return 1;
+
+  hManager = GNOpenSCManager(NULL, NULL, SC_MANAGER_CONNECT);
+  if (! hManager)
+    return 2;
+
+  if (! (hService = GNOpenService(hManager, "GNUnet", DELETE)))
+    return 3;
+
+  if (! GNDeleteService(hService))
+    return 4;
+
+  GNCloseServiceHandle(hService);
+
+       return 0;
+}
+
+}
+
 #endif





reply via email to

[Prev in Thread] Current Thread [Next in Thread]