From 1be2ca44ca41c9a66902b7be0421253a454f4a49 Mon Sep 17 00:00:00 2001 From: luca Date: Thu, 26 Feb 2009 11:01:21 +0000 Subject: [PATCH] =?UTF-8?q?Patch=20level=20=20=20=20=20=20=20=20=20:10.0?= =?UTF-8?q?=20250=20Files=20correlati=20=20=20=20=20:=20Ricompilazione=20D?= =?UTF-8?q?emo=20:=20[=20]=20Commento=20=20=20=20=20=20=20=20=20=20=20=20:?= =?UTF-8?q?=200001189:=20da=20corso=2025-2=20Descrizione=20=20se=20install?= =?UTF-8?q?o=20un=20client=20di=20rete=20mi=20permette=20di=20cambiare=20i?= =?UTF-8?q?l=20percorso=20da=20cui=20installare=20le=20patch=20pur=20non?= =?UTF-8?q?=20avendo=20attivo=20il=20bottone=20rileggi=20=C3=A8=20possibil?= =?UTF-8?q?e=20cliccare=20su=20installa=20o=20confermare=20con=20invio.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://10.65.10.50/trunk@18360 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ba/ba1700.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 4 deletions(-) diff --git a/ba/ba1700.cpp b/ba/ba1700.cpp index 2f8fe472a..961247e32 100755 --- a/ba/ba1700.cpp +++ b/ba/ba1700.cpp @@ -158,6 +158,7 @@ protected: bool post_process(TInstall_ini& ini, const char* module) const; bool get_patches_path(TFilename& path) const; void parse_internet_path(TString& http_server, TFilename& http_path) const; + bool is_program_dir(const TFilename& path); public: bool installed() const { return _installed;} @@ -1624,6 +1625,39 @@ bool TInstaller_mask::on_key(KEY key) return ok; } +//metodo per controllare se la directory indicata contiene una installazione buona di campo +bool TInstaller_mask::is_program_dir(const TFilename& path) +{ + bool ok = false; + TFilename work_path = path; + + //controlla l'esistenza di alcuni files chiave di campo + work_path.add("install.ini"); + if (work_path.exist()) + { + work_path = path; + work_path.add("campo.ini"); + if (work_path.exist()) + { + work_path = path; + work_path.add("campo.aut"); + if (work_path.exist()) + { + work_path = path; + work_path.add("ba0.exe"); + if (work_path.exist()) + { + work_path = path; + work_path.add("xvaga.dll"); + if (work_path.exist()) + ok = true; //minchia che diffidente! + } + } + } + } + return ok; +} + TInstaller_mask::TInstaller_mask() : TArray_sheet(0, 0, 0, 0, TR("Installazione"), HR("@1|Modulo@32|Cod.@3|Versione da\ninstallare@11|Liv.\nPatch@6|Data\nRilascio@10|Versione\nInstallata@10|Liv.\nPatch@6|Data\nInstallazione@13|Aggiornamento|Patch Base"), @@ -1653,9 +1687,20 @@ TInstaller_mask::TInstaller_mask() add_string(F_WEB, 0, "", 23, 2, 256, "", 56); set(F_TYPE, "0", 0x1); + //deve conoscere i path adesso per poter testare se sono ok + TInstall_ini ini; + TFilename path = ini.get("DiskPath"); + TFilename webpath = ini.get("WebPath"); + //un client non puo' scegliere a caso da dove aggiornarsi!Solo dal suo server! if (_station_type == 3) - rf.disable(); + { + rf.disable(); + bool ko = !is_program_dir(path); + if (ko) + warning_box(TR("La cartella origine dei programmi NON è valida!\nSelezionarne una valida e premere 'Invio'.")); + enable(F_PATH, ko); + } add_string(F_CURPATH, 0, PR("Installa in "), 1, 3, 80, "D", 58); @@ -1665,9 +1710,6 @@ TInstaller_mask::TInstaller_mask() set_handler(F_UPDATE, update_handler); set_handler(DLG_USER, tutti_handler); - TInstall_ini ini; - TFilename path = ini.get("DiskPath"); - TFilename webpath = ini.get("WebPath"); //se il webpath è vuoto o di test, propone quello in oem.ini; non ammette che possa essere proposto un path.. //..di tipo test per impedire all'utonto di aggiornarsi da test prima di essere passato da release