On Mon, Oct 12, 2015 at 03:02:36PM +0200, Neels Hofmeyr wrote:
--- a/gtp/gtp.c
+++ b/gtp/gtp.c
@@ -614,6 +614,15 @@ int gtp_notification(struct gsn_t *gsn, int version,
return 0;
}
+/* Look for a message in the response queue for the given peer and sequence
+ * number seq. If found, (re-)send the response message and return 0. Otherwise
+ * return nonzero. This allows catching duplicate messages.
+ * A response message stays in the response queue until it times out.
+ * So, for any number of identical requests within that timeout period, the
+ * same packet can be resent.
+ * TODO this only checks the peer and sequence number, and does not verify that
+ * the GTP request is identical to the previous one for this peer and sequence
+ * nr: a mere peer or seq glitch can cause leaks of previous responses. */
Actually, the repeated transfer will go to the same qmsg_t.peer that the
response was originially addressed to. So fishing for other clients'
responses is not likely... I can drop the todo...
Any opinions on this?
~Neels