asciification du code source
This commit is contained in:
parent
efeef4140b
commit
311baad6cb
26
broadcast.c
26
broadcast.c
@ -127,7 +127,7 @@ int broadcast (int t, const char *f, const char *m) {
|
|||||||
"de = %s\n",
|
"de = %s\n",
|
||||||
sid,
|
sid,
|
||||||
t == 1 ? "QUITTER" :
|
t == 1 ? "QUITTER" :
|
||||||
t == 2 ? "TOURNÉE" :
|
t == 2 ? "TOURNEE" :
|
||||||
t == 3 ? "MESSAGE" : "RIEN",
|
t == 3 ? "MESSAGE" : "RIEN",
|
||||||
f);
|
f);
|
||||||
#endif
|
#endif
|
||||||
@ -175,20 +175,20 @@ void get_broadcastmsg (int *t, char **f, char **m) {
|
|||||||
/* id */
|
/* id */
|
||||||
token = strtok_r (bdcast, SEP, &saveptr);
|
token = strtok_r (bdcast, SEP, &saveptr);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf ("Reçu : ID = %s\n", token);
|
printf ("Recu : ID = %s\n", token);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* type */
|
/* type */
|
||||||
token = strtok_r (NULL, SEP, &saveptr);
|
token = strtok_r (NULL, SEP, &saveptr);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf ("Reçu : TYPE = %s\n", token);
|
printf ("Recu : TYPE = %s\n", token);
|
||||||
#endif
|
#endif
|
||||||
*t = atoi (token);
|
*t = atoi (token);
|
||||||
|
|
||||||
/* from */
|
/* from */
|
||||||
token = strtok_r (NULL, SEP, &saveptr);
|
token = strtok_r (NULL, SEP, &saveptr);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf ("Reçu : FROM = %s\n", token);
|
printf ("Recu : FROM = %s\n", token);
|
||||||
#endif
|
#endif
|
||||||
*f = NULL;
|
*f = NULL;
|
||||||
if (token) *f = xstrdup (token);
|
if (token) *f = xstrdup (token);
|
||||||
@ -196,7 +196,7 @@ void get_broadcastmsg (int *t, char **f, char **m) {
|
|||||||
/* message */
|
/* message */
|
||||||
token = strtok_r (NULL, SEP, &saveptr);
|
token = strtok_r (NULL, SEP, &saveptr);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf ("Reçu : MESSAGE = %s\n", token);
|
printf ("Recu : MESSAGE = %s\n", token);
|
||||||
#endif
|
#endif
|
||||||
*m = NULL;
|
*m = NULL;
|
||||||
if (token) *m = xstrdup (token);
|
if (token) *m = xstrdup (token);
|
||||||
@ -210,7 +210,7 @@ void get_broadcastmsg (int *t, char **f, char **m) {
|
|||||||
if (count == 0) {
|
if (count == 0) {
|
||||||
remove_elt_n (&bdcast_list, 0);
|
remove_elt_n (&bdcast_list, 0);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf ("Suppression du premier élément. Liste = %s\n",
|
printf ("Suppression du premier element. Liste = %s\n",
|
||||||
bdcast_list ? "OK." : "NULL !");
|
bdcast_list ? "OK." : "NULL !");
|
||||||
#endif
|
#endif
|
||||||
next_broadcast (FALSE);
|
next_broadcast (FALSE);
|
||||||
@ -232,25 +232,25 @@ int send_broadcast (int socket_service, userinfos *infos) {
|
|||||||
printlog (LOG_NOTIFY, "Broadcast pour [%s] : %s\n",
|
printlog (LOG_NOTIFY, "Broadcast pour [%s] : %s\n",
|
||||||
infos->nom,
|
infos->nom,
|
||||||
type == 1 ? "QUITTER" :
|
type == 1 ? "QUITTER" :
|
||||||
type == 2 ? "TOURNÉE" :
|
type == 2 ? "TOURNEE" :
|
||||||
type == 3 ? "MESSAGE" :
|
type == 3 ? "MESSAGE" :
|
||||||
"ERREUR");
|
"ERREUR");
|
||||||
printlog (LOG_NOTIFY, " de [%s] : %s\n", from, mesg ? mesg : "RIEN");
|
printlog (LOG_NOTIFY, " de [%s] : %s\n", from, mesg ? mesg : "RIEN");
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case QUITTER: /* Un utilisateur se déconnecte */
|
case QUITTER: /* Un utilisateur se deconnecte */
|
||||||
snprintf (datas, MAXSTRLEN - 1, "Déconnexion de [%s] : %s",
|
snprintf (datas, MAXSTRLEN - 1, "Deconnexion de [%s] : %s",
|
||||||
from, mesg);
|
from, mesg);
|
||||||
break;
|
break;
|
||||||
case TOURNEE: /* Tournée générale */
|
case TOURNEE: /* Tournee generale */
|
||||||
if (mesg == NULL) {
|
if (mesg == NULL) {
|
||||||
snprintf (head, MAXSTRLEN - 1,
|
snprintf (head, MAXSTRLEN - 1,
|
||||||
" -+- Tournée générale offerte par %s ! -+-",
|
" -+- Tournee generale offerte par %s ! -+-",
|
||||||
from);
|
from);
|
||||||
breuv = drinks_get (infos->prefb);
|
breuv = drinks_get (infos->prefb);
|
||||||
} else {
|
} else {
|
||||||
snprintf (head, MAXSTRLEN - 1,
|
snprintf (head, MAXSTRLEN - 1,
|
||||||
" -+- Tournée de %s offerte par %s ! -+-",
|
" -+- Tournee de %s offerte par %s ! -+-",
|
||||||
mesg, from);
|
mesg, from);
|
||||||
breuv = drinks_get (mesg);
|
breuv = drinks_get (mesg);
|
||||||
}
|
}
|
||||||
@ -261,7 +261,7 @@ int send_broadcast (int socket_service, userinfos *infos) {
|
|||||||
snprintf (datas, MAXSTRLEN - 1, "<%s> %s\n", from, mesg);
|
snprintf (datas, MAXSTRLEN - 1, "<%s> %s\n", from, mesg);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
printlog (LOG_ERROR, "Type de message broadcast non supporté.\n");
|
printlog (LOG_ERROR, "Type de message broadcast non supporte.\n");
|
||||||
type = -1;
|
type = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
22
clients.c
22
clients.c
@ -45,11 +45,11 @@ void add_client (userinfos *infos) {
|
|||||||
add_elt (&clients_list, datas);
|
add_elt (&clients_list, datas);
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf ("Taille des éléments :\n"
|
printf ("Taille des elements :\n"
|
||||||
"nom : %d [%s]\n"
|
"nom : %d [%s]\n"
|
||||||
"bière : %d [%s]\n"
|
"biere : %d [%s]\n"
|
||||||
"date : %d [%s]\n"
|
"date : %d [%s]\n"
|
||||||
"hôte : %d [%s]\n"
|
"hote : %d [%s]\n"
|
||||||
"ip : %d [%s]\n",
|
"ip : %d [%s]\n",
|
||||||
strlen (infos->nom), infos->nom,
|
strlen (infos->nom), infos->nom,
|
||||||
strlen (infos->prefb), infos->prefb,
|
strlen (infos->prefb), infos->prefb,
|
||||||
@ -86,7 +86,7 @@ char *list_clients () {
|
|||||||
int size;
|
int size;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
size = strlen ("Client(s) connecté(s) :\n");
|
size = strlen ("Client(s) connecte(s) :\n");
|
||||||
for (i = 0 ; i < get_nb_elts (clients_list) ; i++) {
|
for (i = 0 ; i < get_nb_elts (clients_list) ; i++) {
|
||||||
lstelt = elt_number (clients_list, i);
|
lstelt = elt_number (clients_list, i);
|
||||||
rt = strstr (lstelt, SEP);
|
rt = strstr (lstelt, SEP);
|
||||||
@ -97,7 +97,7 @@ char *list_clients () {
|
|||||||
|
|
||||||
list = xmalloc ((size + 1) * sizeof (char));
|
list = xmalloc ((size + 1) * sizeof (char));
|
||||||
|
|
||||||
strcpy (list, "Client(s) connecté(s) :\n");
|
strcpy (list, "Client(s) connecte(s) :\n");
|
||||||
for (i = 0 ; i < get_nb_elts (clients_list) ; i++) {
|
for (i = 0 ; i < get_nb_elts (clients_list) ; i++) {
|
||||||
lstelt = elt_number (clients_list, i);
|
lstelt = elt_number (clients_list, i);
|
||||||
rt = strstr (lstelt, SEP);
|
rt = strstr (lstelt, SEP);
|
||||||
@ -131,7 +131,7 @@ char *infos_client (int admin, const char *nick) {
|
|||||||
token = strtok_r (use, SEP, &saveptr);
|
token = strtok_r (use, SEP, &saveptr);
|
||||||
if (token) nom = xstrdup (token);
|
if (token) nom = xstrdup (token);
|
||||||
|
|
||||||
/* bière */
|
/* biere */
|
||||||
token = strtok_r (NULL, SEP, &saveptr);
|
token = strtok_r (NULL, SEP, &saveptr);
|
||||||
if (token) biere = xstrdup (token);
|
if (token) biere = xstrdup (token);
|
||||||
|
|
||||||
@ -139,7 +139,7 @@ char *infos_client (int admin, const char *nick) {
|
|||||||
token = strtok_r (NULL, SEP, &saveptr);
|
token = strtok_r (NULL, SEP, &saveptr);
|
||||||
if (token) date = xstrdup (token);
|
if (token) date = xstrdup (token);
|
||||||
|
|
||||||
/* hôte */
|
/* hote */
|
||||||
token = strtok_r (NULL, SEP, &saveptr);
|
token = strtok_r (NULL, SEP, &saveptr);
|
||||||
if (token) host = xstrdup (token);
|
if (token) host = xstrdup (token);
|
||||||
|
|
||||||
@ -152,13 +152,13 @@ char *infos_client (int admin, const char *nick) {
|
|||||||
if (token) port = xstrdup (token);
|
if (token) port = xstrdup (token);
|
||||||
|
|
||||||
size += strlen ("Pseudo : ");
|
size += strlen ("Pseudo : ");
|
||||||
size += strlen ("Bière : ");
|
size += strlen ("Biere : ");
|
||||||
size += strlen ("Connexion : ");
|
size += strlen ("Connexion : ");
|
||||||
size += 1 + (nom ? strlen (nom) : 1);
|
size += 1 + (nom ? strlen (nom) : 1);
|
||||||
size += 1 + (biere ? strlen (biere) : 1);
|
size += 1 + (biere ? strlen (biere) : 1);
|
||||||
size += 1 + (date ? strlen (date) : 1);
|
size += 1 + (date ? strlen (date) : 1);
|
||||||
if (admin) {
|
if (admin) {
|
||||||
size += strlen ("Hôte : ");
|
size += strlen ("Hote : ");
|
||||||
size += strlen ("IP : ");
|
size += strlen ("IP : ");
|
||||||
size += strlen ("Port : ");
|
size += strlen ("Port : ");
|
||||||
size += 1 + (host ? strlen (host) : 1);
|
size += 1 + (host ? strlen (host) : 1);
|
||||||
@ -170,14 +170,14 @@ char *infos_client (int admin, const char *nick) {
|
|||||||
|
|
||||||
sprintf (datas,
|
sprintf (datas,
|
||||||
"Pseudo : %s\n"
|
"Pseudo : %s\n"
|
||||||
"Bière : %s\n"
|
"Biere : %s\n"
|
||||||
"Connexion : %s\n",
|
"Connexion : %s\n",
|
||||||
nom ? nom : "-",
|
nom ? nom : "-",
|
||||||
biere ? biere : "-",
|
biere ? biere : "-",
|
||||||
date ? date : "-");
|
date ? date : "-");
|
||||||
if (admin)
|
if (admin)
|
||||||
sprintf (datas, "%s"
|
sprintf (datas, "%s"
|
||||||
"Hôte : %s\n"
|
"Hote : %s\n"
|
||||||
"IP : %s\n"
|
"IP : %s\n"
|
||||||
"Port : %s\n",
|
"Port : %s\n",
|
||||||
datas,
|
datas,
|
||||||
|
54
commands.c
54
commands.c
@ -44,26 +44,26 @@ extern Elt *drinks_list;
|
|||||||
cmdslst cmds_srv[] = {
|
cmdslst cmds_srv[] = {
|
||||||
{"help", "cette page d'aide", FALSE, FALSE, FALSE, f_help},
|
{"help", "cette page d'aide", FALSE, FALSE, FALSE, f_help},
|
||||||
{"quit", "quitter", FALSE, FALSE, FALSE, f_quit},
|
{"quit", "quitter", FALSE, FALSE, FALSE, f_quit},
|
||||||
{"list", "liste des clients connectés", FALSE, FALSE, FALSE, f_list},
|
{"list", "liste des clients connectes", FALSE, FALSE, FALSE, f_list},
|
||||||
{"blist", "liste des boissons disponibles", FALSE, FALSE, FALSE, f_bevr},
|
{"blist", "liste des boissons disponibles", FALSE, FALSE, FALSE, f_bevr},
|
||||||
{"round", "tournée générale (boisson en option ou préférée)",
|
{"round", "tournee generale (boisson en option ou preferee)",
|
||||||
TRUE, FALSE, FALSE, f_turn},
|
TRUE, FALSE, FALSE, f_turn},
|
||||||
{"cold", "la guinness est servie à - de 10°C, sinon entre 12 et 15",
|
{"cold", "la guinness est servie a - de 10C, sinon entre 12 et 15",
|
||||||
FALSE, FALSE, FALSE, f_cold},
|
FALSE, FALSE, FALSE, f_cold},
|
||||||
{"msg", "message à tous les clients", TRUE, FALSE, FALSE, f_mesg},
|
{"msg", "message a tous les clients", TRUE, FALSE, FALSE, f_mesg},
|
||||||
{"infos", "renvoie les infos du serveur", TRUE, FALSE, FALSE, f_info},
|
{"infos", "renvoie les infos du serveur", TRUE, FALSE, FALSE, f_info},
|
||||||
{"nick", "change de pseudo", TRUE, FALSE, FALSE, f_nick},
|
{"nick", "change de pseudo", TRUE, FALSE, FALSE, f_nick},
|
||||||
{"123456789", "nombre de verres à recevoir (boisson en option ou "
|
{"123456789", "nombre de verres a recevoir (boisson en option ou "
|
||||||
"préférée)", FALSE, FALSE, TRUE, f_glas},
|
"preferee)", FALSE, FALSE, TRUE, f_glas},
|
||||||
{"admin", "passer en mode administration", TRUE, FALSE, FALSE, f_sadm},
|
{"admin", "passer en mode administration", TRUE, FALSE, FALSE, f_sadm},
|
||||||
{"33", "arrêter le serveur", FALSE, TRUE, FALSE, f_shut},
|
{"33", "arreter le serveur", FALSE, TRUE, FALSE, f_shut},
|
||||||
{"add", "ajoute un utilisateur dans la liste des habitués",
|
{"add", "ajoute un utilisateur dans la liste des habitues",
|
||||||
TRUE, TRUE, FALSE, f_addu},
|
TRUE, TRUE, FALSE, f_addu},
|
||||||
{"del", "enlève un utilisateur de la liste des habitués",
|
{"del", "enleve un utilisateur de la liste des habitues",
|
||||||
TRUE, TRUE, FALSE, f_delu},
|
TRUE, TRUE, FALSE, f_delu},
|
||||||
{"rldb", "recharge la liste des boissons", FALSE, TRUE, FALSE, f_rldb},
|
{"rldb", "recharge la liste des boissons", FALSE, TRUE, FALSE, f_rldb},
|
||||||
{"save", "sauve la liste des habitués", FALSE, TRUE, FALSE, f_save},
|
{"save", "sauve la liste des habitues", FALSE, TRUE, FALSE, f_save},
|
||||||
{"load", "charge la liste des habitués", FALSE, TRUE, FALSE, f_load},
|
{"load", "charge la liste des habitues", FALSE, TRUE, FALSE, f_load},
|
||||||
{NULL, NULL, FALSE, FALSE, FALSE, NULL}
|
{NULL, NULL, FALSE, FALSE, FALSE, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -171,7 +171,7 @@ int f_help (int socket_service, const char *commande, userinfos *infos) {
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
memset (ligne, 0, MAXSTRLEN);
|
memset (ligne, 0, MAXSTRLEN);
|
||||||
size = strlen ("Commandes (précédées du caractère de commande) :\n");
|
size = strlen ("Commandes (precedees du caractere de commande) :\n");
|
||||||
for (i = 0 ; cmds_srv[i].nom != NULL ; i++) {
|
for (i = 0 ; cmds_srv[i].nom != NULL ; i++) {
|
||||||
if (security_ok (cmds_srv[i], *infos) == TRUE) {
|
if (security_ok (cmds_srv[i], *infos) == TRUE) {
|
||||||
if (cmds_srv[i].args)
|
if (cmds_srv[i].args)
|
||||||
@ -188,7 +188,7 @@ int f_help (int socket_service, const char *commande, userinfos *infos) {
|
|||||||
|
|
||||||
data = xmalloc ((size + 1) * sizeof (char));
|
data = xmalloc ((size + 1) * sizeof (char));
|
||||||
|
|
||||||
strcpy (data, "Commandes (précédées du caractère de commande) :\n");
|
strcpy (data, "Commandes (precedees du caractere de commande) :\n");
|
||||||
for (i = 0 ; cmds_srv[i].nom != NULL ; i++) {
|
for (i = 0 ; cmds_srv[i].nom != NULL ; i++) {
|
||||||
if (security_ok (cmds_srv[i], *infos) == TRUE) {
|
if (security_ok (cmds_srv[i], *infos) == TRUE) {
|
||||||
if (cmds_srv[i].args)
|
if (cmds_srv[i].args)
|
||||||
@ -259,10 +259,10 @@ int f_cold (int socket_service, const char *commande, userinfos *infos) {
|
|||||||
|
|
||||||
if (infos->cold == TRUE) {
|
if (infos->cold == TRUE) {
|
||||||
infos->cold = FALSE;
|
infos->cold = FALSE;
|
||||||
cont = send_infos (socket_service, "Température normale.\n");
|
cont = send_infos (socket_service, "Temperature normale.\n");
|
||||||
} else {
|
} else {
|
||||||
infos->cold = TRUE;
|
infos->cold = TRUE;
|
||||||
cont = send_infos (socket_service, "Température fraîche (10°C).\n");
|
cont = send_infos (socket_service, "Temperature fraiche (10C).\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
return cont;
|
return cont;
|
||||||
@ -275,8 +275,8 @@ int f_turn (int socket_service, const char *commande, userinfos *infos) {
|
|||||||
|
|
||||||
if (strlen (commande) > 5) breuv = xstrdup (commande+6);
|
if (strlen (commande) > 5) breuv = xstrdup (commande+6);
|
||||||
|
|
||||||
printlog (LOG_NOTIFY, "Breuvage pour tournée : %s\n",
|
printlog (LOG_NOTIFY, "Breuvage pour tournee : %s\n",
|
||||||
breuv ? breuv : "préféré");
|
breuv ? breuv : "prefere");
|
||||||
|
|
||||||
if ( ( (breuv != NULL) && (exist_elt (drinks_list, breuv) == TRUE) ) ||
|
if ( ( (breuv != NULL) && (exist_elt (drinks_list, breuv) == TRUE) ) ||
|
||||||
(breuv == NULL) ) {
|
(breuv == NULL) ) {
|
||||||
@ -339,7 +339,7 @@ int f_nick (int socket_service, const char *commande, userinfos *infos) {
|
|||||||
if (! broadcast (MESSAGE, NULL, texte) )
|
if (! broadcast (MESSAGE, NULL, texte) )
|
||||||
cont = send_infos (socket_service, "Erreur de transmission !\n");
|
cont = send_infos (socket_service, "Erreur de transmission !\n");
|
||||||
} else {
|
} else {
|
||||||
cont = send_infos (socket_service, "Pseudo déjà utilisé !\n");
|
cont = send_infos (socket_service, "Pseudo deja utilise !\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
free (old_nick);
|
free (old_nick);
|
||||||
@ -359,7 +359,7 @@ int f_glas (int socket_service, const char *commande, userinfos *infos) {
|
|||||||
else
|
else
|
||||||
breuv = xstrdup (infos->prefb);
|
breuv = xstrdup (infos->prefb);
|
||||||
|
|
||||||
printlog (LOG_NOTIFY, "Breuvage désiré : %s\n", breuv);
|
printlog (LOG_NOTIFY, "Breuvage desire : %s\n", breuv);
|
||||||
|
|
||||||
data = drinks_get (breuv);
|
data = drinks_get (breuv);
|
||||||
nb = atoi (commande);
|
nb = atoi (commande);
|
||||||
@ -376,7 +376,7 @@ int f_sadm (int socket_service, const char *commande, userinfos *infos) {
|
|||||||
int cont = TRUE;
|
int cont = TRUE;
|
||||||
|
|
||||||
if ( (admin_passwd) && (strcmp (admin_passwd, commande + 6) == 0) ) {
|
if ( (admin_passwd) && (strcmp (admin_passwd, commande + 6) == 0) ) {
|
||||||
char message[] = "Vous êtes maintenant ADMINISTRATEUR.\n"
|
char message[] = "Vous etes maintenant ADMINISTRATEUR.\n"
|
||||||
"Nouvelles commandes :";
|
"Nouvelles commandes :";
|
||||||
char *data;
|
char *data;
|
||||||
int size = 0, i;
|
int size = 0, i;
|
||||||
@ -401,7 +401,7 @@ int f_sadm (int socket_service, const char *commande, userinfos *infos) {
|
|||||||
} else {
|
} else {
|
||||||
infos->admin = FALSE;
|
infos->admin = FALSE;
|
||||||
cont = send_infos (socket_service,
|
cont = send_infos (socket_service,
|
||||||
"Vous n'êtes PLUS administrateur.\n");
|
"Vous n'etes PLUS administrateur.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
return cont;
|
return cont;
|
||||||
@ -411,7 +411,7 @@ int f_sadm (int socket_service, const char *commande, userinfos *infos) {
|
|||||||
int f_shut (int socket_service, const char *commande, userinfos *infos) {
|
int f_shut (int socket_service, const char *commande, userinfos *infos) {
|
||||||
|
|
||||||
online = FALSE;
|
online = FALSE;
|
||||||
send_infos (socket_service, "Arrêt en cours...\n");
|
send_infos (socket_service, "Arret en cours...\n");
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@ -425,22 +425,22 @@ int f_rldb (int socket_service, const char *commande, userinfos *infos) {
|
|||||||
drinks_list_files (chemin);
|
drinks_list_files (chemin);
|
||||||
drinks_display_list ();
|
drinks_display_list ();
|
||||||
|
|
||||||
return send_infos (socket_service, "Liste des boissons rechargée...\n");
|
return send_infos (socket_service, "Liste des boissons rechargee...\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int f_addu (int socket_service, const char *commande, userinfos *infos) {
|
int f_addu (int socket_service, const char *commande, userinfos *infos) {
|
||||||
return send_infos (socket_service, "Fonction non implémentée...\n");
|
return send_infos (socket_service, "Fonction non implementee...\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
int f_delu (int socket_service, const char *commande, userinfos *infos) {
|
int f_delu (int socket_service, const char *commande, userinfos *infos) {
|
||||||
return send_infos (socket_service, "Fonction non implémentée...\n");
|
return send_infos (socket_service, "Fonction non implementee...\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
int f_save (int socket_service, const char *commande, userinfos *infos) {
|
int f_save (int socket_service, const char *commande, userinfos *infos) {
|
||||||
return send_infos (socket_service, "Fonction non implémentée...\n");
|
return send_infos (socket_service, "Fonction non implementee...\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
int f_load (int socket_service, const char *commande, userinfos *infos) {
|
int f_load (int socket_service, const char *commande, userinfos *infos) {
|
||||||
return send_infos (socket_service, "Fonction non implémentée...\n");
|
return send_infos (socket_service, "Fonction non implementee...\n");
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ typedef struct cmdslst {
|
|||||||
int reply (int socket_service, char *commande, userinfos *infos);
|
int reply (int socket_service, char *commande, userinfos *infos);
|
||||||
int send_servercmds (int socket_service);
|
int send_servercmds (int socket_service);
|
||||||
|
|
||||||
/* Fonctions associées aux commandes */
|
/* Fonctions associees aux commandes */
|
||||||
int f_help (int socket_service, const char *commande, userinfos *infos);
|
int f_help (int socket_service, const char *commande, userinfos *infos);
|
||||||
int f_quit (int socket_service, const char *commande, userinfos *infos);
|
int f_quit (int socket_service, const char *commande, userinfos *infos);
|
||||||
int f_list (int socket_service, const char *commande, userinfos *infos);
|
int f_list (int socket_service, const char *commande, userinfos *infos);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* defines
|
* defines
|
||||||
* Création et manipulation de sockets
|
* Creation et manipulation de sockets
|
||||||
* Thomas Nemeth -- le 15 juin 2001
|
* Thomas Nemeth -- le 15 juin 2001
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
14
drinks.c
14
drinks.c
@ -34,7 +34,7 @@ char *drinks_get_from_file (const char *nom) {
|
|||||||
|
|
||||||
snprintf (filename, MAXSTRLEN, "%s/%s", chemin, nom);
|
snprintf (filename, MAXSTRLEN, "%s/%s", chemin, nom);
|
||||||
if (stat (filename, &fileinfos) == -1) {
|
if (stat (filename, &fileinfos) == -1) {
|
||||||
printlog (LOG_ERROR, "Accès impossible au fichier [%s]\n",
|
printlog (LOG_ERROR, "Acces impossible au fichier [%s]\n",
|
||||||
filename);
|
filename);
|
||||||
perror ("stat ");
|
perror ("stat ");
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -56,11 +56,11 @@ char *drinks_get (const char *nom) {
|
|||||||
|
|
||||||
if (nom == NULL) return NULL;
|
if (nom == NULL) return NULL;
|
||||||
|
|
||||||
/* Élément 0 (Guinness) disponible par défaut */
|
/* Element 0 (Guinness) disponible par defaut */
|
||||||
if (strcmp (nom, "guinness") == 0) breuvage = xstrdup (pinte);
|
if (strcmp (nom, "guinness") == 0) breuvage = xstrdup (pinte);
|
||||||
|
|
||||||
/* Sinon on cherche dans la liste des fichiers :
|
/* Sinon on cherche dans la liste des fichiers :
|
||||||
* on commence à 1 pour éviter la pinte de Guinness qui est traitée
|
* on commence a 1 pour eviter la pinte de Guinness qui est traitee
|
||||||
* juste avant.
|
* juste avant.
|
||||||
*/
|
*/
|
||||||
if (! breuvage) {
|
if (! breuvage) {
|
||||||
@ -69,7 +69,7 @@ char *drinks_get (const char *nom) {
|
|||||||
breuvage = drinks_get_from_file (nom);
|
breuvage = drinks_get_from_file (nom);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Dernier cas : on n'a rien trouvé => pinte par défaut */
|
/* Dernier cas : on n'a rien trouve => pinte par defaut */
|
||||||
if (! breuvage) breuvage = xstrdup (pinte);
|
if (! breuvage) breuvage = xstrdup (pinte);
|
||||||
|
|
||||||
return breuvage;
|
return breuvage;
|
||||||
@ -83,18 +83,18 @@ void drinks_list_files (const char *path) {
|
|||||||
char filename[MAXSTRLEN + 1];
|
char filename[MAXSTRLEN + 1];
|
||||||
|
|
||||||
if ( (rep = opendir (path)) == NULL) {
|
if ( (rep = opendir (path)) == NULL) {
|
||||||
printlog (LOG_ERROR, "Impossible d'ouvrir le répertoire [%s]\n", path);
|
printlog (LOG_ERROR, "Impossible d'ouvrir le repertoire [%s]\n", path);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
perror ("opendir ");
|
perror ("opendir ");
|
||||||
#endif
|
#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
printlog (LOG_NOTIFY, "Liste des fichiers à intégrer :\n");
|
printlog (LOG_NOTIFY, "Liste des fichiers a integrer :\n");
|
||||||
while ((dirinfos = readdir (rep)) != NULL) {
|
while ((dirinfos = readdir (rep)) != NULL) {
|
||||||
snprintf (filename, MAXSTRLEN, "%s/%s", path, dirinfos->d_name);
|
snprintf (filename, MAXSTRLEN, "%s/%s", path, dirinfos->d_name);
|
||||||
if (stat (filename, &fileinfos) == -1) {
|
if (stat (filename, &fileinfos) == -1) {
|
||||||
printlog (LOG_ERROR, "Accès impossible au fichier [%s]\n",
|
printlog (LOG_ERROR, "Acces impossible au fichier [%s]\n",
|
||||||
filename);
|
filename);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
perror ("stat ");
|
perror ("stat ");
|
||||||
|
58
guinness.c
58
guinness.c
@ -44,7 +44,7 @@ int nb_cmd = 0;
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Lecture du fichier de config : récupération des valeurs
|
* Lecture du fichier de config : recuperation des valeurs
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
char *get_string_from_token (char *line) {
|
char *get_string_from_token (char *line) {
|
||||||
@ -135,14 +135,14 @@ void Usage (int help) {
|
|||||||
if (help)
|
if (help)
|
||||||
printf ("Usage : guinness [-h] [-v] [-m machine] "
|
printf ("Usage : guinness [-h] [-v] [-m machine] "
|
||||||
"[-p port] [-u utilisateur] [-b boisson] [-q msgdx]\n"
|
"[-p port] [-u utilisateur] [-b boisson] [-q msgdx]\n"
|
||||||
" -h : aide sur les paramètres\n"
|
" -h : aide sur les parametres\n"
|
||||||
" -v : affiche la version\n"
|
" -v : affiche la version\n"
|
||||||
" -m machine : spéficie le nom du serveur\n"
|
" -m machine : speficie le nom du serveur\n"
|
||||||
" -p port : spécifie le numéro du port\n"
|
" -p port : specifie le numero du port\n"
|
||||||
" -u utilisateur : nom d'utilisateur\n"
|
" -u utilisateur : nom d'utilisateur\n"
|
||||||
" -b boisson : boisson préférée\n"
|
" -b boisson : boisson preferee\n"
|
||||||
" -q msgdx : message d'au-revoir à la déconnexion\n"
|
" -q msgdx : message d'au-revoir a la deconnexion\n"
|
||||||
" Online (précédé du caractère de commande \"/\") :\n"
|
" Online (precede du caractere de commande \"/\") :\n"
|
||||||
" help : affiche l'aide sur les commandes\n"
|
" help : affiche l'aide sur les commandes\n"
|
||||||
" quit : quitte\n\n");
|
" quit : quitte\n\n");
|
||||||
libere ();
|
libere ();
|
||||||
@ -157,7 +157,7 @@ void Usage (int help) {
|
|||||||
void traite_argv (int argc, char *argv[]) {
|
void traite_argv (int argc, char *argv[]) {
|
||||||
int option;
|
int option;
|
||||||
|
|
||||||
/* Vérification des paramètres */
|
/* Verification des parametres */
|
||||||
while ((option = getopt (argc, argv, "hvm:p:u:b:q:")) != -1) {
|
while ((option = getopt (argc, argv, "hvm:p:u:b:q:")) != -1) {
|
||||||
switch (option) {
|
switch (option) {
|
||||||
case 'h' :
|
case 'h' :
|
||||||
@ -216,7 +216,7 @@ int send_cmd (int socket_client) {
|
|||||||
snprintf (clavier, MAXSTRLEN, "%cquit", cmdchr);
|
snprintf (clavier, MAXSTRLEN, "%cquit", cmdchr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Détermination du type (commande explicite / message) */
|
/* Determination du type (commande explicite / message) */
|
||||||
if (clavier[0] == cmdchr)
|
if (clavier[0] == cmdchr)
|
||||||
commande = xstrdup (clavier + 1);
|
commande = xstrdup (clavier + 1);
|
||||||
else {
|
else {
|
||||||
@ -224,7 +224,7 @@ int send_cmd (int socket_client) {
|
|||||||
snprintf (commande, strlen (clavier) + 6, "msg %s", clavier);
|
snprintf (commande, strlen (clavier) + 6, "msg %s", clavier);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Suppression des retours à la ligne pour comparaison */
|
/* Suppression des retours a la ligne pour comparaison */
|
||||||
for (i = 0 ; i < strlen (commande) ; i++)
|
for (i = 0 ; i < strlen (commande) ; i++)
|
||||||
if (commande[i] == '\n') commande[i] = '\0';
|
if (commande[i] == '\n') commande[i] = '\0';
|
||||||
|
|
||||||
@ -236,30 +236,30 @@ int send_cmd (int socket_client) {
|
|||||||
if (commandes[i][0] == '*') /* Commandes d'administration */
|
if (commandes[i][0] == '*') /* Commandes d'administration */
|
||||||
cmp = strncmp (commandes[i]+1, commande,
|
cmp = strncmp (commandes[i]+1, commande,
|
||||||
strlen (commandes[i])-1);
|
strlen (commandes[i])-1);
|
||||||
else if (commandes[i][0] == '+') /* Commandes à intervalle */
|
else if (commandes[i][0] == '+') /* Commandes a intervalle */
|
||||||
cmp = ( (strchr (commandes[i]+1, commande[0]) != NULL) &&
|
cmp = ( (strchr (commandes[i]+1, commande[0]) != NULL) &&
|
||||||
( (strlen (commande) == 1) ||
|
( (strlen (commande) == 1) ||
|
||||||
(commande[1] == ' ') ) ) ? 0 : -1;
|
(commande[1] == ' ') ) ) ? 0 : -1;
|
||||||
else { /* Commande simple : vérification pour la commande entière
|
else { /* Commande simple : verification pour la commande entiere
|
||||||
* ou le premier caractère.
|
* ou le premier caractere.
|
||||||
*/
|
*/
|
||||||
cmp = (
|
cmp = (
|
||||||
/* comparaison exacte entre les deux commandes
|
/* comparaison exacte entre les deux commandes
|
||||||
*/
|
*/
|
||||||
(strncmp (commandes[i], commande,
|
(strncmp (commandes[i], commande,
|
||||||
strlen (commandes[i]) ) == 0) ||
|
strlen (commandes[i]) ) == 0) ||
|
||||||
/* comparaison entre les 2 premières lettres en
|
/* comparaison entre les 2 premieres lettres en
|
||||||
* cas de présence de paramètres
|
* cas de presence de parametres
|
||||||
*/
|
*/
|
||||||
( (commandes[i][0] == commande[0]) &&
|
( (commandes[i][0] == commande[0]) &&
|
||||||
(commande[1] == ' ') ) ||
|
(commande[1] == ' ') ) ||
|
||||||
/* Comparaison entre les deux premières lettres en cas
|
/* Comparaison entre les deux premieres lettres en cas
|
||||||
* de présence d'une unique lettre dans la commande
|
* de presence d'une unique lettre dans la commande
|
||||||
*/
|
*/
|
||||||
( (commandes[i][0] == commande[0]) &&
|
( (commandes[i][0] == commande[0]) &&
|
||||||
(strlen (commande) == 1) ) ) ? 0 : -1;
|
(strlen (commande) == 1) ) ) ? 0 : -1;
|
||||||
/* Commande trouvée : si un seul caractère, remplacement par
|
/* Commande trouvee : si un seul caractere, remplacement par
|
||||||
* la commande complète.
|
* la commande complete.
|
||||||
*/
|
*/
|
||||||
if ( (cmp == 0) &&
|
if ( (cmp == 0) &&
|
||||||
(strncmp (commandes[i], commande,
|
(strncmp (commandes[i], commande,
|
||||||
@ -387,7 +387,7 @@ int initiate (int socket_client) {
|
|||||||
|
|
||||||
memset (datas, 0, MAXSTRLEN);
|
memset (datas, 0, MAXSTRLEN);
|
||||||
|
|
||||||
/* Réception de la liste des commandes */
|
/* Reception de la liste des commandes */
|
||||||
cont = read_infos (socket_client, cmds);
|
cont = read_infos (socket_client, cmds);
|
||||||
|
|
||||||
if (cont) {
|
if (cont) {
|
||||||
@ -396,7 +396,7 @@ int initiate (int socket_client) {
|
|||||||
snprintf (datas, MAXSTRLEN - 1, "%s\n%s\n%s",
|
snprintf (datas, MAXSTRLEN - 1, "%s\n%s\n%s",
|
||||||
utilisateur, boisson, logout);
|
utilisateur, boisson, logout);
|
||||||
|
|
||||||
/* Envoi des données utilisateur */
|
/* Envoi des donnees utilisateur */
|
||||||
cont = send_infos (socket_client, datas);
|
cont = send_infos (socket_client, datas);
|
||||||
|
|
||||||
read_infos (socket_client, nick_ok);
|
read_infos (socket_client, nick_ok);
|
||||||
@ -415,7 +415,7 @@ int initiate (int socket_client) {
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Boucle de commande et de réception
|
* Boucle de commande et de reception
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void data_rw (int socket_client) {
|
void data_rw (int socket_client) {
|
||||||
@ -428,7 +428,7 @@ void data_rw (int socket_client) {
|
|||||||
while (cont == TRUE) {
|
while (cont == TRUE) {
|
||||||
fflush (stdout);
|
fflush (stdout);
|
||||||
|
|
||||||
/* Construction de l'ensemble à scruter en lecture : */
|
/* Construction de l'ensemble a scruter en lecture : */
|
||||||
FD_ZERO (&lire);
|
FD_ZERO (&lire);
|
||||||
FD_SET (STDIN_FILENO, &lire);
|
FD_SET (STDIN_FILENO, &lire);
|
||||||
FD_SET (socket_client, &lire);
|
FD_SET (socket_client, &lire);
|
||||||
@ -447,12 +447,12 @@ void data_rw (int socket_client) {
|
|||||||
do {
|
do {
|
||||||
printf ("%s\n", infos + is);
|
printf ("%s\n", infos + is);
|
||||||
while (is < MAXSTRLEN && infos[is]) is ++;
|
while (is < MAXSTRLEN && infos[is]) is ++;
|
||||||
/* on suppose qu'un seul '\0' sépare deux messages */
|
/* on suppose qu'un seul '\0' separe deux messages */
|
||||||
is ++;
|
is ++;
|
||||||
} while (is < MAXSTRLEN && infos[is]);
|
} while (is < MAXSTRLEN && infos[is]);
|
||||||
|
|
||||||
/* Hack pour faire afficher le message par xmessage
|
/* Hack pour faire afficher le message par xmessage
|
||||||
* Pas très joli lors des déconnexions.
|
* Pas tres joli lors des deconnexions.
|
||||||
*/
|
*/
|
||||||
/* if (getenv ("DISPLAY")) { */
|
/* if (getenv ("DISPLAY")) { */
|
||||||
/* if (! fork ()) */
|
/* if (! fork ()) */
|
||||||
@ -473,7 +473,7 @@ void data_rw (int socket_client) {
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void handler_sigpipe (int sig) {
|
void handler_sigpipe (int sig) {
|
||||||
printf ("Signal SIGPIPE reçu...\n");
|
printf ("Signal SIGPIPE recu...\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -487,13 +487,13 @@ int main (int argc, char *argv[]) {
|
|||||||
|
|
||||||
signal (SIGPIPE, handler_sigpipe);
|
signal (SIGPIPE, handler_sigpipe);
|
||||||
|
|
||||||
/* Vérification des paramètres */
|
/* Verification des parametres */
|
||||||
traite_argv (argc, argv);
|
traite_argv (argc, argv);
|
||||||
|
|
||||||
/* Lecture du fichier de config */
|
/* Lecture du fichier de config */
|
||||||
load_config ();
|
load_config ();
|
||||||
|
|
||||||
/* Valeurs par défaut */
|
/* Valeurs par defaut */
|
||||||
if (! utilisateur) {
|
if (! utilisateur) {
|
||||||
environ_user = getenv ("USER");
|
environ_user = getenv ("USER");
|
||||||
if (environ_user && *environ_user)
|
if (environ_user && *environ_user)
|
||||||
@ -513,7 +513,7 @@ int main (int argc, char *argv[]) {
|
|||||||
printf ("Utilisateur : [%s]\t", utilisateur);
|
printf ("Utilisateur : [%s]\t", utilisateur);
|
||||||
printf ("\tBoisson : [%s]\t", boisson);
|
printf ("\tBoisson : [%s]\t", boisson);
|
||||||
printf ("Logout : [%s]\n", logout);
|
printf ("Logout : [%s]\n", logout);
|
||||||
printf ("Préfixe : [%c]\n", cmdchr);
|
printf ("Prefixe : [%c]\n", cmdchr);
|
||||||
|
|
||||||
/* Connexion au serveur */
|
/* Connexion au serveur */
|
||||||
if ( (socket_client = connect_server (serveur, port) ) == -1) {
|
if ( (socket_client = connect_server (serveur, port) ) == -1) {
|
||||||
|
76
guinnessd.c
76
guinnessd.c
@ -68,23 +68,23 @@ void install_handler ();
|
|||||||
void handler_signaux (int sig) {
|
void handler_signaux (int sig) {
|
||||||
switch (sig) {
|
switch (sig) {
|
||||||
case SIGPIPE:
|
case SIGPIPE:
|
||||||
printlog (LOG_NOTIFY, "Signal SIGPIPE reçu...\n");
|
printlog (LOG_NOTIFY, "Signal SIGPIPE recu...\n");
|
||||||
install_handler ();
|
install_handler ();
|
||||||
break;
|
break;
|
||||||
case SIGTERM:
|
case SIGTERM:
|
||||||
case SIGQUIT:
|
case SIGQUIT:
|
||||||
case SIGINT:
|
case SIGINT:
|
||||||
online = FALSE;
|
online = FALSE;
|
||||||
printlog (LOG_NOTIFY, "Signal de terminaison reçu...\n");
|
printlog (LOG_NOTIFY, "Signal de terminaison recu...\n");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
printlog (LOG_NOTIFY, "Signal reçu...\n");
|
printlog (LOG_NOTIFY, "Signal recu...\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Lecture du fichier de config : récupération des valeurs
|
* Lecture du fichier de config : recuperation des valeurs
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
char *get_string_from_token (char *line) {
|
char *get_string_from_token (char *line) {
|
||||||
@ -154,13 +154,13 @@ void Usage (int help) {
|
|||||||
if (help)
|
if (help)
|
||||||
printf ("Usage : guinnessd [-h] [-v] [-b] [-p port] "
|
printf ("Usage : guinnessd [-h] [-v] [-b] [-p port] "
|
||||||
"[-s passwd] [-d chemin] [-l fichier] [-f fichier]\n"
|
"[-s passwd] [-d chemin] [-l fichier] [-f fichier]\n"
|
||||||
" -h : aide sur les paramètres\n"
|
" -h : aide sur les parametres\n"
|
||||||
" -v : affiche la version\n"
|
" -v : affiche la version\n"
|
||||||
" -b : détache le serveur du terminal\n"
|
" -b : detache le serveur du terminal\n"
|
||||||
" -a adresse : spécifie l'adresse du serveur\n"
|
" -a adresse : specifie l'adresse du serveur\n"
|
||||||
" -p port : spécifie le numéro du port\n"
|
" -p port : specifie le numero du port\n"
|
||||||
" -s passwd : spécifie le mot de passe d'aministration\n"
|
" -s passwd : specifie le mot de passe d'aministration\n"
|
||||||
" -d chemin : indique le chemin où se"
|
" -d chemin : indique le chemin ou se"
|
||||||
" trouvent les ascii-arts\n"
|
" trouvent les ascii-arts\n"
|
||||||
" -l fichier : fichier de log\n"
|
" -l fichier : fichier de log\n"
|
||||||
" -f fichier : fichier de configuration\n\n");
|
" -f fichier : fichier de configuration\n\n");
|
||||||
@ -176,7 +176,7 @@ int traite_argv (int argc, char *argv[]) {
|
|||||||
int option;
|
int option;
|
||||||
int detach = FALSE;
|
int detach = FALSE;
|
||||||
|
|
||||||
/* Vérification des paramètres */
|
/* Verification des parametres */
|
||||||
while ((option = getopt (argc, argv, "hvba:p:s:d:l:f:")) != -1) {
|
while ((option = getopt (argc, argv, "hvba:p:s:d:l:f:")) != -1) {
|
||||||
switch (option) {
|
switch (option) {
|
||||||
case 'h' :
|
case 'h' :
|
||||||
@ -260,7 +260,7 @@ int initiate (int socket_service, userinfos *infos) {
|
|||||||
|
|
||||||
memset (userdatas, 0, MAXSTRLEN);
|
memset (userdatas, 0, MAXSTRLEN);
|
||||||
|
|
||||||
/* Récupération des infos sur le connecté */
|
/* Recuperation des infos sur le connecte */
|
||||||
get_sock_infos (socket_service,
|
get_sock_infos (socket_service,
|
||||||
&nom_distant, &ip_distant,
|
&nom_distant, &ip_distant,
|
||||||
&port_local, &port_distant);
|
&port_local, &port_distant);
|
||||||
@ -284,18 +284,18 @@ int initiate (int socket_service, userinfos *infos) {
|
|||||||
if ( (cont = send_servercmds (socket_service)) == FALSE)
|
if ( (cont = send_servercmds (socket_service)) == FALSE)
|
||||||
return cont;
|
return cont;
|
||||||
|
|
||||||
/* 2. attente des données du connecté */
|
/* 2. attente des donnees du connecte */
|
||||||
if ( (cont = read_infos (socket_service, userdatas)) == FALSE)
|
if ( (cont = read_infos (socket_service, userdatas)) == FALSE)
|
||||||
return cont;
|
return cont;
|
||||||
|
|
||||||
/* FIN DU PROTOCOLE : Véricifations / ajout dans la liste / affichage */
|
/* FIN DU PROTOCOLE : Vericifations / ajout dans la liste / affichage */
|
||||||
datas = xstrdup (userdatas);
|
datas = xstrdup (userdatas);
|
||||||
|
|
||||||
/* Nom d'utilisateur */
|
/* Nom d'utilisateur */
|
||||||
token = strtok_r (datas, delim, &saveptr);
|
token = strtok_r (datas, delim, &saveptr);
|
||||||
snprintf (infos->nom, MAXSTRLEN, "%s", token ? token : pseudo);
|
snprintf (infos->nom, MAXSTRLEN, "%s", token ? token : pseudo);
|
||||||
|
|
||||||
/* Boisson préférée */
|
/* Boisson preferee */
|
||||||
token = strtok_r (NULL, delim, &saveptr);
|
token = strtok_r (NULL, delim, &saveptr);
|
||||||
snprintf (infos->prefb, MAXSTRLEN, "%s", token ? token : drink);
|
snprintf (infos->prefb, MAXSTRLEN, "%s", token ? token : drink);
|
||||||
|
|
||||||
@ -309,7 +309,7 @@ int initiate (int socket_service, userinfos *infos) {
|
|||||||
strftime (infos->cxdate, MAXSTRLEN, "%a %d %b %Y %T", today);
|
strftime (infos->cxdate, MAXSTRLEN, "%a %d %b %Y %T", today);
|
||||||
|
|
||||||
printlog (LOG_NOTIFY, "Utilisateur : [%s]\n", infos->nom);
|
printlog (LOG_NOTIFY, "Utilisateur : [%s]\n", infos->nom);
|
||||||
printlog (LOG_NOTIFY, "Boisson préférée : [%s]\n", infos->prefb);
|
printlog (LOG_NOTIFY, "Boisson preferee : [%s]\n", infos->prefb);
|
||||||
printlog (LOG_NOTIFY, "Message de logout : [%s]\n", infos->logout);
|
printlog (LOG_NOTIFY, "Message de logout : [%s]\n", infos->logout);
|
||||||
printlog (LOG_NOTIFY, "Date de connexion : [%s]\n", infos->cxdate);
|
printlog (LOG_NOTIFY, "Date de connexion : [%s]\n", infos->cxdate);
|
||||||
|
|
||||||
@ -318,8 +318,8 @@ int initiate (int socket_service, userinfos *infos) {
|
|||||||
char nick_ok[MAXSTRLEN+1];
|
char nick_ok[MAXSTRLEN+1];
|
||||||
snprintf (nick_ok, MAXSTRLEN, "@%s", infos->nom);
|
snprintf (nick_ok, MAXSTRLEN, "@%s", infos->nom);
|
||||||
snprintf (infos->nom, MAXSTRLEN, "%s", nick_ok);
|
snprintf (infos->nom, MAXSTRLEN, "%s", nick_ok);
|
||||||
send_infos (socket_service, "@Pseudo déjà utilisé !\n");
|
send_infos (socket_service, "@Pseudo deja utilise !\n");
|
||||||
printlog (LOG_NOTIFY, "Pseudo déjà utilisé => %s\n", infos->nom);
|
printlog (LOG_NOTIFY, "Pseudo deje utilise => %s\n", infos->nom);
|
||||||
pthread_mutex_unlock (&mutex_clients);
|
pthread_mutex_unlock (&mutex_clients);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
@ -329,8 +329,8 @@ int initiate (int socket_service, userinfos *infos) {
|
|||||||
|
|
||||||
if (! exist_elt (drinks_list, infos->prefb))
|
if (! exist_elt (drinks_list, infos->prefb))
|
||||||
send_infos (socket_service,
|
send_infos (socket_service,
|
||||||
"Votre boisson préférée n'est pas disponible sur ce"
|
"Votre boisson preferee n'est pas disponible sur ce"
|
||||||
" serveur !\nVous aurez des Guinness à la place.\n");
|
" serveur !\nVous aurez des Guinness a la place.\n");
|
||||||
|
|
||||||
/* Passage en mode non bloquant */
|
/* Passage en mode non bloquant */
|
||||||
fcntl (socket_service, F_SETFL, O_NONBLOCK);
|
fcntl (socket_service, F_SETFL, O_NONBLOCK);
|
||||||
@ -369,13 +369,13 @@ void thread_service (int *sock_serv) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printlog (LOG_NOTIFY, "Prêt à recevoir des commandes.\n");
|
printlog (LOG_NOTIFY, "Pret a recevoir des commandes.\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
while (cont == TRUE) {
|
while (cont == TRUE) {
|
||||||
memset (commande, 0, MAXSTRLEN + 1);
|
memset (commande, 0, MAXSTRLEN + 1);
|
||||||
|
|
||||||
/* Lecture des caractères reçus */
|
/* Lecture des caracteres recus */
|
||||||
do {
|
do {
|
||||||
sleep (1);
|
sleep (1);
|
||||||
nb = read (socket_service, commande, MAXSTRLEN);
|
nb = read (socket_service, commande, MAXSTRLEN);
|
||||||
@ -384,7 +384,7 @@ void thread_service (int *sock_serv) {
|
|||||||
if ( (errno == EPIPE) || (nb == 0) ) {
|
if ( (errno == EPIPE) || (nb == 0) ) {
|
||||||
cont = FALSE;
|
cont = FALSE;
|
||||||
} else {
|
} else {
|
||||||
printlog (LOG_ERROR, "Erreur de connexion réception !\n");
|
printlog (LOG_ERROR, "Erreur de connexion reception !\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} while ( (cont != FALSE) &&
|
} while ( (cont != FALSE) &&
|
||||||
@ -392,7 +392,7 @@ void thread_service (int *sock_serv) {
|
|||||||
(new_message (old_id) != TRUE) );
|
(new_message (old_id) != TRUE) );
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printlog (LOG_NOTIFY, "Commande reçue.\n");
|
printlog (LOG_NOTIFY, "Commande recue.\n");
|
||||||
#endif
|
#endif
|
||||||
if (cont == TRUE) {
|
if (cont == TRUE) {
|
||||||
/* Traitement de la commande */
|
/* Traitement de la commande */
|
||||||
@ -403,7 +403,7 @@ void thread_service (int *sock_serv) {
|
|||||||
old_id = get_broadcastid ();
|
old_id = get_broadcastid ();
|
||||||
cont = send_broadcast (socket_service, &infos);
|
cont = send_broadcast (socket_service, &infos);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printlog (LOG_ERROR, "Émission broadcast pour %s (id = %ld)\n",
|
printlog (LOG_ERROR, "Emission broadcast pour %s (id = %ld)\n",
|
||||||
infos.nom, old_id);
|
infos.nom, old_id);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -436,7 +436,7 @@ void install_handler () {
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialisation générale
|
* Initialisation generale
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void guinnessd_init (int argc, char *argv[]) {
|
void guinnessd_init (int argc, char *argv[]) {
|
||||||
@ -445,11 +445,11 @@ void guinnessd_init (int argc, char *argv[]) {
|
|||||||
setlocale (LC_ALL, "");
|
setlocale (LC_ALL, "");
|
||||||
install_handler ();
|
install_handler ();
|
||||||
|
|
||||||
/* Valeurs par défaut */
|
/* Valeurs par defaut */
|
||||||
logfile = stdout;
|
logfile = stdout;
|
||||||
outerr = stderr;
|
outerr = stderr;
|
||||||
|
|
||||||
/* Traitement des paramètres */
|
/* Traitement des parametres */
|
||||||
if (traite_argv (argc, argv) == TRUE) {
|
if (traite_argv (argc, argv) == TRUE) {
|
||||||
switch (fork()) {
|
switch (fork()) {
|
||||||
case -1: /* erreur */
|
case -1: /* erreur */
|
||||||
@ -458,7 +458,7 @@ void guinnessd_init (int argc, char *argv[]) {
|
|||||||
case 0: /* le fils */
|
case 0: /* le fils */
|
||||||
setsid ();
|
setsid ();
|
||||||
break;
|
break;
|
||||||
default: /* le père */
|
default: /* le pere */
|
||||||
exit (0);
|
exit (0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -466,12 +466,12 @@ void guinnessd_init (int argc, char *argv[]) {
|
|||||||
/* Lecture du fichier de configuration */
|
/* Lecture du fichier de configuration */
|
||||||
load_config ();
|
load_config ();
|
||||||
|
|
||||||
/* Initialisation des sémaphores */
|
/* Initialisation des semaphores */
|
||||||
pthread_mutexattr_init (&mutex_attr);
|
pthread_mutexattr_init (&mutex_attr);
|
||||||
pthread_mutex_init (&mutex_broadcast, &mutex_attr);
|
pthread_mutex_init (&mutex_broadcast, &mutex_attr);
|
||||||
pthread_mutex_init (&mutex_clients, &mutex_attr);
|
pthread_mutex_init (&mutex_clients, &mutex_attr);
|
||||||
|
|
||||||
/* Affectation des paramètres */
|
/* Affectation des parametres */
|
||||||
if (IS_NOT_GOOD (pseudo)) SET_STRING (pseudo, DEFAULT_PSEUDO);
|
if (IS_NOT_GOOD (pseudo)) SET_STRING (pseudo, DEFAULT_PSEUDO);
|
||||||
if (IS_NOT_GOOD (drink)) SET_STRING (drink, DEFAULT_DRINK);
|
if (IS_NOT_GOOD (drink)) SET_STRING (drink, DEFAULT_DRINK);
|
||||||
if (IS_NOT_GOOD (logout)) SET_STRING (logout, DEFAULT_LOGOUT);
|
if (IS_NOT_GOOD (logout)) SET_STRING (logout, DEFAULT_LOGOUT);
|
||||||
@ -488,7 +488,7 @@ void guinnessd_init (int argc, char *argv[]) {
|
|||||||
/* Option pour le buffer de logs */
|
/* Option pour le buffer de logs */
|
||||||
setvbuf (logfile, NULL, _IOLBF, 0);
|
setvbuf (logfile, NULL, _IOLBF, 0);
|
||||||
|
|
||||||
/* Création de la liste de boissons par défaut*/
|
/* Creation de la liste de boissons par defaut*/
|
||||||
add_elt (&drinks_list, "guinness");
|
add_elt (&drinks_list, "guinness");
|
||||||
|
|
||||||
if (! chemin) chemin = xstrdup (DRINKS_DIR);
|
if (! chemin) chemin = xstrdup (DRINKS_DIR);
|
||||||
@ -510,7 +510,7 @@ int main (int argc, char *argv[]) {
|
|||||||
|
|
||||||
guinnessd_init (argc, argv);
|
guinnessd_init (argc, argv);
|
||||||
|
|
||||||
/* Installation de l'écoute du serveur */
|
/* Installation de l'ecoute du serveur */
|
||||||
if ( (socket_ecoute = install_server (port, adr_ip, NULL)) == -1) {
|
if ( (socket_ecoute = install_server (port, adr_ip, NULL)) == -1) {
|
||||||
printlog (LOG_ERROR, "Impossible d'installer le service.\n");
|
printlog (LOG_ERROR, "Impossible d'installer le service.\n");
|
||||||
return -1;
|
return -1;
|
||||||
@ -548,21 +548,21 @@ int main (int argc, char *argv[]) {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Ici connexion acceptée */
|
/* Ici connexion acceptee */
|
||||||
printlog (LOG_NOTIFY, "Connexion acceptée...\n");
|
printlog (LOG_NOTIFY, "Connexion acceptee...\n");
|
||||||
|
|
||||||
/* Lancement d'une activité de traitement */
|
/* Lancement d'une activite de traitement */
|
||||||
if (pthread_create (&pthread_id, NULL/*pthread_attr_default*/,
|
if (pthread_create (&pthread_id, NULL/*pthread_attr_default*/,
|
||||||
(void *) thread_service,
|
(void *) thread_service,
|
||||||
(void *) &socket_service) == -1) {
|
(void *) &socket_service) == -1) {
|
||||||
printlog (LOG_ERROR, "Erreur création thread de service.\n");
|
printlog (LOG_ERROR, "Erreur creation thread de service.\n");
|
||||||
close (socket_service);
|
close (socket_service);
|
||||||
}
|
}
|
||||||
/* fflush (logfile); */
|
/* fflush (logfile); */
|
||||||
sleep (2);
|
sleep (2);
|
||||||
}
|
}
|
||||||
|
|
||||||
printlog (LOG_NOTIFY, "Arrêt du serveur demandé.\n");
|
printlog (LOG_NOTIFY, "Arret du serveur demande.\n");
|
||||||
/* fflush (logfile); */
|
/* fflush (logfile); */
|
||||||
close (socket_ecoute);
|
close (socket_ecoute);
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ typedef struct userinfos {
|
|||||||
int port;
|
int port;
|
||||||
int admin;
|
int admin;
|
||||||
int cold;
|
int cold;
|
||||||
int comm[2]; /* Pas encore utilisé */
|
int comm[2]; /* Pas encore utilise */
|
||||||
} userinfos;
|
} userinfos;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* printlog
|
* printlog
|
||||||
* architecture clients/serveur guinness
|
* architecture clients/serveur guinness
|
||||||
* Thomas Nemeth / Arnaud Giersch -- le 23 août 2001
|
* Thomas Nemeth / Arnaud Giersch -- le 23 aout 2001
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* printlog
|
* printlog
|
||||||
* architecture clients/serveur guinness
|
* architecture clients/serveur guinness
|
||||||
* Thomas Nemeth / Arnaud Giersch -- le 23 août 2001
|
* Thomas Nemeth / Arnaud Giersch -- le 23 aout 2001
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
48
tools.c
48
tools.c
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* tools
|
* tools
|
||||||
* Création et manipulation de sockets
|
* Creation et manipulation de sockets
|
||||||
* Thomas Nemeth -- le 15 juin 2001
|
* Thomas Nemeth -- le 15 juin 2001
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@ -22,9 +22,9 @@
|
|||||||
#include "tools.h"
|
#include "tools.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Ouverture d'une socket de type flot de données
|
* Ouverture d'une socket de type flot de donnees
|
||||||
*
|
*
|
||||||
* création d'une socket serveur : port != 0
|
* creation d'une socket serveur : port != 0
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
int ouvre_socket (int port, char *adr_ip, struct sockaddr_in *ptr_adresse) {
|
int ouvre_socket (int port, char *adr_ip, struct sockaddr_in *ptr_adresse) {
|
||||||
@ -35,7 +35,7 @@ int ouvre_socket (int port, char *adr_ip, struct sockaddr_in *ptr_adresse) {
|
|||||||
struct linger ling;
|
struct linger ling;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Création de la socket
|
* Creation de la socket
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
if ( (desc_soc = socket (AF_INET, SOCK_STREAM, 0) ) == -1) {
|
if ( (desc_soc = socket (AF_INET, SOCK_STREAM, 0) ) == -1) {
|
||||||
@ -72,7 +72,7 @@ int ouvre_socket (int port, char *adr_ip, struct sockaddr_in *ptr_adresse) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Préparation de l'adresse d'attachement
|
* Preparation de l'adresse d'attachement
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
memset (&adresse, 0, sizeof (adresse) );
|
memset (&adresse, 0, sizeof (adresse) );
|
||||||
@ -103,7 +103,7 @@ int ouvre_socket (int port, char *adr_ip, struct sockaddr_in *ptr_adresse) {
|
|||||||
if (bind (desc_soc, (struct sockaddr*) &adresse, lg_adresse) == -1) {
|
if (bind (desc_soc, (struct sockaddr*) &adresse, lg_adresse) == -1) {
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fprintf (stderr,
|
fprintf (stderr,
|
||||||
"Ne peut donner de nom à la socket de connexion.\n"
|
"Ne peut donner de nom a la socket de connexion.\n"
|
||||||
"Attendez quelques minutes avant de relancer.\n");
|
"Attendez quelques minutes avant de relancer.\n");
|
||||||
#endif
|
#endif
|
||||||
perror (__FILE__ " bind");
|
perror (__FILE__ " bind");
|
||||||
@ -112,7 +112,7 @@ int ouvre_socket (int port, char *adr_ip, struct sockaddr_in *ptr_adresse) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Récupération de l'adresse effective d'attachement
|
* Recuperation de l'adresse effective d'attachement
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
if (ptr_adresse != NULL)
|
if (ptr_adresse != NULL)
|
||||||
@ -127,7 +127,7 @@ int connect_server (const char *machine, int port) {
|
|||||||
struct sockaddr_in adresse_serveur, adresse_client;
|
struct sockaddr_in adresse_serveur, adresse_client;
|
||||||
int socket_client;
|
int socket_client;
|
||||||
|
|
||||||
/* Recherche de la machine où se trouve le serveur */
|
/* Recherche de la machine ou se trouve le serveur */
|
||||||
if ( (serveur = gethostbyname (machine) ) == NULL) {
|
if ( (serveur = gethostbyname (machine) ) == NULL) {
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fprintf (stderr, "Machine %s inconnue...\n", machine);
|
fprintf (stderr, "Machine %s inconnue...\n", machine);
|
||||||
@ -135,18 +135,18 @@ int connect_server (const char *machine, int port) {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Création et attachement de la socket du client --
|
/* Creation et attachement de la socket du client --
|
||||||
* port quelconque => 0
|
* port quelconque => 0
|
||||||
*/
|
*/
|
||||||
if ( (socket_client = ouvre_socket
|
if ( (socket_client = ouvre_socket
|
||||||
(0, NULL, (struct sockaddr_in *) &adresse_client)) == -1) {
|
(0, NULL, (struct sockaddr_in *) &adresse_client)) == -1) {
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fprintf (stderr, "Création de la socket du client impossible.\n");
|
fprintf (stderr, "Creation de la socket du client impossible.\n");
|
||||||
#endif
|
#endif
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Préparation de l'adresse du serveur */
|
/* Preparation de l'adresse du serveur */
|
||||||
adresse_serveur.sin_family = AF_INET;
|
adresse_serveur.sin_family = AF_INET;
|
||||||
adresse_serveur.sin_port = htons (port);
|
adresse_serveur.sin_port = htons (port);
|
||||||
memcpy (&adresse_serveur.sin_addr.s_addr,
|
memcpy (&adresse_serveur.sin_addr.s_addr,
|
||||||
@ -172,12 +172,12 @@ int install_server (int port, char *adr_ip, struct sockaddr_in *ecoute) {
|
|||||||
/* Ouverture de la socket */
|
/* Ouverture de la socket */
|
||||||
if ( (socket_ecoute = ouvre_socket (port, adr_ip, ecoute)) == -1) {
|
if ( (socket_ecoute = ouvre_socket (port, adr_ip, ecoute)) == -1) {
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fprintf (stderr, "Création de la socket du serveur impossible.\n");
|
fprintf (stderr, "Creation de la socket du serveur impossible.\n");
|
||||||
#endif
|
#endif
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Déclaration d'ouverture du service */
|
/* Declaration d'ouverture du service */
|
||||||
if (listen (socket_ecoute, 10) == -1) {
|
if (listen (socket_ecoute, 10) == -1) {
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fprintf (stderr, "Impossible d'enregistrer le service.\n");
|
fprintf (stderr, "Impossible d'enregistrer le service.\n");
|
||||||
@ -191,7 +191,7 @@ int install_server (int port, char *adr_ip, struct sockaddr_in *ecoute) {
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fonction de réception de données
|
* Fonction de reception de donnees
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
int read_infos (int socket_data, char *infos) {
|
int read_infos (int socket_data, char *infos) {
|
||||||
@ -203,13 +203,13 @@ int read_infos (int socket_data, char *infos) {
|
|||||||
|
|
||||||
if ( (nb == -1) || (nb == 0) ) {
|
if ( (nb == -1) || (nb == 0) ) {
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fprintf (stderr, "Erreur de connexion réception !\n");
|
fprintf (stderr, "Erreur de connexion reception !\n");
|
||||||
#endif
|
#endif
|
||||||
if ( (errno == EPIPE) || (nb == 0) ) return FALSE; /* cont = FALSE; */
|
if ( (errno == EPIPE) || (nb == 0) ) return FALSE; /* cont = FALSE; */
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf ("Reçu : [%s] lg = %d/%d\n", infos, strlen (infos), nb);
|
printf ("Recu : [%s] lg = %d/%d\n", infos, strlen (infos), nb);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -217,24 +217,24 @@ int read_infos (int socket_data, char *infos) {
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fonction d'émisson de données
|
* Fonction d'emisson de donnees
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
int send_infos (int socket_data, const char *infos) {
|
int send_infos (int socket_data, const char *infos) {
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf ("Émission de : %s [%d]\n", infos, strlen (infos));
|
printf ("Emission de : %s [%d]\n", infos, strlen (infos));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (write (socket_data, (void *) infos, strlen (infos) + 1) == -1) {
|
if (write (socket_data, (void *) infos, strlen (infos) + 1) == -1) {
|
||||||
/* Erreur : plus de socket ! */
|
/* Erreur : plus de socket ! */
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fprintf (stderr, "Erreur de connexion émission !\n");
|
fprintf (stderr, "Erreur de connexion emission !\n");
|
||||||
#endif
|
#endif
|
||||||
if (errno == EPIPE) return FALSE; /*cont = FALSE;*/
|
if (errno == EPIPE) return FALSE; /*cont = FALSE;*/
|
||||||
}
|
}
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fprintf (stderr, "Émission ok !\n");
|
fprintf (stderr, "Emission ok !\n");
|
||||||
#endif
|
#endif
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -249,7 +249,7 @@ void get_sock_infos (int sock, char **nom, char **adr, int *prl, int *prd) {
|
|||||||
#endif
|
#endif
|
||||||
struct hostent *machine;
|
struct hostent *machine;
|
||||||
|
|
||||||
/* Initialisations en cas d'échecs */
|
/* Initialisations en cas d'echecs */
|
||||||
*nom = NULL;
|
*nom = NULL;
|
||||||
*adr = NULL;
|
*adr = NULL;
|
||||||
*prd = 0;
|
*prd = 0;
|
||||||
@ -267,7 +267,7 @@ void get_sock_infos (int sock, char **nom, char **adr, int *prl, int *prd) {
|
|||||||
namelen = sizeof (name);
|
namelen = sizeof (name);
|
||||||
if (getpeername (sock, (struct sockaddr *) &name, &namelen) != 0) {
|
if (getpeername (sock, (struct sockaddr *) &name, &namelen) != 0) {
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
perror ("Erreur de récupération d'information sur pair !\n"
|
perror ("Erreur de recuperation d'information sur pair !\n"
|
||||||
"getpeername() ");
|
"getpeername() ");
|
||||||
#else
|
#else
|
||||||
perror ("Impossible d'obtenir les infos distantes ");
|
perror ("Impossible d'obtenir les infos distantes ");
|
||||||
@ -283,12 +283,12 @@ void get_sock_infos (int sock, char **nom, char **adr, int *prl, int *prd) {
|
|||||||
sizeof name.sin_addr, name.sin_family);
|
sizeof name.sin_addr, name.sin_family);
|
||||||
if (machine == NULL) {
|
if (machine == NULL) {
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
perror ("Erreur de récupération de nom de pair.\n"
|
perror ("Erreur de recuperation de nom de pair.\n"
|
||||||
"gethostbyaddr() ");
|
"gethostbyaddr() ");
|
||||||
fprintf (stderr, "Adresse : %s (%s)\tFamille : %d (2 == AF_INET)\n",
|
fprintf (stderr, "Adresse : %s (%s)\tFamille : %d (2 == AF_INET)\n",
|
||||||
*adr, (char *)&name.sin_addr, name.sin_family);
|
*adr, (char *)&name.sin_addr, name.sin_family);
|
||||||
#else
|
#else
|
||||||
perror ("Impossible d'obtenir le nom d'hôte distant ");
|
perror ("Impossible d'obtenir le nom d'hote distant ");
|
||||||
#endif
|
#endif
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
2
tools.h
2
tools.h
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* tools
|
* tools
|
||||||
* Création et manipulation de sockets
|
* Creation et manipulation de sockets
|
||||||
* Thomas Nemeth -- le 15 juin 2001
|
* Thomas Nemeth -- le 15 juin 2001
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
4
xmem.c
4
xmem.c
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* xmem
|
* xmem
|
||||||
* architecture clients/serveur guinness : gestion mémoire
|
* architecture clients/serveur guinness : gestion memoire
|
||||||
* Thomas Nemeth -- le 24 août 2001
|
* Thomas Nemeth -- le 24 aout 2001
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user