Wait For Apache

Parlez ici des outils utilisables conjointement à Apache (analyseurs de logs... etc).

Modérateur : Modérateurs

Avatar de l’utilisateur
xgarreau
Pilier de forum
Pilier de forum
Messages : 1747
Inscription : jeu. 08 juil. 2004, 9:41
Localisation : ZazouLand @ La Rochelle
Contact :

Messagepar xgarreau » mar. 05 oct. 2004, 19:07

Voilà le premier jet de l'outil wfa (WaitForApache), qui permet de temporiser un script en attendant qu'apache soit prêt à recevoir des connexions, je m'en sers dans ZAMP et ZAMPcd pour lancer le navigateur quand le serveur est prêt.

Si ça inspire quelque chose à quelqu'un, ce sera le bon endroit pour en parler ...

Code : Tout sélectionner

#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <winsock2.h>

int main(int argc, char *argv[])
{
    int port = 80;
    
    if (argc>1) port = strtoul(argv[2], NULL, 10);
    
    std::cout << "Waiting for apache on port " << port << " ..." << std::endl;
    WSADATA wsaData;
    WSAStartup((WORD)1.1, &wsaData);
   
   
    SOCKET s;
    SOCKADDR_IN sockaddr;
    int csalen = sizeof(SOCKADDR);
    s = socket (AF_INET, SOCK_STREAM, 0);
    sockaddr.sin_family = AF_INET;
    sockaddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
    sockaddr.sin_port = htons(port);
    while (connect(s, (LPSOCKADDR)&sockaddr, csalen) == SOCKET_ERROR)
        Sleep(10);
    closesocket(s);
    std::cout << "Apache is running on port " << port << ", go on ..." << std::endl;
        
    return 0;
}


On pourrait notamment y ajouter une option -test, pour ne pas se lancer dans une boucle sans fin, juste pour tester si apache est up ?

Egalement ajouter une option pour changer l'ip, pour s'en servir comme outil de base dans une solution perso de monitoring ...

Bref, c'est une belle bouteille à la mer ...

a+
ZazouMiniWebServer : votre serveur web PHP/MySQL/SQLite sur votre pc, cd ou clé usb
Image
http://www.zmws.com/

Avatar de l’utilisateur
Gandalf
Sorcier des forums
Sorcier des forums
Messages : 2528
Inscription : jeu. 04 déc. 2003, 22:58

Messagepar Gandalf » mar. 05 oct. 2004, 19:35

une autre idée :

spécifier en ligne de commande une commande à lancer au cas où la connection est possible.

ex :

Code : Tout sélectionner

c:\> waitforapache.exe 80 "firefox.exe http://127.0.0.1"
Celui qui détruit quelque chose pour savoir ce que c'est, a quitté le chemin de la sagesse.

Avatar de l’utilisateur
xgarreau
Pilier de forum
Pilier de forum
Messages : 1747
Inscription : jeu. 08 juil. 2004, 9:41
Localisation : ZazouLand @ La Rochelle
Contact :

Messagepar xgarreau » mar. 05 oct. 2004, 21:21

En fait je l'utilise dans un bat comme ça:

Code : Tout sélectionner

wfa
start http://localhost/


Comme ça on utilise le navigateur par défaut de l'utilisateur ... Firefox, si c'est son choix, Opéra sinon (à la limite IE pour les téméraires ;-) )

Mais c'est pas une mauvaise idée, d'autant que start n'existe pas sous w98 mais à ce moment là, il vaut mieux (à mon sens) utiliser ShellExecute dans le code en ne fournissant que l'adresse ...

a+
ZazouMiniWebServer : votre serveur web PHP/MySQL/SQLite sur votre pc, cd ou clé usb

Image

http://www.zmws.com/

Avatar de l’utilisateur
Gandalf
Sorcier des forums
Sorcier des forums
Messages : 2528
Inscription : jeu. 04 déc. 2003, 22:58

Messagepar Gandalf » mer. 06 oct. 2004, 0:53

cela va de soi :)

ShellExecute est ce qu'il y a de plus simple pour ouvrir n'importe quoi, je l'aurais implémenté avec ça.
Tu peux lui passer un fichier quelconque, tant que l'extension de fichier est reconnue, un exécutable, une URL...
Celui qui détruit quelque chose pour savoir ce que c'est, a quitté le chemin de la sagesse.


Revenir vers « Outils liés à Apache »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité