Compare commits

..

No commits in common. "master" and "datastore-rework" have entirely different histories.

4 changed files with 1 additions and 19 deletions

View file

@ -26,8 +26,6 @@ arguments.
* `data [donnée]` : déclare une donnée à propager. La donnée peut contenir des * `data [donnée]` : déclare une donnée à propager. La donnée peut contenir des
espaces, et s'étend jusqu'à la fin de la ligne. espaces, et s'étend jusqu'à la fin de la ligne.
Un tel fichier de configuration « exemple » est fourni : `cfg.default`.
Le programme, à l'initialisation, lit le fichier puis le réécrit avec Le programme, à l'initialisation, lit le fichier puis le réécrit avec
éventuellement des données tirées au hasard si nécessaire (eg. ID du nœud). éventuellement des données tirées au hasard si nécessaire (eg. ID du nœud).
@ -36,5 +34,3 @@ d'erreur (stderr).
Le programme affiche son état actuel (voisins + infos sur eux, données + infos Le programme affiche son état actuel (voisins + infos sur eux, données + infos
sur elles) lors d'un appui sur RETURN. sur elles) lors d'un appui sur RETURN.
Un SIGINT (^C) permet l'arrêt propre du programme.

View file

@ -1,4 +0,0 @@
bootstrap 6722a421aadb51bd ::ffff:81.194.27.155 1212
data The game
data Second data
data Oh wow, a third one!

View file

@ -27,7 +27,7 @@ void DataStore::update() {
handleExpire(evt.id, evt.seqno); handleExpire(evt.id, evt.seqno);
} }
if(hasOwnData) { if(hasOwnData) {
if(time(NULL) - recvTime[myData] >= csts::TIME_REPUBLISH_DATA) if(time(NULL) - recvTime[myData] > csts::TIME_REPUBLISH_DATA)
handleRepublish(myData); handleRepublish(myData);
} }
} }

View file

@ -157,14 +157,4 @@ inonder initialisé avec la liste des voisins vers qui on souhaite inonder.
Régulièrement, \lstcpp{Flooder::update} est appelé, et se charge d'inonder Régulièrement, \lstcpp{Flooder::update} est appelé, et se charge d'inonder
plusieurs fois la donnée vers chaque pair de l'ayant pas encore acquittée. plusieurs fois la donnée vers chaque pair de l'ayant pas encore acquittée.
\subsection{Problèmes remarqués}
J'ai récemment remarqué que la manière dont je gère les seqno, à savoir prendre
pour seqno la valeur de \lstcpp{time(NULL)}, me rend d'autant plus % chktex 36
vulnérable aux attaques par republication de données fausses~: mon programme ne
se rend pas compte que sa donnée a été \og{}effacée~\fg, et --- pire --- si le
seqno utilisé est assez grand, mes republications n'auront aucun effet du point
de vue des autres nœuds pendant longtemps~: la donnée republiée semble
obsolète, est donc ignorée, puis la donnée stockée finit par expirer\ldots
\end{document} \end{document}