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