[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