(1) 2 3 »


[Terminé] Live Update
Animateur WDF
Inscrit:
05/06/2003 14:23
De Québec
Post(s): 511
Salut,

Je suis confronté à un problème depuis maintenant 2 jours à peu prés.

Je met en pratique le live update via un serveur HTTP et un serveur FTP.

Dans le cas ou je met pas de login et de mot de passe tout ce passe à la perfection.

La ou ça commence à poser problème c'est donc lors de la mise en place d'un login et d'un mot de passe sur le site HTTP et aussi sur le ftp.

J'ai d'abord modifié wdsetup qui n'était pas prévu pour un tel cas. Ça fonctionne.

Mais dès que je me connecte sur le site en question et que je click sur Install.EXE et que j'exécute, il ouvre une fenêtre qui logiquement se connecte, télécharge et installe et c'est la que ça fonctionne pas. J'ai beau fouillé sur tout le disque je trouve pas cette fenêtre pour pouvoir faire une trace pour savoir ce qu'il se passe et au préalable modifier pour que ça fonctionne correctement.

Quelqu'un à t'il déjà fait ça et si oui comment ? ou de quel façon ?

Et ce qui serait super c'est ou trouver le source de cette fenêtre et aussi celle qui est utilisée lors d'une mise à jour de l'application.

Merci d'avance

Contribution le : 14/07/2010 17:12

Edité par Oceans sur 19/7/2010 15:18:59
Edité par Oceans sur 20/7/2010 21:43:41
Edité par Oceans sur 21/7/2010 21:07:29
Créer un fichier PDF de la contribution Imprimer


Re: Live Update

Inscrit:
19/11/2002 12:20
Post(s): 390
Pour l'url il suffit de mettre:
http://login:password@www.monsite.com/soft/test/

Et le test / upload FTP se passe correctement.

Toutefois je confirme le problème pour le install.exe. Après des captures de packet on dirait que l'install.exe n'est pas capable d'interpréter quand on lui donne un login + password dans l'url, il ne contacte même pas le serveur via TCP-IP (http).
En revanche je doute que le source soit livré pour ce launcher qui semble s'appeler "wdautoex".





Je vais essayer de détailler ce que j'ai compris après quelques tests:
L'installateur "réseau" (fait par créer la procédure d'installation) une fois que tu as renseigné l'url, le login/password FTP etc... écrit / modifie le "install.exe" et mets à l'intérieur de celui-ci l'url.
Le client télécharge (ou lance) le install.exe et celui-ci lit alors "en interne" la bonne URL, sauf que, manque de bol, il interprète donc mal le login + pass dans notre cas et fait une requête bidon sur le réseau interne.
Bizarrement d'ailleurs il semble avoir plus ou moins le même comportement qu'IE 8 qui ne semble plus supporter la syntaxe "
http://login:password@www.monsite.com/soft/test/
" alors que Chrome et FF oui.

Bref une fois le install.exe lancé, il télécharge les différents fichiers et lance le setup (wdsetup).
Le setup installe le soft.

Ensuite, c'est le soft lui même qui fait le check de la nouvelle version (simple requête GET au serveur HTTP sur un fichier). En cas de différence il tente de lancer /INSTALL/wdsetup.exe qui lance wdsetup2.exe (je suis pas sûr de l'ordre mais on s'en tape).
Alors comment le soft fait'il pour faire le check online comme on ne l'a pas codé pour? Je dirai que le cas a été prévu dès l'origine par PCSOFT dans le code de lancement du projet si le soft trouve un certain fichier là où est l'exe.
En effet l'exe installé sur le client et celui que nous générons (en tant que dév) sur notre poste est le même, au bit près. En fait le check online se fait si le soft trouve "WDUPDATE.NET". Si on le supprime, le check online n'est pas exécuté.
S'il trouve ce fichier, il le lit, récupère dedans l'URL du serveur à checker etc... et le fait.

Donc c'est transparent pour le programmeur.



Edit:
Je suis en train de voir dans wdsetup s'il est fait mention de cet exe (install.exe / wdautoex).

Contribution le : 14/07/2010 19:24
Créer un fichier PDF de la contribution Imprimer


Re: Live Update

Inscrit:
19/11/2002 12:20
Post(s): 390
Ah ah ah ah je suis une patate ^_^

En fait le install.exe est un autoextractible que l'on peut extraire avec winrar.
Il contient en effet à l'intérieur un .ini et un install.exe.
Et en effet le path à l'intérieur a l'air correct:

Au lieu d'avoir:
http://login:password@www.monsite.com/soft/test/


On a:
login:password@www.monsite.com/soft/test/



Ceci dit il n'a pas l'air de le supporter...



Edit:
Ce qui est dommage c'est que dans le code de wdsetup on trouve:
FicRef = gsRecupFic(sServeur,sChemin,"","",NOM_FIC_WDUPDATE)


Qui pointe vers:
PROCEDURE gsRecupFic( _sServeur , _sAppli , _sUser , _sPasse, _sNomFic )

sNomFicUpdate est une chaîne = fFichierTemp("UPD")
sRequete est une chaîne = ["http://"]+_sServeur+["/"]+URLEncode(_sAppli+"/INSTALL/"+_sNomFic)
XTrace("Requete : "+sRequete)

SI HTTPRequête(sRequete,"WDUpdate","","","",_sUser,_sPasse) ALORS
	sResultHTTP est une chaîne = ExtraitChaîne(HTTPDonneRésultat(httpEntête),1,RC)
	SI Position(sResultHTTP,"200")=0 ALORS
		RENVOYER ""
	FIN
	
	sFicWDUpdate est une chaîne = HTTPDonneRésultat(httpRésultat)
	SI fSauveTexte(sNomFicUpdate,sFicWDUpdate) ALORS
		RENVOYER sNomFicUpdate
	FIN
FIN

RENVOYER ""


Donc théoriquement ils pourraient prendre en charge le login / passe via des paramètres supplémentaires dans le .ini.

Ceci dit ce qui m'ennuie plus déjà c'est que de toute façon rien n'est codé (SHA ou autre).
Donc si une personne lit le install.ini ou le wdupdate.net plus tard elle verra le login/mot de passe.
Ceci dit, l'utilisateur doit le connaître de toute façon pour l'install initiale non? Ou alors vous fournissez le install.exe original?


Edit 2:
Bon j'ai trouvé où PC SOFT camoufle ce fameux "install.exe". Il s'appelle en fait "SetupFTP.dat" sur le disque dur (dans Programmes/donnees).


Edit 3:
De toute façon je pense qu'on peut oublier le source.
Le install.exe est un soft écrit en C++ au vu des imports et du fait qu'il n'ait pas besoin des DLL WD150xxx.dll pour fonctionner.
Il faudrait contacter PC Soft directement pour qu'ils puissent vous envoyer le projet source C++.

Contribution le : 14/07/2010 19:37

Edité par lmame sur 14/7/2010 20:01:13
Edité par lmame sur 14/7/2010 20:10:13
Créer un fichier PDF de la contribution Imprimer


Re: Live Update
Animateur WDF
Inscrit:
05/06/2003 14:23
De Québec
Post(s): 511
Ben pour l'instant je pense que c'est l'install d'origine, j'en étais pas rendu aussi loin, j'avais juste vu le coup du wdupdate.net et j'avais vu ou le modifier pour rajouter le login mot de passe c'est la ou j'en suis rendu pour l'instant.

a+++

ps : je savais pas que l'install.exe etait auto extractible avec winrar c'est surement pas l'original donc comment ils font pour le generer dans wdsetup la est la question ...

Contribution le : 14/07/2010 20:07
Créer un fichier PDF de la contribution Imprimer


Re: Live Update

Inscrit:
19/11/2002 12:20
Post(s): 390
Lis les edit, edit 2 et edit 3 du post précédent je viens d'en rajouter ;)
Il n'est pas généré.


Au fait, si tu cherches plutôt "SetupFTP.dat" (vu que le install.exe s'appelle comme ça) dans le projet wdsetup tu verras où il fait appel à lui ;)

// Extraction de SetupFTP.dat
ExtraitFicUtil(NOM_ARC,NOM_SETUPFTP,gclInst:m_stInstChoix:szRepTravail)

// On crée l'exe autoextractible d'installation
nRes = zipCrée("Z",ComplèteRep(gclInst:m_stInstChoix:szRepInst)+NOM_INSTALL+EXT_ZIP)
	nRes = zipAjouteFichier("Z",sCheminINI,zipAucun)
	nRes = zipAjouteFichier("Z",ComplèteRep(gclInst:m_stInstChoix:szRepTravail)+NOM_SETUPFTP,zipAucun)
	nRes = zipChangeChemin("Z",NOM_SETUPFTP,NOM_INSTALL+EXT_EXE)
	nRes = zipCréeExe("Z",ComplèteRep(gclInst:m_stInstChoix:szRepInst)+NOM_INSTALL+"\"+NOM_INSTALL+EXT_EXE)
nRes = zipFerme("Z")
fSupprime(ComplèteRep(gclInst:m_stInstChoix:szRepInst)+NOM_INSTALL+EXT_ZIP)
fSupprime(sCheminINI)
EcritUndo(CMD_EFF_FIC+ComplèteRep(gclInst:m_stInstChoix:szRepInst)+NOM_INSTALL+"\"+NOM_INSTALL+EXT_EXE)

Contribution le : 14/07/2010 20:11
Créer un fichier PDF de la contribution Imprimer


Re: Live Update
Animateur WDF
Inscrit:
05/06/2003 14:23
De Québec
Post(s): 511
re,

plutot tordu comme façon de faire mais bon, j'ai modifie le code pour le .ini pour rajouter le login et le mot de passe je vais voir ce que ca donne pour le fichier setupftp.dat.

Va falloir que pc-soft améliore ça de façon transparente, ça m'étonne qu'ils aient pas pensé à ce genre de situation...

a+++

Contribution le : 14/07/2010 20:39
Créer un fichier PDF de la contribution Imprimer


Re: Live Update

Inscrit:
19/11/2002 12:20
Post(s): 390
Modifier le .ini?
Le truc c'est que le install.exe (ex. wdsetup.dat) n'est pas capable de le "lire" correctement.
On dirait qu'il s'arrête au premier ":".

Contribution le : 14/07/2010 20:44
Créer un fichier PDF de la contribution Imprimer


Re: Live Update
Animateur WDF
Inscrit:
05/06/2003 14:23
De Québec
Post(s): 511
oue je viens de voir ça en faisant le test il arrête l'exécution sans message, sans rien pfff

je sens que je vais galérer sur ce coup la.

Bon je vais essayer un truc pour voir, d'abord je vais vérifier que le .ini soit bon ensuite trouver une façon de contourner le problème.

a+++

Contribution le : 14/07/2010 20:54
Créer un fichier PDF de la contribution Imprimer


Re: Live Update

Inscrit:
19/11/2002 12:20
Post(s): 390
Le gros problème c'est que la variable "SERVEUR" ne permets que de stocker le serveur. Même pas un path par définition. Si tu rajoutes quoi que ce soit (même le code ASCII ou autre genre %20 etc...) apparemment il détecte qu'un truc ne va pas et ne fait rien.
Tu pourrais peut être rajouter les infos de login/password dans le path "CHEMIN", genre:
CHEMIN=soft/INSTALL/login/password

Et récupérer les valeurs en PHP depuis l'URL par exemple et voir si le login / pass sont correctes. Ca ça fonctionne.

Le truc c'est que du coup le install.exe va chercher à tout télécharger dans "soft/INSTALL/login/password/".
Donc il faudrait derrière ou modifier l'URL de manière transparente, ou toi même envoyer le fichier demandé en PHP ce qui est tout à fait possible avec les headers.

Dans ce cas tu loades le "soft/INSTALL/toto.zip" dans ton script PHP et tu l'envoies comme un fichier .zip.
L'installateur n'y verra que du feu mais bon il faudra que le serveur Apache + PHP suive derrière ;)

Mais bon... Le mieux serait que PC Soft en effet se penche dessus et crée deux champs dans le ini, login et password ou rende le source accessible, mais pour ça il faudra que tu les contactes.

Edit:
Ceci dit... Ce soft ne fait "que" télécharger les fichiers nécessaires.
Ca devrait franchement pas être dur à coder et à remplacer.
Il suffit juste de penser à intégrer les DLL dans l'exe, mais ça risque de le rendre assez lourd à télécharger ^_^
Ou alors sans framework et si le gars ne l'a pas il sera téléchargé automatiquement.

Contribution le : 14/07/2010 20:57
Créer un fichier PDF de la contribution Imprimer


Re: Live Update
Animateur WDF
Inscrit:
05/06/2003 14:23
De Québec
Post(s): 511
Bon ben la je suis dans une impasse, j'ai essayé dans le nom du serveur web user:pass@nomdusite pour voir comment il allait réagir et c'est pareil le programme d'installation s'arrête direct sans message.

Maintenant faire moi même une procédure d'installation qui lance wdsetup ouf pas sur que j'arrive à faire ça, et ça risque de me prendre un temps fou je pense même...

a+++

Contribution le : 14/07/2010 22:11
Créer un fichier PDF de la contribution Imprimer


Re: Live Update

Inscrit:
19/11/2002 12:20
Post(s): 390
Pourquoi tu ne contactes pas PC Soft?
Une requête au ST ne te coûtera rien et qui sait peut être que tu auras de la chance :)

Contribution le : 14/07/2010 22:17
Créer un fichier PDF de la contribution Imprimer


Re: Live Update
Animateur WDF
Inscrit:
05/06/2003 14:23
De Québec
Post(s): 511
J'y avais pensé avant de demander ici :) Il me reste juste à attendre leur réponse.

Je ferais une remontée d'information dès que j'en saurais plus.

Cela pourra certainement servir pour d'autres personnes qui souhaiteraient utiliser ce même procédé.

a+++

Contribution le : 15/07/2010 13:17
Créer un fichier PDF de la contribution Imprimer


Re: Live Update
Animateur WDF
Inscrit:
05/06/2003 14:23
De Québec
Post(s): 511
Salut,

Voici déjà une partie des informations.

Fenêtre ASSETUP plan 24 bouton tester, modifier la procédure TestFtp remplacer :

SI HTTPRequête(URLEncode("http://"+sReq+"testftp.html") alors

par

SI HTTPRequête(URLEncode("http://"+sReq+"testftp.html"),"","","","",sLoginFTP,sMotDePasseFTP) ALORS

ensuite pour ceux qui le désire et forcer la mise à jour obligatoirement sans laisser de choix il y à la fenêtre DiffVersion à modifier.

Il semblerait que la fenêtre qui apparait lors de l'installation est aussi dans wdsetup, je l'ai pas encore trouvé mais je continue mes recherches.

a+++

Contribution le : 15/07/2010 15:38
Créer un fichier PDF de la contribution Imprimer


Re: Live Update
Animateur WDF
Inscrit:
05/06/2003 14:23
De Québec
Post(s): 511
J'ai reçu une réponse de PC-SOFT qui m'envois sur un lien web qui explique comment ça fonctionne mais malheureusement je n'ai pas vu de mention spéciale pour un login et un mot de passe.

J'attends leur réponse à ce sujet.

Voici le lien que j'ai eu : http://faq.pcsoft.fr/faqread.awp?idfaq=3102&search=http

allez voir le blog en cliquant sur le lien

a+++

Contribution le : 15/07/2010 16:40
Créer un fichier PDF de la contribution Imprimer


Re: Live Update
Animateur WDF
Inscrit:
05/06/2003 14:23
De Québec
Post(s): 511
Bon je viens de découvrir quelque chose qui devrait expliquer le non fonctionnement.

Je reviens donc sur le Install.ini ou l'on met le nom du site

si on met user:pass@nom.du.site ça fonctionne pas.

Si on essaye avec internet explorer et qu'on essaye d'accéder au site http://user:pass@nom.du.site il va sortir une erreur qui dit qu'il ne connait pas la syntaxe. Et comme les fonctions de PC-SOFT s'appuie sur windows, ça expliquerait donc pourquoi ça bloque.

Tandis que sur Firefox par exemple si on essaye la même chose, il demande une confirmation et on accède au site sans problème.

Maintenant existe t'il un moyen de dire à internet explorer d'accepter ce genre de syntaxe ? et si oui comment ?

a++

Contribution le : 15/07/2010 17:03
Créer un fichier PDF de la contribution Imprimer


Re: Live Update

Inscrit:
19/11/2002 12:20
Post(s): 390
Citation :

Il semblerait que la fenêtre qui apparait lors de l'installation est aussi dans wdsetup, je l'ai pas encore trouvé mais je continue mes recherches.

a+++


J'ai cherché l'autre jour dans toutes les fenêtres et je ne l'ai pas trouvée.
La raison est simple, pour moi ce programme "install.exe" de départ est écrit via Visual Studio pour justement se passer des DLL Windev lors de l'install initiale.
Au vu des imports (dll / composants appelés) de cet exe je le pense vraiment :)
Je parle de celui qui est téléchargé depuis la page internet.
Il télécharge le wdsetup, le framework et le reste et lance wdsetup derrière.
J'ai testé sur un 2003 server sans framework windev dessus et il a fonctionné.
J'ai testé un exe wd15 qui lui a détecté le manque de DLL et m'a demandé de télécharger le framework pcsoft.
Donc cqfd, ce soft est PAS en windev.


Citation :

Oceans a écrit:
Voici le lien que j'ai eu : http://faq.pcsoft.fr/faqread.awp?idfaq=3102&search=http

allez voir le blog en cliquant sur le lien

a+++

Ok rien à voir avec le pastis là c'est pour une question de mime (formats de fichier à télécharger.


Citation :

Oceans a écrit:
Bon je viens de découvrir quelque chose qui devrait expliquer le non fonctionnement.

Je reviens donc sur le Install.ini ou l'on met le nom du site

si on met user:pass@nom.du.site ça fonctionne pas.

Si on essaye avec internet explorer et qu'on essaye d'accéder au site http://user:pass@nom.du.site il va sortir une erreur qui dit qu'il ne connait pas la syntaxe. Et comme les fonctions de PC-SOFT s'appuie sur windows, ça expliquerait donc pourquoi ça bloque.

Tandis que sur Firefox par exemple si on essaye la même chose, il demande une confirmation et on accède au site sans problème.

Maintenant existe t'il un moyen de dire à internet explorer d'accepter ce genre de syntaxe ? et si oui comment ?

a++

Oui je l'avais marqué dans mes posts l'histoire de IE et FF ;)
Malheureusement il n'est pas vraiment possible de passer outre pour IE en bidouillant j'avais essayé.
Il est peut être possible de changer le comportement d'IE:
http://support.microsoft.com/kb/834489

Ceci dit ça implique des changements sur le poste client donc à éviter j'imagine :)

Contribution le : 15/07/2010 19:45
Créer un fichier PDF de la contribution Imprimer


Re: Live Update
Animateur WDF
Inscrit:
05/06/2003 14:23
De Québec
Post(s): 511
Merci imame tu viens de mettre le doigt dessus. Modifier le poste y aura aucun soucis, la première installation c'est nous qui allons la faire sur chaque poste des représentants.

Donc nous modifierons la base de registre en conséquence, l'utilisateur finale ne le saura pas.

a+++

Contribution le : 15/07/2010 20:08
Créer un fichier PDF de la contribution Imprimer


Re: Live Update
Animateur WDF
Inscrit:
05/06/2003 14:23
De Québec
Post(s): 511
Malheureusement après avoir fait mon test avec install.exe cela ne semble pas suffire...

Damned moi qui pensait que j'étais rendu au bout du tunnel, eh bien non pffff...

a+++

Contribution le : 15/07/2010 20:11
Créer un fichier PDF de la contribution Imprimer


Re: Live Update

Inscrit:
19/11/2002 12:20
Post(s): 390
Ok essaie ce projet que je viens de faire.

Il remplace tout simplement le "install.exe"...
J'ai rajouté également dans le INSTALL.INI à fournir avec deux champs, LOGIN et PASSWORD dans lesquels tu dois mettre le login et le password pour accéder à l'URL.

Il fait exactement ce que fait "install.exe", c'est à dire qu'il récupère le "INSTALL.ZIP", le dézippe et lance wdsetup.exe.
Il y a un exe de prêt avec un INTALL.INI de démo dans le dossier "EXE".
Il est très lourd car j'ai intégré dans l'exe les DLL pcsoft. Après... A toi de voir.

Evidemment ça ne fait que la partie "install.exe". Ne pas oublier de mettre le bon login/pass pour le wdsetup également mais ça tu avais l'air de l'avoir déjà fait.

Bon j'ai codé ça rapidement donc à tester et customizer mais ça a marché pour moi.

Ci-joint le projet complet WD15 (source + exe).
http://www.lmame-bug.com/inst_lma.rar

Donc pour tester pour toi ça devrait être assez simple, mets les bonnes valeurs dans le INSTALL.INI au départ pour tester (nom du soft, path serveur, CHEMIN, login et password) et lance "inst_lma.exe".
En cliquant sur le bouton install il devrait se connecter à ton serveur et télécharger le INSTALL.ZIP dans le sous dossier TEMP.
Puis le dézipper dans "TEMP/nomtemporaire/" et lancer wdsetup avec la bonne ligne de commande.

Si ça marche il restera un peu de taf, genre l'adapter et utiliser celui là à la place d'install.exe mais bon...

Contribution le : 16/07/2010 12:09
Créer un fichier PDF de la contribution Imprimer


Re: Live Update
Animateur WDF
Inscrit:
05/06/2003 14:23
De Québec
Post(s): 511
Un grand merci imame, chapeau, c'était dans mes prévisions de développer moi même un projet d'installation, tu m'as devancé.

Je vais regarder tout ça, l'améliorer si le besoin se fait sentir.

Encore Merci.

a+++

Contribution le : 16/07/2010 13:31
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant
(1) 2 3 »




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2