Can someone who understands DPD have a look at this?

in complete_v1_state_transition:

                /*
                 * make sure that a DPD event gets created for a new phase 1
                 * SA.
                 */
                if (IS_ISAKMP_SA_ESTABLISHED(st->st_state)) {
                        if (deltasecs(st->st_connection->dpd_delay) > 0 &&
                            deltasecs(st->st_connection->dpd_timeout) > 0) {
                                /* don't ignore failure */
                                /* ??? in fact, we do ignore this:
                                 * result is NEVER used
                                 * (clang 3.4 noticed this)
                                 */
                                stf_status s = dpd_init(st);

                                pexpect(s != STF_FAIL);
                                if (s == STF_FAIL)
                                        result = STF_FAIL; /* ??? fall through 
!?! */
                                /* ??? result not subsequently used */
                        }
                }

The code claims that failure should not be ignored, and then ignores
it.  The code has been like this for years.

see 98eed4a91ea93e69807f1236b82f61325c4c831f
and 993e9312f195f54a3e3a00126aaf926ad566e2ae
_______________________________________________
Swan-dev mailing list
Swan-dev@lists.libreswan.org
https://lists.libreswan.org/mailman/listinfo/swan-dev

Reply via email to