2 Commits
Author SHA1 Message Date
fred b702f8a548 fix 2026-07-12 17:04:03 +02:00
fred 352a4b3df0 fix: demon mode 2026-07-12 15:41:55 +02:00
+26 -6
View File
@@ -51,6 +51,8 @@ void trace(const char * fmt, ...)
va_start(args, fmt);
if(flog)
{
if(*flog == '0') return; // si fichier log = "0" : ne rien afficher ni logguer
//
FILE * f = fopen(flog, "a+");
if(f)
{
@@ -450,9 +452,10 @@ void trt_sig(int sig)
}
// -----------------------------------------------------------
char data[64000]; // buffer de lecture/ecriture sur la socket securisee
char data[64000], rep[64000]; // buffer de lecture/ecriture sur la socket securisee
void trt_connexion()
{
FILE * fp;
//Dynamic req, methode, uri, rep, tmp, fld;
//long meth, cr, nb;
int keepAlive;
@@ -470,7 +473,23 @@ void trt_connexion()
if(strstr(data,"keep-alive") == NULL)
keepAlive = FALSE;
//
strcpy(data, "HTTP/1.1 200 OK\r\nConnection: keep-alive\r\nContent-Type:text/html\r\nContent-Length:35\r\n\r\n<html><h2>Hello World !</h2></html>");
//strcpy(data, "HTTP/1.1 200 OK\r\nConnection: keep-alive\r\nContent-Type:text/html\r\nContent-Length:35\r\n\r\n<html><h2>Hello World !</h2></html>");
if((fp = popen("create_ttyd_session.sh", "r")) == NULL)
strcpy(data, "HTTP/1.1 200 OK\r\nConnection: keep-alive\r\nContent-Type:text/html\r\nContent-Length:97\r\n\r\n<html><h2>Erreur, console de test non disponible, veuillez contacter l'administrateur</h2></html>");
else
{
*data = 0;
*rep = 0;
char ligne[10] = {0};
while (fgets(ligne, sizeof(ligne) - 1, fp)) {
strcat(rep, ligne);
}
pclose(fp);
sprintf(data, "HTTP/1.1 200 OK\r\nConnection: keep-alive\r\nContent-Type:text/html\r\nContent-Length:%ld", strlen(rep));
strcat(data, "\r\n\r\n");
strcat(data, rep);
}
//
trace("Reponse:\n%s\n", data);
ecrireConnexion(data);
*data = 0;
@@ -497,7 +516,8 @@ int main(int argc, char *argv[])
if(argc == 5)
{
flog = argv[4];
remove(flog);
if(*flog != '0')
remove(flog);
}
/* */
int port = atoi(argv[1]);
@@ -533,10 +553,10 @@ int main(int argc, char *argv[])
exit(0); /* sortie du pere */
}
mPid = getpid();
chdir("/"); // permet de ne pas bloquer un filesystem avec ce process
//chdir("/"); // permet de ne pas bloquer un filesystem avec ce process
setsid();
for(int i=0;i < FOPEN_MAX; i++) /* OPEN_MAX sous AIX */
close(i);
//for(int i=0;i < FOPEN_MAX; i++) /* OPEN_MAX sous AIX */
// close(i);
}
//
trace("Demarrage serveur, port %d pid %d mode %d bits\n", port, getpid(), sizeof(long)==4?32:64);