Compare commits

...

4 Commits

Author SHA1 Message Date
Théophile Bastian 98a6b0d409 Add sample configuration file 2016-11-28 19:09:21 +01:00
Théophile Bastian ce6cbade91 Readme 2016-11-28 19:03:20 +01:00
Théophile Bastian 092460c60d Report 2016-11-28 19:00:24 +01:00
Théophile Bastian 0289df4cdd Fix > → >= 2016-11-28 18:53:49 +01:00
4 changed files with 19 additions and 1 deletions

View File

@ -26,6 +26,8 @@ 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).
@ -34,3 +36,5 @@ 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.

4
cfg.default Normal file
View File

@ -0,0 +1,4 @@
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,4 +157,14 @@ 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}