Compare commits
No commits in common. "master" and "datastore-rework" have entirely different histories.
master
...
datastore-
|
@ -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.
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
bootstrap 6722a421aadb51bd ::ffff:81.194.27.155 1212
|
|
||||||
data The game
|
|
||||||
data Second data
|
|
||||||
data Oh wow, a third one!
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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}
|
||||||
|
|
Loading…
Reference in a new issue