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