Skip to content

Latest commit

 

History

History
83 lines (76 loc) · 4.85 KB

backlog.md

File metadata and controls

83 lines (76 loc) · 4.85 KB

TODO

  • Vérifier si l'option qui renvoie une liste de billets fonctionne CLIENT/SERVEUR sur lulu
  • Fix CODEREQ too large. Context: When user tries to subscribe but is already, CODEREQ too large error is raised in the server side.
  • Bug - if more than one user creates an account (inscription) for some reason it does not work
  • Bug - affichage pas bon dans list tickets (--> �)
  • need for mutex in threads?
paris@paris-pc:~/Documents/UniversiteParis/L3S6/PR6/megaphone_pr6$ ./client 
Megaphone says: Hi user! What do you want to do?
(1) Inscription
(2) Poster billet
(3) Get billets
(4) Abonner au fil
(5) Close connection
3
Megaphone says: Type the numfil and the number of messages (e.g. 1 2) 
1 0
**Server notification**: CODEREQ: 3 ID: 1 NUMFIL: 1 :  NB: 1 
**Server Notification**: NUMFIL: 1 ORIGIN: parismollo�parismollo PSEUDO: parismollo DATA: Hello World 
paris@paris-pc:~/Documents/UniversiteParis/L3S6/PR6/megaphone_pr6$ 
  • download_file (client): fonction pour télécharger un fichier provenant d'un fil sur le server. (SIMILAIRE A recv_file de server.c) CLIENT
  • send_file (SERVEUR): fonction pour envoyer le fichier (correspondant a un certain fil) demandé au client (SIMILAIRE A send_file de client.c) SERVEUR
  • Organiser le code (si possible). Créer un dossier server et client. Mettre server.c dans server et client.c dans client. Decouper le code en plusieurs fichiers. Modifier le Makefile en conséquence

Doing

Leopold:

  • send_file (client): fonction pour envoyer un fichier à un fil au serveur CLIENT
  • recv_file (SERVEUR): fonction pour récupérer un fichier envoyer par le client puis le stocker correspondant au fil sur le server SERVEUR
  • le serveur ne doit pas attendre indéfiniment le transfert. S’il ne reçoit rien après quelques secondes, il termine son attente et le transfert est annulé. SERVEUR
  • Attention. Au moment du stockage il faut recuperer le nom du fichier pas le chemin absolu. Par exemple avec fil6/file6.txt vers fil5 ca crash

Paris:

  • Notification feature.
    • Set dynamic index on multicasting functions
    • Send (server) only new created messages / and receive it (client). Every time I post a message into a fil, I create (if not existant) a file that holds the number of messages created during the interval of the thread, once that interval is done, I open that file and read so I know how many messages to send, then I erase to 0. This will define the paremeter of get_last_billets.
    • DATA contient les 20 premiers caractères du texte (le texte complété par des caractères nuls (’\0’) s’il fait moins de 20 caractères). Daniel:

Done

  • Recevoir un billet (creation de fil si nécessaire, check id, bla bla)
  • Client verifie si id existe et stocke dans une variable globale
  • return id to client
  • client doit savoir son id - doit retenir son id.
  • makefile
  • enlever # du pseudo
  • Bug pour écrire dans file users.data (e.g. 9 -> 10 ou 99 -> 100) voir options.
  • query client regler les bits
  • send error
  • faire recv pour inscription
  • tricks pour reset port
  • cote serveur: generate id
  • store id in file
  • Demander la liste des n derniers billets (CLIENT)
  • Abonner au fil (CLIENT)
  • bug segmentation false à l'inscription
  • gérer reception des tickets CLIENT
  • repondre au client après avoir poster un billet
  • server : gérer cas f=0 pour handle_ticket
  • gérer reception de la requete: demander n derniers billets CLIENT
  • handle error message from server codereq == 31
  • faire serveur qui accepte ipv6 et ipv4
  • gérer reception de la requete: abonner au fils CLIENT
  • Fonction total_msg_fils: utilise nb_fil(). Puis pour chaque fil, on appelle nb_msg_fil(fil) pour tout additionner
  • Fonction change_infos(key, ..): modifie la valeur pour la clée key dans le fichier info.data (MACRO: INFOS). Comme dans getinfo, fgets pour avancer ligne par ligne, et faire strtok sur virgule, deuxième truc c'est la valeur.
  • Demander la liste des n derniers billets (SERVEUR).
  • Vérifier: On a une fonction recv_client_msg dans serveur. Qui fait un recv de DATALEN et DATA. Même quand on a pas besoin ?
  • server main
    • accept multiple clients
  • client main
    • ask user what he wants to do.
  • Fix minor bugs on validate_exec
  • Ajouter tout teste de verification avant valider msg du client (si codereq ok, si id existe, etc...)
  • Changer DATA dans la structure client_msg. Mettre char DATA[256]. Modifier tout le code en conséquence
  • Multicast implementation
    • Server assign address to fil, save it locally and send it back to client
    • Client save address locally
    • Server send message in multicast address
    • Client reads message in multicast address