ZMWS - Forum

Vous n'êtes pas connecté.

#1 02/10/2005 15:43:26

Raph
Invité

ZMWS Loader

Salut xavier,

Et bravo pour ton serveur web ZazouMiniWebServer qui m'a vraiment convaincu quand je l'ai essayé.

Je suis en train de développé un petite interface de chargement/paramètrage pour ZMWS (qui sera cadeau ici bientôt).

J'utilise pour cela la DLL "ZazouMiniWebServer.dll" qui permet de démarrer/arréter le serveur.
Ca marche bien mais avec PHP, j'ai des fenètres type "ligne de commande" qui s'affichent et disparaisent quand le serveur doit traiter une page PHP.

En fait, y'a 2 fenètres "php-cgi.exe" qui apparaissent et disparaissent aussitot pendant le chargement des pages PHP.

Je pensais que ça venait de mon code mais c'est la même chose avec ton appli "ZMWSMonitor.exe".

As-tu une idée de la source du problème ?

Enfin, j'ai réalisé quelques modifs (simplification, amélioration) dans le code source de ZMWS.
Comment ça se passer pour te faire passer tout ca ?
Je poste ici ou je t'envoie un mail ?

A+, Raph

 

#2 03/10/2005 10:44:44

xavier
ZazouGourou
Lieu: ZazouLand
Date d'inscription: 09/09/2004
Messages: 2847
Site web

Re: ZMWS Loader

Salut,

Merci d'avance pour ton travail.

Pour l'instant, le mieux est de m'envoyer un mail.

Les fenêtres php-cgi.exe n'apparaissent pas quand on travaille déjà dans une console mais effectivement en utilisant la dll oui. Il faut que je regarde ça, ce sera nécessaire de s'en occupper pour sortir une vraie version windows ...

On doit pouvoir s'en sortir et ajoutant STARTF_USESHOWWINDOW au dwFlags de CreateProcess et en positionnant wShowWindow à SW_HIDE (dans StartPHP)

A vérifier ...


http://www.zmws.com/pictures/zmwsbanniere.jpg
Ultimate fighting server : Combattre zazou - Rejoindre le clan !!!
ZMWS Ville : Devenez un habitant

Hors ligne

 

#3 03/10/2005 10:46:58

xavier
ZazouGourou
Lieu: ZazouLand
Date d'inscription: 09/09/2004
Messages: 2847
Site web

Re: ZMWS Loader

Dans un registre plus global, je pense qu'il faudrait pouvoir spécifier un pipe à utiliser pour les sorties habituellement redirigées vers la console. Pour faire un onglet ou une fenêtre "log" dans l'appli.

Qu'en penses-tu ?

a+


http://www.zmws.com/pictures/zmwsbanniere.jpg
Ultimate fighting server : Combattre zazou - Rejoindre le clan !!!
ZMWS Ville : Devenez un habitant

Hors ligne

 

#4 03/10/2005 20:06:19

Raph
ZazouExplorer
Date d'inscription: 03/10/2005
Messages: 21

Re: ZMWS Loader

Salut,
En mettant le code suivant dans la fonction StartPHP, les fenètres semblent disparaitre... Enfin je n'ai que Dev-cpp et c'est pas le top pour compiler la DLL.

si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE;

Si tu pouvais intégrer ces 2 lignes et tenter de compiler une nouvelle DLL.

Sinon, ça serait cool d'ajouter une ou deux fonctions simples à la DLL pour récupérer le n° de port du serveur et le path des logs par exemple.
Pour le loader, ça me permettrait de récupérer ça du serveur sans avoir à parser une fois de + le fichier de config (quand il existe).

Pour ce qui est du pipe, je suis pas très familiariser à ce type de programmation, mais je vais me documenter un peu...

A+, Raph

Hors ligne

 

#5 03/10/2005 21:35:31

xavier
ZazouGourou
Lieu: ZazouLand
Date d'inscription: 09/09/2004
Messages: 2847
Site web

Re: ZMWS Loader

Merci pour le test, j'intègre ça dans la 0.8.14, que je sortirai pour php5.1.0 histoire de faire d'une pierre 2 coups.

Pour le pipe, c'est simple en fait au lieu d'écrire sur la console, j'écris dans un handle fourni par le prog qui charge la dll et la dll peut récupérer le contenu en lisant le handle de l'autre bout du pipe.

Pour la récupération de la config, je suis entièrement d'accord. Récupérer l'objet ZMWSConfig en lecture seule serait bien.

a+


http://www.zmws.com/pictures/zmwsbanniere.jpg
Ultimate fighting server : Combattre zazou - Rejoindre le clan !!!
ZMWS Ville : Devenez un habitant

Hors ligne

 

#6 09/10/2005 18:33:02

Raph
ZazouExplorer
Date d'inscription: 03/10/2005
Messages: 21

Re: ZMWS Loader

Salut,

J'ai mis en ligne mon petit loader pour ZMWS.
Il est dispo sur http://devplanete.free.fr/ avec une petite capture d'écran.

C'est seulement la première version et donc il manque des fonctions et il y a surement des bugs. Il faut bien commencer lol.

Pour développer la fonction d'accès à la config :
- soit la DLL me fournit les infos
- soit je parse le fichier de config

Si la DLL faisait le boulot (ça serait ça de moins à faire pour moi smile ) mais surtout c'est plus logique pour obtenir la configuration courante du serveur.

Pour l'instant le loader ouvre le fichier de log dans l'emplacement par défaut et ouvre la page web sur le port par défaut 80.
Il faudrait ajouter des fonctions simples dans la DLL pour retourner ces infos.

La fonction zmws_start par exemple pourrait retourner le n° de port du serveur quand il démarre correctement.


Dernière chose, quand on ouvre le fichier de log avec notepad (les sauts de lignes sont foireux). Ca me gène pas + que ça vu que j'utilise Notepad2 mais c'est pas méchant à modifier dans ton code pour corriger cela.

A+, Raph

Hors ligne

 

#7 09/10/2005 20:36:01

Isaac
ZazouCommander
Lieu: Belgique
Date d'inscription: 09/01/2005
Messages: 168

Re: ZMWS Loader

Salut !

Bravo pour le travail ...
Seulement voilà, il y a un problème de taille ... (ca rime en plus smile)

Quand on démarre ZMWS, no problem, quand je rajoute dans la barre URL des noms de dossier pour aller à une page personelle, il marche ... Mais quand je demande de recharger la page, il réfléchi sans s'arrêter (il "cherche" la page depuis environ cinq minutes ...).

Je ne sais pas si c'est la DLL ou si c'est ZMWS_Loader qui foire, mais en tout cas, ça foire quand même ...

Bon courage donc, wink

++

Hors ligne

 

#8 10/10/2005 09:39:16

xavier
ZazouGourou
Lieu: ZazouLand
Date d'inscription: 09/09/2004
Messages: 2847
Site web

Re: ZMWS Loader

Salut,

Je ne l'ai pas testé encore mais:
- Oui, je remplace le n par un endl pour les logs. Ca devrait ainsi convenir à notepad.
- Je trouve dommage que tu ne diffuse pas les sources, mais c'est ton droit.
- J'ajouterai ce qu'il faut à la Dll pour la 0.8.14.
- Du joli boulot apparemment, je ferai un test ce midi je pense.
- Ca mériterait une entrée ici: http://www.xgarreau.org/forum5/?8 smile

a+


http://www.zmws.com/pictures/zmwsbanniere.jpg
Ultimate fighting server : Combattre zazou - Rejoindre le clan !!!
ZMWS Ville : Devenez un habitant

Hors ligne

 

#9 10/10/2005 17:46:57

Raph
ZazouExplorer
Date d'inscription: 03/10/2005
Messages: 21

Re: ZMWS Loader

Salut,

Content que mon petit loader vous plaise smile...

Je vais tester le problème de rechargement des pages mais à première vue, je pense plutôt pour un soucis de DLL (je me contente de démarrer/arrêter le serveur).

Pour les sources, je les diffuserais sûrement quand j'aurais organisé un peu mon code. C'est du C++ pur avec appel direct aux API Windows et traitement des messages donc un peu brouillon pour le moment.

A+, Raph

Hors ligne

 

#10 10/10/2005 18:49:56

xavier
ZazouGourou
Lieu: ZazouLand
Date d'inscription: 09/09/2004
Messages: 2847
Site web

Re: ZMWS Loader

Salut,

J'ai mis une dll mise à jour ici:
http://fichiers.xgarreau.org/zazouminiw … Server.dll

J'ai juste modifié les fins de lignes pour les logs et la structure STARTUP_INFO pour suppprimer les fenêtres php. J'ajouterai la config plus tard.

J'avais un plantage en quittant avec ta dll, avec celle ci, ça ne plante plus chez moi (Win2000).

Isaac, je n'ai pas réussi à reproduire ce que tu expliques et j'ai testé des pages statiques, du listing de répertoires et des fichiers php. Qu'as tu fais exactement ? Pour que je puisse le reproduire ?

a+


http://www.zmws.com/pictures/zmwsbanniere.jpg
Ultimate fighting server : Combattre zazou - Rejoindre le clan !!!
ZMWS Ville : Devenez un habitant

Hors ligne

 

#11 10/10/2005 19:01:22

xavier
ZazouGourou
Lieu: ZazouLand
Date d'inscription: 09/09/2004
Messages: 2847
Site web

Re: ZMWS Loader

Je note que endl ne plait pas plus à notepad que n, il lui faut peut être rn. C'est pénible, wordpad et webalizer sont très contents avec les autres smile

a+


http://www.zmws.com/pictures/zmwsbanniere.jpg
Ultimate fighting server : Combattre zazou - Rejoindre le clan !!!
ZMWS Ville : Devenez un habitant

Hors ligne

 

#12 11/10/2005 13:28:22

Raph
ZazouExplorer
Date d'inscription: 03/10/2005
Messages: 21

Re: ZMWS Loader

Exacte je pense que rn devrait plus plaire à Notepad.
Sinon, la modif de la structure STARTUP_INFO suppprime bien les fenêtres php.

Ca serait bien que tu ajoutes des informations de versions à la DLL (à l'EXE aussi d'ailleurs).
Car sans ça, c'est pas évident de différentier la nouvelle version de l'anciènne.

A+, Raph

Hors ligne

 

#13 11/10/2005 13:36:55

xavier
ZazouGourou
Lieu: ZazouLand
Date d'inscription: 09/09/2004
Messages: 2847
Site web

Re: ZMWS Loader

Complètement psychotique ce notepad ...

Pour les infos de version, au sens ressources, je me tate. Je pencherais plus pour un fonction.

Quoique, un HEAD / HTTP/1.0 sur le port 80 te donne la version wink.

S'agissant d'un clic droit sur propriétés, ce serait effectivement plus pratique ...

a+


http://www.zmws.com/pictures/zmwsbanniere.jpg
Ultimate fighting server : Combattre zazou - Rejoindre le clan !!!
ZMWS Ville : Devenez un habitant

Hors ligne

 

#14 11/10/2005 19:57:06

Raph
ZazouExplorer
Date d'inscription: 03/10/2005
Messages: 21

Re: ZMWS Loader

Oui je pensais aux infos de version, au sens ressources...
C'est pratique pour identifier tout de suite la version qu'on utilise wink


Pendant que j'y suis, petite amélioration pour le fichier ZMWSCONFIG.cpp, dans le constucteur de la classe.

Tu peux remplacer ta série de 9 fois :

---------------------------------------------------------------------------------
    if (!phpOK) {
        pathToPHP = "php\php-cgi";
        if ( ! ZMWSFileUtils::fileExists((pathToPHP+".exe").c_str())) {
            pathToPHP = "";
        } else {
            phpOK = 1;
        }
    }.....
---------------------------------------------------------------------------------

Par cette boucle :

---------------------------------------------------------------------------------
    const char* valid_pathToPHP[] = {
                            "php\php-cgi",
                            "c:\php\php-cgi",
                            "c:\php4\php-cgi",
                            "c:\php5\php-cgi",
                            "php5\php",
                            "php\php",
                            "c:\php\php",
                            "c:\php4\php",
                            NULL
                            };

    /* Try to find php */
    BYTE phpOK = 0;
    WORD j = 0;

    if ( ! ZMWSFileUtils::fileExists((pathToPHP+".exe").c_str())) {
        while (valid_pathToPHP[j] && !phpOK) {
               pathToPHP = valid_pathToPHP[j];
            if ( ! ZMWSFileUtils::fileExists((pathToPHP+".exe").c_str())) {
                pathToPHP = "";
            } else {
                phpOK = 1;
            }
            j++;
        }
    }
---------------------------------------------------------------------------------

Heu... sans les espaces ça rend pas très bien je sais.
La prochaine fois je t'enverrais des fichiers plutot wink

A+, Raph

Hors ligne

 

#15 12/10/2005 22:49:06

xavier
ZazouGourou
Lieu: ZazouLand
Date d'inscription: 09/09/2004
Messages: 2847
Site web

Re: ZMWS Loader

Bon, j'ai ajouté une version pour la dll ...

Je n'ai pas changé les endl en rn, tant pis pour notepad pour l'instant.

J'ai ajouté zmws_get_config, on l'utilise comme ça:
http://fichiers.xgarreau.org/zazouminiw … onsole.cpp

Sachant qu'on récupère une struct définie comme ça:
struct BaseZMWSConfig 
{
    int port;
    std::string BindAddr;
    std::string documentRoot;
    std::string logsDir;
    std::string pathToConfigFile;
    std::string pathToPHP;
    std::string defCharSet;
    std::string startPages;
    std::string allowFrom;
    DWORD maxClients;
    BOOL hideConsole;
    BOOL try808xPorts;
    BOOL canIndex;
    BOOL beQuiet;
    BOOL canStop;
    BOOL closeBrowser;
    BOOL reverseDNS;
    BOOL writeLogs;
    BOOL browseNow;
    BOOL dropClients;
};

a+


http://www.zmws.com/pictures/zmwsbanniere.jpg
Ultimate fighting server : Combattre zazou - Rejoindre le clan !!!
ZMWS Ville : Devenez un habitant

Hors ligne

 

#16 13/10/2005 19:13:49

Raph
ZazouExplorer
Date d'inscription: 03/10/2005
Messages: 21

Re: ZMWS Loader

Bon travail,
Je vais regardé ça de + prêt et faire évoluer ZMWS Loader en conséquence.

PS : tu as réussi à récupérer ma modif de code ci-dessus ou tu veux que je t'envois mon fichier ZMWSCONFIG.cpp

A+, Raph

Hors ligne

 

#17 13/10/2005 20:18:00

Raph
ZazouExplorer
Date d'inscription: 03/10/2005
Messages: 21

Re: ZMWS Loader

J'ai quelques soucis lors de l'exécution de :
   zmws_get_config(&zmws_config);

Tout ce compile bien sous Dev-C++, les fonctions sont bien liées à la DLL mais quand le programme arrive sur zmws_get_config(&zmws_config) ça plante...

Bizzard, je vais essayer de chercher un peu + mais je voulais te prévenir.

Hors ligne

 

#18 14/10/2005 10:06:17

xavier
ZazouGourou
Lieu: ZazouLand
Date d'inscription: 09/09/2004
Messages: 2847
Site web

Re: ZMWS Loader

Ca doit venir du fait que c'est une liaison C et que dans la structure il y a des std::string.

Avec VC ça passe (as tu essayé ZMWS_Console ?)

Je réécrirai ça en char* ou char[MAX_PATH_LEN]

Pour ta modif, je ne l'ai pas encore intégrée mais oui, je la récupèrerai ici.

a+


http://www.zmws.com/pictures/zmwsbanniere.jpg
Ultimate fighting server : Combattre zazou - Rejoindre le clan !!!
ZMWS Ville : Devenez un habitant

Hors ligne

 

#19 14/10/2005 18:44:18

Raph
ZazouExplorer
Date d'inscription: 03/10/2005
Messages: 21

Re: ZMWS Loader


Après avoir posté mon message hier, j'ai essayé avec un char[255] à la place du std::string.
Ca plantait plus mais impossible de récupérer les valeurs de config de type string.

Je vais essayer avec ZMWS_Console pour voir si ça fait pareil.

A+

Hors ligne

 

#20 18/10/2005 19:56:39

Raph
ZazouExplorer
Date d'inscription: 03/10/2005
Messages: 21

Re: ZMWS Loader

Salut Xavier,

Je viens de voir que je t'avais pas répondu...
Mais j'ai bien les mêmes problèmes avec ZMWS_Console.

Pour ne plus avoir de soucis, je pense egalement que dans ta structure BaseZMWSConfig, il faut remplacer les std::string par un char* ou par un char[n] qui seraient + portable.

A+ Raph

Hors ligne

 

#21 19/10/2005 09:45:27

xavier
ZazouGourou
Lieu: ZazouLand
Date d'inscription: 09/09/2004
Messages: 2847
Site web

Re: ZMWS Loader

C'est fait, désolé, je n'ai pas posté pour le signaler ...

void ZMWSConfig::GetCBaseConfig(CBaseZMWSConfig* conf) const {
    (*conf).port=port;
    (*conf).BindAddr=strdup(BindAddr.c_str());
    (*conf).documentRoot=strdup(documentRoot.c_str());
    (*conf).logsDir=strdup(logsDir.c_str());
    (*conf).pathToConfigFile=strdup(pathToConfigFile.c_str());
    (*conf).pathToPHP=strdup(pathToPHP.c_str());
    (*conf).defCharSet=strdup(defCharSet.c_str());
    (*conf).startPages=strdup(startPages.c_str());
    (*conf).allowFrom=strdup(allowFrom.c_str());
    (*conf).maxClients=maxClients;
    (*conf).hideConsole=hideConsole;
    (*conf).try808xPorts=try808xPorts;
    (*conf).canIndex=canIndex;
    (*conf).beQuiet=beQuiet;
    (*conf).canStop=canStop;
    (*conf).closeBrowser=closeBrowser;
    (*conf).reverseDNS=reverseDNS;
    (*conf).writeLogs=writeLogs;
    (*conf).browseNow=browseNow;
    (*conf).dropClients=dropClients;
}

Naturellement, c'est à toi ensuite de libérer la mémoire pour les champs obtenus par strdup.

a+


http://www.zmws.com/pictures/zmwsbanniere.jpg
Ultimate fighting server : Combattre zazou - Rejoindre le clan !!!
ZMWS Ville : Devenez un habitant

Hors ligne

 

#22 30/10/2005 13:46:22

Raph
ZazouExplorer
Date d'inscription: 03/10/2005
Messages: 21

Re: ZMWS Loader

Salut,
Je viens de mettre en ligne une nouvelle version de ZMWS Loader, estampillée version 0.2

Voici le changelog :
- Le bouton Localhost démarre maintenant sur la page par défaut et sur le port du serveur ZMWS.
- Le bouton Afficher les logs ouvre les logs à partir de l'emplacement spécifié dans la configuration.
- Ajout de la fenêtre Configuration de ZMWS qui affiche les différents paramètres du serveur Web.
- Nouvelle fenêtre A propos de... qui donne la version de ZMWS Loader mais aussi de la DLL ZazouMiniWebServer. De plus un lien cliquable vers le site Internet des 2 applications est disponible.
- Les boutons Start et Stop sont grisés en fonction de l'état du serveur.
- Le menu s'adapte maintenant à la police de caractère utilisée sur le client.

Tout est dispo sur http://devplanete.free.fr/ avec des captures d'écran des nouvelles fenêtres.

N'hésitez pas à faire vos commentaires wink
A+, Raph

Hors ligne

 

#23 30/10/2005 16:26:08

xavier
ZazouGourou
Lieu: ZazouLand
Date d'inscription: 09/09/2004
Messages: 2847
Site web

Re: ZMWS Loader

En ce qui me concerne, ça plante au premier double click:
XP Familial SP2


a+


http://www.zmws.com/pictures/zmwsbanniere.jpg
Ultimate fighting server : Combattre zazou - Rejoindre le clan !!!
ZMWS Ville : Devenez un habitant

Hors ligne

 

#24 30/10/2005 17:53:00

Raph
ZazouExplorer
Date d'inscription: 03/10/2005
Messages: 21

Re: ZMWS Loader

Bizarre, j'ai moi aussi XP Familial SP2.

Ca plante dès que tu lances le programme ?
Tu n'as pas de message d'erreur ?
Est-ce que l'icone de ZMWS Loader apparait à coté de l'heure ?

J'ai supprimé quelques lignes de codes suspéctes et j'ai mis sur http://devplanete.free.fr/ un nouveau EXE version 0.2.0.1

Tu lances le programme à partir de quel répertoire ?
Est-ce que tu as téléchargé le ZIP de mon site avec la DLL v0.8.13.2 ou tu utilises une DLL que tu avais déjà ?

Essaye de lancer l'EXE sans DLL dans le même répertoire pour voir si tu as bien un message d'érreur.

Oula... ça fait pas mal de questions tout ca wink

A+, Raph

Hors ligne

 

#25 01/11/2005 17:14:52

Raph
ZazouExplorer
Date d'inscription: 03/10/2005
Messages: 21

Re: ZMWS Loader

Y'a personne d'autre qui a essayé la version 0.2 et qui pourrait me dire si ca plante aussi chez lui...

Je comprend pas comment ça peut planter sans message d'erreur (enfin bon, c'est les joies de l'informatique quoi...)

A+, Raph

Hors ligne

 

Pied de page du Forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson