[Swan-dev] dpd vs liveness code suggests possibly missing code for liveness
Matt Rogers
mrogers at redhat.com
Thu Feb 13 20:51:35 EET 2014
----- Original Message -----
> From: "Paul Wouters" <paul at nohats.ca>
> To: mrogers at redhat.com
> Cc: swan-dev at lists.libreswan.org
> Sent: Sunday, February 9, 2014 5:28:00 PM
> Subject: dpd vs liveness code suggests possibly missing code for liveness
>
>
> I was cleaning up some dpd.h includes while trying to clean up some
> ikev1 vs ikev2 code. I noticed a difference in the use of
> delete_dpd_event() and delete_liveness_event():
>
> paul at thinkpad:~/git/libreswan/programs/pluto (master *)$ grep
> delete_dpd_event *.c
> dpd.c: delete_dpd_event(st);
> dpd.c: delete_dpd_event(p1st);
> dpd.c: delete_dpd_event(p1st);
> dpd.c: delete_dpd_event(p1st);
> dpd.c: delete_dpd_event(p1st);
> dpd.c: delete_dpd_event(p1st);
> state.c: delete_dpd_event(st);
> state.c: delete_dpd_event(this);
> state.c: delete_dpd_event(st);
> timer.c: delete_dpd_event(st);
> timer.c:void attributed_delete_dpd_event(struct state *st, const char *file,
> int lineno)
>
> paul at thinkpad:~/git/libreswan/programs/pluto (master *)$ grep
> delete_liveness_event *.c
> timer.c:static void delete_liveness_event(struct state *st); /* forward */
> timer.c: delete_liveness_event(st);
> timer.c: delete_liveness_event(st);
> timer.c:static void delete_liveness_event(struct state *st)
>
> I think that indicates some things that still need to be added? For
> example, the delete_dpd_event() calls in state.c might also need a
> delete_liveness_event() call?
>
> I noticed mostly because delete_liveness_event() is static to timer.c but
> delete_dpd_event() cannot be static (or just be limited to dpd.c and
> timer.c)
>
> Matt, let me know if you can have a look at this, since you've been
> active around this code in the last few weeks. If not, I'll have a look
> at it next week.
>
> Paul
>
So delete_state() will need a delete_liveness_event() call, but I noticed that
the other calls of delete_dpd_event() in state.c are in rekey_state_function()
and replace_states_by_peer(), which don't appear to be used anymore.
(rekey_state_function() is used once in rekey_p2states_by_connection() which is not
used itsself). Should they be removed?
More information about the Swan-dev
mailing list