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
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
é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
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);
}
if(hasOwnData) {
if(time(NULL) - recvTime[myData] >= csts::TIME_REPUBLISH_DATA)
if(time(NULL) - recvTime[myData] > csts::TIME_REPUBLISH_DATA)
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
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}